diff --git a/sway-ir/src/optimize/constants.rs b/sway-ir/src/optimize/constants.rs index 9ad52c01c28..314ef05c9bc 100644 --- a/sway-ir/src/optimize/constants.rs +++ b/sway-ir/src/optimize/constants.rs @@ -366,7 +366,7 @@ mod tests { use crate::{optimize::tests::*, CONST_FOLDING_NAME}; fn assert_operator(t: &str, opcode: &str, l: &str, r: Option<&str>, result: Option<&str>) { - let expected = result.map(|result| format!("v0 = const {t} {result}")); + let expected = result.map(|result| format!("const {t} {result}")); let expected = expected.as_ref().map(|x| vec![x.as_str()]); let body = format!( " @@ -495,9 +495,9 @@ mod tests { ret u64 result6, !0 }", Some([ - "v0 = get_local __ptr u64, LOCAL", - "v1 = load v0", - "ret u64 v1", + "v3v1 = get_local __ptr u64, LOCAL", + "v4v1 = load v3v1", + "ret u64 v4v1", ]), ); } diff --git a/sway-ir/src/printer.rs b/sway-ir/src/printer.rs index 8a9ae12bcfa..4db3c7793b7 100644 --- a/sway-ir/src/printer.rs +++ b/sway-ir/src/printer.rs @@ -6,6 +6,7 @@ use std::collections::{BTreeMap, HashMap}; +use slotmap::Key; use sway_types::SourceEngine; use crate::{ @@ -1401,7 +1402,7 @@ impl Namer { fn default_name(&mut self, value: &Value) -> String { self.names.get(value).cloned().unwrap_or_else(|| { - let new_name = format!("v{}", self.next_value_idx); + let new_name = format!("v{:?}", value.0.data()); self.next_value_idx += 1; self.names.insert(*value, new_name.clone()); new_name diff --git a/sway-ir/tests/constants/u256_cmp.ir b/sway-ir/tests/constants/u256_cmp.ir index 5f4642751d9..c19110ce831 100644 --- a/sway-ir/tests/constants/u256_cmp.ir +++ b/sway-ir/tests/constants/u256_cmp.ir @@ -1,3 +1,5 @@ +// regex: ID=[[:alpha:]_0-9]+ + script { fn main() -> bool { entry(): @@ -5,7 +7,7 @@ script { v1 = const u256 0x0000000000000000000000000000000000000000000000000000000000000001 v10 = cmp eq v0 v0 -//check: v0 = const bool true +//check: $ID = const bool true ret bool v10 } } \ No newline at end of file diff --git a/sway-ir/tests/constants/u256_ops.ir b/sway-ir/tests/constants/u256_ops.ir index fce5fd4379c..05ac132c052 100644 --- a/sway-ir/tests/constants/u256_ops.ir +++ b/sway-ir/tests/constants/u256_ops.ir @@ -1,3 +1,5 @@ +// regex: ID=[[:alpha:]_0-9]+ + script { fn main() -> u256 { entry(): @@ -22,7 +24,10 @@ script { v18 = not v17 v19 = not v18 v20 = xor v19, v6 -//check: v0 = const u256 0x0000000000000000000000000000000000000000000000000000000000000002 +// check: entry +// nextln: $ID = const u256 0x0000000000000000000000000000000000000000000000000000000000000002 +// check-not: const +// check: ret ret u256 v20 } } \ No newline at end of file diff --git a/sway-ir/tests/cse/cse1.ir b/sway-ir/tests/cse/cse1.ir index 687c12f8d76..25c1a7a395f 100644 --- a/sway-ir/tests/cse/cse1.ir +++ b/sway-ir/tests/cse/cse1.ir @@ -1,5 +1,5 @@ // regex: ID=[[:alpha:]0-9]+ -// regex: VAR=v\d+ +// regex: VAR=v\d+v\d+ script { fn main() -> bool { diff --git a/sway-ir/tests/cse/cse2.ir b/sway-ir/tests/cse/cse2.ir index ec609f74d60..64e910c7bff 100644 --- a/sway-ir/tests/cse/cse2.ir +++ b/sway-ir/tests/cse/cse2.ir @@ -1,5 +1,5 @@ // regex: ID=[[:alpha:]0-9]+ -// regex: VAR=v\d+ +// regex: VAR=v\d+v\d+ script { fn main() -> bool { diff --git a/sway-ir/tests/cse/cse3.ir b/sway-ir/tests/cse/cse3.ir index 89a3df2fdd3..4d33e74173e 100644 --- a/sway-ir/tests/cse/cse3.ir +++ b/sway-ir/tests/cse/cse3.ir @@ -1,5 +1,5 @@ // regex: ID=[[:alpha:]0-9]+ -// regex: VAR=v\d+ +// regex: VAR=v\d+v\d+ script { entry fn main(a: u64, b: u64) -> () { diff --git a/sway-ir/tests/dce/copy_prop_1.ir b/sway-ir/tests/dce/copy_prop_1.ir index 56421d81be5..3918ab097a1 100644 --- a/sway-ir/tests/dce/copy_prop_1.ir +++ b/sway-ir/tests/dce/copy_prop_1.ir @@ -16,6 +16,6 @@ script { } } -// regex: VAL=v\d+ +// regex: VAL=v\d+v\d+ // not: mem_copy_val $VAL, $VAL diff --git a/sway-ir/tests/dce/copy_prop_2.ir b/sway-ir/tests/dce/copy_prop_2.ir index 89d66188fc7..9b8eb9d39ed 100644 --- a/sway-ir/tests/dce/copy_prop_2.ir +++ b/sway-ir/tests/dce/copy_prop_2.ir @@ -16,6 +16,6 @@ script { } } -// regex: VAL=v\d+ +// regex: VAL=v\d+v\d+ // not: mem_copy_val $VAL, $VAL diff --git a/sway-ir/tests/dce/copy_prop_3.ir b/sway-ir/tests/dce/copy_prop_3.ir index 2eafe99b5b8..802319d0ca6 100644 --- a/sway-ir/tests/dce/copy_prop_3.ir +++ b/sway-ir/tests/dce/copy_prop_3.ir @@ -17,6 +17,6 @@ script { } } -// regex: VAL=v\d+ +// regex: VAL=v\d+v\d+ // not: mem_copy_val $VAL, $VAL diff --git a/sway-ir/tests/dce/dce_dead_asm_block.ir b/sway-ir/tests/dce/dce_dead_asm_block.ir index 05ce243a8a8..b69ee7bade9 100644 --- a/sway-ir/tests/dce/dce_dead_asm_block.ir +++ b/sway-ir/tests/dce/dce_dead_asm_block.ir @@ -40,7 +40,7 @@ // let f = asm(arg: function()) { arg }; // } -// regex: VAL=v\d+ +// regex: VAL=v\d+v\d+ script { entry fn main() -> () { diff --git a/sway-ir/tests/dce/dce_dead_config_assignment.ir b/sway-ir/tests/dce/dce_dead_config_assignment.ir index 3869d29cb01..7228944d957 100644 --- a/sway-ir/tests/dce/dce_dead_config_assignment.ir +++ b/sway-ir/tests/dce/dce_dead_config_assignment.ir @@ -45,10 +45,12 @@ contract { } } +// regex: VAL=v\d+v\d+ + // check: pub entry fn assign_config_call_pass_config // nextln: entry(): -// nextln: v0 = get_config __ptr u64, CONFIG -// nextln: v1 = load v0 -// nextln: v2 = call poke_0(v1) +// nextln: $(v0=$VAL) = get_config __ptr u64, CONFIG +// nextln: $(v1=$VAL) = load $v0 +// nextln: $(v2=$VAL) = call poke_0($v1) // not: store // check: ret () diff --git a/sway-ir/tests/dce/dce_dead_constant_assignment.ir b/sway-ir/tests/dce/dce_dead_constant_assignment.ir index 7179f389c1a..158e7efb6b6 100644 --- a/sway-ir/tests/dce/dce_dead_constant_assignment.ir +++ b/sway-ir/tests/dce/dce_dead_constant_assignment.ir @@ -35,8 +35,10 @@ script { } } +// regex: VAL=v\d+v\d+ + // check: entry fn main() -> () { // nextln: entry(): -// nextln: v0 = const unit () -// nextln: ret () v0 +// nextln: $(v0=$VAL) = const unit () +// nextln: ret () $v0 // nextln: } diff --git a/sway-ir/tests/demote_misc/demote_asm_block_arg.ir b/sway-ir/tests/demote_misc/demote_asm_block_arg.ir index 898a8650531..35487c51c94 100644 --- a/sway-ir/tests/demote_misc/demote_asm_block_arg.ir +++ b/sway-ir/tests/demote_misc/demote_asm_block_arg.ir @@ -11,7 +11,7 @@ script { } } -// regex: VAL=v\d+ +// regex: VAL=v\d+v\d+ // regex: ID=[[:alpha:]0-9_]+ // check: $(arg_0=$VAL) = get_local __ptr b256, $ID diff --git a/sway-ir/tests/demote_misc/demote_asm_block_ret.ir b/sway-ir/tests/demote_misc/demote_asm_block_ret.ir index 8fc5eca15fe..f5c17fc4a18 100644 --- a/sway-ir/tests/demote_misc/demote_asm_block_ret.ir +++ b/sway-ir/tests/demote_misc/demote_asm_block_ret.ir @@ -7,7 +7,7 @@ script { } } -// regex: VAL=v\d+ +// regex: VAL=v\d+v\d+ // regex: ID=[[:alpha:]0-9_]+ // check: $(tmp_ptr=$VAL) = get_local __ptr b256, $ID diff --git a/sway-ir/tests/demote_misc/demote_log.ir b/sway-ir/tests/demote_misc/demote_log.ir index 926e458c5ea..c06be582922 100644 --- a/sway-ir/tests/demote_misc/demote_log.ir +++ b/sway-ir/tests/demote_misc/demote_log.ir @@ -9,7 +9,7 @@ script { } } -// regex: VAL=v\d+ +// regex: VAL=v\d+v\d+ // regex: ID=[[:alpha:]0-9_]+ // check: local b256 $(loc_name=$ID) diff --git a/sway-ir/tests/demote_misc/demote_wide_binary_ops_constants.ir b/sway-ir/tests/demote_misc/demote_wide_binary_ops_constants.ir index 074371b199b..faf7920678e 100644 --- a/sway-ir/tests/demote_misc/demote_wide_binary_ops_constants.ir +++ b/sway-ir/tests/demote_misc/demote_wide_binary_ops_constants.ir @@ -10,14 +10,14 @@ script { } } -// regex: ID=[[:alpha:]0-9_]+ +// regex: VAL=v\d+v\d+ -// check: v0 = get_local __ptr u256, __wide_lhs -// check: v1 = const u256 0x0000000000000000000000000000000000000000000000000000000000000001 -// check: store v1 to v0 -// check: v2 = get_local __ptr u256, __wide_rhs -// check: v3 = const u256 0x0000000000000000000000000000000000000000000000000000000000000002 -// check: store v3 to v2 -// check: v4 = get_local __ptr u256, __wide_result -// check: wide add v0, v2 to v4 -// check: v5 = load v4 +// check: $(v0=$VAL) = get_local __ptr u256, __wide_lhs +// check: $(v1=$VAL) = const u256 0x0000000000000000000000000000000000000000000000000000000000000001 +// check: store $v1 to $v0 +// check: $(v2=$VAL) = get_local __ptr u256, __wide_rhs +// check: $(v3=$VAL) = const u256 0x0000000000000000000000000000000000000000000000000000000000000002 +// check: store $v3 to $v2 +// check: $(v4=$VAL) = get_local __ptr u256, __wide_result +// check: wide add $v0, $v2 to $v4 +// check: $(v5=$VAL) = load $v4 diff --git a/sway-ir/tests/demote_misc/demote_wide_binary_ops_loads.ir b/sway-ir/tests/demote_misc/demote_wide_binary_ops_loads.ir index 19b3f7c7ad4..a5d0f5fb1a7 100644 --- a/sway-ir/tests/demote_misc/demote_wide_binary_ops_loads.ir +++ b/sway-ir/tests/demote_misc/demote_wide_binary_ops_loads.ir @@ -12,7 +12,7 @@ script { } } -// regex: ID=[[:alpha:]0-9_]+ +// regex: VAL=v\d+v\d+ // check: local u256 __wide_lhs // check: local mut u256 __wide_result @@ -20,15 +20,15 @@ script { // check: local u256 lhs // check: local u256 rhs // check: entry(): -// check: v0 = get_local __ptr u256, lhs -// check: v1 = load v0 -// check: v2 = get_local __ptr u256, rhs -// check: v3 = load v2 -// check: v4 = get_local __ptr u256, __wide_lhs -// check: store v1 to v4 -// check: v5 = get_local __ptr u256, __wide_rhs -// check: store v3 to v5 -// check: v6 = get_local __ptr u256, __wide_result -// check: wide add v4, v5 to v6 -// check: v7 = load v6 -// check: ret u256 v7 +// check: $(v0=$VAL) = get_local __ptr u256, lhs +// check: $(v1=$VAL) = load $v0 +// check: $(v2=$VAL) = get_local __ptr u256, rhs +// check: $(v3=$VAL) = load $v2 +// check: $(v4=$VAL) = get_local __ptr u256, __wide_lhs +// check: store $v1 to $v4 +// check: $(v5=$VAL) = get_local __ptr u256, __wide_rhs +// check: store $v3 to $v5 +// check: $(v6=$VAL) = get_local __ptr u256, __wide_result +// check: wide add $v4, $v5 to $v6 +// check: $(v7=$VAL) = load $v6 +// check: ret u256 $v7 diff --git a/sway-ir/tests/demote_misc/demote_wide_cmp_constants.ir b/sway-ir/tests/demote_misc/demote_wide_cmp_constants.ir index 9d126eac520..891bf13da47 100644 --- a/sway-ir/tests/demote_misc/demote_wide_cmp_constants.ir +++ b/sway-ir/tests/demote_misc/demote_wide_cmp_constants.ir @@ -8,12 +8,12 @@ script { } } -// regex: ID=[[:alpha:]0-9_]+ +// regex: VAL=v\d+v\d+ -// check: v0 = get_local __ptr u256, __wide_lhs -// check: v1 = const u256 0x0000000000000000000000000000000000000000000000000000000000000001 -// check: store v1 to v0 -// check: v2 = get_local __ptr u256, __wide_rhs -// check: v3 = const u256 0x0000000000000000000000000000000000000000000000000000000000000002 -// check: store v3 to v2 -// check: v4 = wide cmp eq v0 v2 +// check: $(v0=$VAL) = get_local __ptr u256, __wide_lhs +// check: $(v1=$VAL) = const u256 0x0000000000000000000000000000000000000000000000000000000000000001 +// check: store $v1 to $v0 +// check: $(v2=$VAL) = get_local __ptr u256, __wide_rhs +// check: $(v3=$VAL) = const u256 0x0000000000000000000000000000000000000000000000000000000000000002 +// check: store $v3 to $v2 +// check: $(v4=$VAL) = wide cmp eq $v0 $v2 diff --git a/sway-ir/tests/demote_misc/demote_wide_mod_constants.ir b/sway-ir/tests/demote_misc/demote_wide_mod_constants.ir index fa2b2963d17..511e15ba1f8 100644 --- a/sway-ir/tests/demote_misc/demote_wide_mod_constants.ir +++ b/sway-ir/tests/demote_misc/demote_wide_mod_constants.ir @@ -12,7 +12,7 @@ script { } } -// regex: ID=[[:alpha:]0-9_]+ +// regex: VAL=v\d+v\d+ // check: local u256 __wide_lhs // check: local mut u256 __wide_result @@ -20,16 +20,16 @@ script { // check: local u256 lhs // check: local u256 rhs // check: entry(): -// check: v0 = get_local __ptr u256, lhs -// check: v1 = load v0 -// check: v2 = get_local __ptr u256, rhs -// check: v3 = load v2 -// check: v4 = get_local __ptr u256, __wide_lhs -// check: store v1 to v4 -// check: v5 = get_local __ptr u256, __wide_zero -// check: v6 = get_local __ptr u256, __wide_rhs -// check: store v3 to v6 -// check: v7 = get_local __ptr u256, __wide_result -// check: wide mod v4, v5, v6 to v7 -// check: v8 = load v7 -// check: ret u256 v8 +// check: $(v0=$VAL) = get_local __ptr u256, lhs +// check: $(v1=$VAL) = load $v0 +// check: $(v2=$VAL) = get_local __ptr u256, rhs +// check: $(v3=$VAL) = load $v2 +// check: $(v4=$VAL) = get_local __ptr u256, __wide_lhs +// check: store $v1 to $v4 +// check: $(v5=$VAL) = get_local __ptr u256, __wide_zero +// check: $(v6=$VAL) = get_local __ptr u256, __wide_rhs +// check: store $v3 to $v6 +// check: $(v7=$VAL) = get_local __ptr u256, __wide_result +// check: wide mod $v4, $v5, $v6 to $v7 +// check: $(v8=$VAL) = load $v7 +// check: ret u256 $v8 diff --git a/sway-ir/tests/demote_misc/demote_wide_not_constants.ir b/sway-ir/tests/demote_misc/demote_wide_not_constants.ir index 897b88a1bf6..0ef5fae939b 100644 --- a/sway-ir/tests/demote_misc/demote_wide_not_constants.ir +++ b/sway-ir/tests/demote_misc/demote_wide_not_constants.ir @@ -8,10 +8,10 @@ script { } } -// regex: ID=[[:alpha:]0-9_]+ +// regex: VAL=v\d+v\d+ -// check: v0 = get_local __ptr u256, __wide_lhs -// check: v1 = const u256 0x0000000000000000000000000000000000000000000000000000000000000001 -// check: store v1 to v0 -// check: v2 = get_local __ptr u256, __wide_result -// check: wide not v0 to v2 +// check: $(v0=$VAL) = get_local __ptr u256, __wide_lhs +// check: $(v1=$VAL) = const u256 0x0000000000000000000000000000000000000000000000000000000000000001 +// check: store $v1 to $v0 +// check: $(v2=$VAL) = get_local __ptr u256, __wide_result +// check: wide not $v0 to $v2 diff --git a/sway-ir/tests/inline/bigger.ir b/sway-ir/tests/inline/bigger.ir index 7c709c5994d..817e340bbdf 100644 --- a/sway-ir/tests/inline/bigger.ir +++ b/sway-ir/tests/inline/bigger.ir @@ -19,7 +19,7 @@ // x // } -// regex: VAR=v\d+ +// regex: VAR=v\d+v\d+ // regex: ID=[[:alpha:]0-9_]+ script { diff --git a/sway-ir/tests/inline/fiddly.ir b/sway-ir/tests/inline/fiddly.ir index c6907456c2a..5b24a42c948 100644 --- a/sway-ir/tests/inline/fiddly.ir +++ b/sway-ir/tests/inline/fiddly.ir @@ -17,7 +17,7 @@ // regex: ID=[[:alpha:]0-9_]+ // regex: LABEL=[[:alpha:]0-9_]+\(.*\): -// regex: VAR=v\d+ +// regex: VAR=v\d+v\d+ script { fn not(v: bool) -> bool { diff --git a/sway-ir/tests/inline/int_to_ptr.ir b/sway-ir/tests/inline/int_to_ptr.ir index 7396dc4f573..2352f45cf69 100644 --- a/sway-ir/tests/inline/int_to_ptr.ir +++ b/sway-ir/tests/inline/int_to_ptr.ir @@ -1,6 +1,6 @@ // all // -// regex: VAR=v\d+ +// regex: VAR=v\d+v\d+ // regex: LABEL=[[:alpha:]0-9_]+ script { diff --git a/sway-ir/tests/inline/recursive-1.ir b/sway-ir/tests/inline/recursive-1.ir index b7dc13d62f3..be2cb8b7ec8 100644 --- a/sway-ir/tests/inline/recursive-1.ir +++ b/sway-ir/tests/inline/recursive-1.ir @@ -1,5 +1,5 @@ // -// regex: VAR=v\d+ +// regex: VAR=v\d+v\d+ // regex: LABEL=[[:alpha:]0-9_]+ // regex: PING=(ping|id_from_ping) // regex: PONG=(pong|id_from_pong) diff --git a/sway-ir/tests/inline/simple.ir b/sway-ir/tests/inline/simple.ir index 68afb92d8b7..b88503b3008 100644 --- a/sway-ir/tests/inline/simple.ir +++ b/sway-ir/tests/inline/simple.ir @@ -13,7 +13,7 @@ // a(22) // } -// regex: VAR=v\d+ +// regex: VAR=v\d+v\d+ // regex: LABEL=[[:alpha:]0-9_]+ script { diff --git a/sway-ir/tests/mem2reg/global_simple.ir b/sway-ir/tests/mem2reg/global_simple.ir index 8c7d6b0fe58..1455359c564 100644 --- a/sway-ir/tests/mem2reg/global_simple.ir +++ b/sway-ir/tests/mem2reg/global_simple.ir @@ -1,4 +1,4 @@ -// regex: VAR=v\d+ +// regex: VAR=v\d+v\d+ // regex: ID=[[:alpha:]0-9_]+ script { diff --git a/sway-ir/tests/mem2reg/is_prime.ir b/sway-ir/tests/mem2reg/is_prime.ir index 2fd9416e992..fb4ca44446a 100644 --- a/sway-ir/tests/mem2reg/is_prime.ir +++ b/sway-ir/tests/mem2reg/is_prime.ir @@ -1,4 +1,4 @@ -// regex: VAR=v\d+ +// regex: VAR=v\d+v\d+ // regex: ID=[[:alpha:]0-9_]+ script { diff --git a/sway-ir/tests/mem2reg/while_loops.ir b/sway-ir/tests/mem2reg/while_loops.ir index 141329aade3..12a50190e1c 100644 --- a/sway-ir/tests/mem2reg/while_loops.ir +++ b/sway-ir/tests/mem2reg/while_loops.ir @@ -1,4 +1,4 @@ -// regex: VAR=v\d+ +// regex: VAR=v\d+v\d+ // regex: ID=[[:alpha:]0-9_]+ script { diff --git a/sway-ir/tests/memcpyopt/copy_prop_1.ir b/sway-ir/tests/memcpyopt/copy_prop_1.ir index 5f8af2861fb..e1f3f376fcf 100644 --- a/sway-ir/tests/memcpyopt/copy_prop_1.ir +++ b/sway-ir/tests/memcpyopt/copy_prop_1.ir @@ -16,7 +16,7 @@ script { } } -// regex: VAL=v\d+ +// regex: VAL=v\d+v\d+ // check: mem_copy_val $(mem_cpy_dest=$VAL), $(mem_cpy_src=$VAL) // The optimization should replace the load's source to be the memcpy's source. diff --git a/sway-ir/tests/memcpyopt/copy_prop_2.ir b/sway-ir/tests/memcpyopt/copy_prop_2.ir index c0b56195cef..e2efabc3118 100644 --- a/sway-ir/tests/memcpyopt/copy_prop_2.ir +++ b/sway-ir/tests/memcpyopt/copy_prop_2.ir @@ -14,7 +14,7 @@ script { } } -// regex: VAL=v\d+ +// regex: VAL=v\d+v\d+ // check: mem_copy_val $VAL, $VAL // The optimization should introduce a GEP into __anon_0 diff --git a/sway-ir/tests/memcpyopt/copy_prop_3.ir b/sway-ir/tests/memcpyopt/copy_prop_3.ir index 7a0f32adaa5..3f9df365a6f 100644 --- a/sway-ir/tests/memcpyopt/copy_prop_3.ir +++ b/sway-ir/tests/memcpyopt/copy_prop_3.ir @@ -15,11 +15,11 @@ script { } } -// regex: VAL=v\d+ +// regex: VAL=v\d+v\d+ // check: mem_copy_val $VAL, $VAL // The optimization should introduce a GEP into __anon_0 -// check: $(idx=$VAL) = add $VAL, $VAL +// check: $(idx=$VAL) = add v101, $VAL // check: $(local=$VAL) = get_local __ptr [u64; 8], __anon_0 // check: $(gep=$VAL) = get_elem_ptr $local, __ptr u64, $idx // check: $VAL = load $gep diff --git a/sway-ir/tests/memcpyopt/copy_prop_mut.ir b/sway-ir/tests/memcpyopt/copy_prop_mut.ir index 24eaa536a31..501126d5af8 100644 --- a/sway-ir/tests/memcpyopt/copy_prop_mut.ir +++ b/sway-ir/tests/memcpyopt/copy_prop_mut.ir @@ -38,7 +38,7 @@ script { } } -// regex: VAL=v\d+ +// regex: VAL=v\d+v\d+ // For the single propagation since `b` was mutable it must now make `a` mutable. diff --git a/sway-ir/tests/memcpyopt/no_copy_prop_src_ptr_escapes.ir b/sway-ir/tests/memcpyopt/no_copy_prop_src_ptr_escapes.ir index 1a10aeb7192..b10de119d8f 100644 --- a/sway-ir/tests/memcpyopt/no_copy_prop_src_ptr_escapes.ir +++ b/sway-ir/tests/memcpyopt/no_copy_prop_src_ptr_escapes.ir @@ -25,9 +25,11 @@ script { // The `store` instruction must not be optimized away. -// check: v0 = get_local __ptr u64, x -// check: v1 = get_local __ptr u64, y -// check: v2 = load v0 -// check: v3 = call escape(v0) -// check: store v2 to v1 -// check: v4 = load v1 +// regex: VAL=v\d+v\d+ + +// check: $(v0=$VAL) = get_local __ptr u64, x +// check: $(v1=$VAL) = get_local __ptr u64, y +// check: $(v2=$VAL) = load $v0 +// check: $(v3=$VAL) = call escape($v0) +// check: store $v2 to $v1 +// check: $(v4=$VAL) = load $v1 diff --git a/sway-ir/tests/memcpyopt/no_memcpyopt_wide_binary_operator.ir b/sway-ir/tests/memcpyopt/no_memcpyopt_wide_binary_operator.ir index 9cb9f7b5e06..12b90e0f5aa 100644 --- a/sway-ir/tests/memcpyopt/no_memcpyopt_wide_binary_operator.ir +++ b/sway-ir/tests/memcpyopt/no_memcpyopt_wide_binary_operator.ir @@ -1,3 +1,5 @@ +// regex: VAL=v\d+v\d+ + script { entry fn main() -> u256 { local u256 x @@ -17,4 +19,4 @@ script { } } -// check: v3 = load v2 +// check: load diff --git a/sway-ir/tests/memcpyopt/no_memcpyopt_wide_unary_operator.ir b/sway-ir/tests/memcpyopt/no_memcpyopt_wide_unary_operator.ir index 84c6d509cc8..34c4ab06a2e 100644 --- a/sway-ir/tests/memcpyopt/no_memcpyopt_wide_unary_operator.ir +++ b/sway-ir/tests/memcpyopt/no_memcpyopt_wide_unary_operator.ir @@ -1,3 +1,5 @@ +// regex: VAL=v\d+v\d+ + script { entry fn main() -> u256 { local u256 x @@ -17,4 +19,4 @@ script { } } -// check: v3 = load v2 +// check: load diff --git a/sway-ir/tests/memcpyopt/ret_value.ir b/sway-ir/tests/memcpyopt/ret_value.ir index e3f398e9072..4313e86a853 100644 --- a/sway-ir/tests/memcpyopt/ret_value.ir +++ b/sway-ir/tests/memcpyopt/ret_value.ir @@ -18,7 +18,7 @@ script { } } -// regex: VAL=v\d+ +// regex: VAL=v\d+v\d+ // regex: ID=[[:alpha:]0-9_]+ // check: fn main($(ret_value=$ID): __ptr { u64, u64 }) -> __ptr { u64, u64 } diff --git a/sway-ir/tests/serialize/get_storage_key.ir b/sway-ir/tests/serialize/get_storage_key.ir index c5457b39d60..cc02f9de275 100644 --- a/sway-ir/tests/serialize/get_storage_key.ir +++ b/sway-ir/tests/serialize/get_storage_key.ir @@ -1,3 +1,5 @@ +// regex: VAR=v\d+v\d+ + contract { // check: storage_key storage.a = 0xeb7ceb95f655d60faa3ae0cd0de1ff1af784e38a3b25a88f2be480f15478907f storage_key storage.a = 0xeb7ceb95f655d60faa3ae0cd0de1ff1af784e38a3b25a88f2be480f15478907f @@ -23,31 +25,31 @@ contract { entry(): - // check: v0 = get_storage_key __ptr { b256, u64, b256 }, storage.a + // check: $VAR = get_storage_key __ptr { b256, u64, b256 }, storage.a v0 = get_storage_key __ptr { b256, u64, b256 }, storage.a v1 = get_local __ptr { b256, u64, b256 }, __tmp_arg mem_copy_val v1, v0 v2 = call poke_0(v1) - // check: v3 = get_storage_key __ptr { b256, u64, b256 }, storage.a.b + // check: $VAR = get_storage_key __ptr { b256, u64, b256 }, storage.a.b v3 = get_storage_key __ptr { b256, u64, b256 }, storage.a.b v4 = get_local __ptr { b256, u64, b256 }, __tmp_arg0 mem_copy_val v4, v3 v5 = call poke_0(v4) - // check: v6 = get_storage_key __ptr { b256, u64, b256 }, storage::n1.a + // check: $VAR = get_storage_key __ptr { b256, u64, b256 }, storage::n1.a v6 = get_storage_key __ptr { b256, u64, b256 }, storage::n1.a v7 = get_local __ptr { b256, u64, b256 }, __tmp_arg1 mem_copy_val v7, v6 v8 = call poke_0(v7) - // check: v9 = get_storage_key __ptr { b256, u64, b256 }, storage::n1::n2.a + // check: $VAR = get_storage_key __ptr { b256, u64, b256 }, storage::n1::n2.a v9 = get_storage_key __ptr { b256, u64, b256 }, storage::n1::n2.a v10 = get_local __ptr { b256, u64, b256 }, __tmp_arg2 mem_copy_val v10, v9 v11 = call poke_0(v10) - // check: v12 = get_storage_key __ptr { b256, u64, b256 }, storage::n1::n2.a.b.c + // check: $VAR = get_storage_key __ptr { b256, u64, b256 }, storage::n1::n2.a.b.c v12 = get_storage_key __ptr { b256, u64, b256 }, storage::n1::n2.a.b.c v13 = get_local __ptr { b256, u64, b256 }, __tmp_arg3 mem_copy_val v13, v12 diff --git a/sway-ir/tests/serialize/intrinsic_addr_of.ir b/sway-ir/tests/serialize/intrinsic_addr_of.ir index 99a1ee0608b..512c08cd317 100644 --- a/sway-ir/tests/serialize/intrinsic_addr_of.ir +++ b/sway-ir/tests/serialize/intrinsic_addr_of.ir @@ -1,4 +1,4 @@ -// regex: VAR=v\d+ +// regex: VAR=v\d+v\d+ script { // check: main() -> u64 diff --git a/sway-ir/tests/serialize/log_event_metadata.ir b/sway-ir/tests/serialize/log_event_metadata.ir index 4ea8c526aad..7b93f89953a 100644 --- a/sway-ir/tests/serialize/log_event_metadata.ir +++ b/sway-ir/tests/serialize/log_event_metadata.ir @@ -1,18 +1,25 @@ +// regex: VAR=v\d+v\d+ + script { fn main() -> () { entry(): + // check: $(v0=$VAR) = const v0 = const u64 0 + // check: $(v1=$VAR) = const v1 = const u64 1 - // check: log u64 v0, v1 + // check: log u64 $v0, $v1 log u64 v0, v1 + // check: $(v2=$VAR) = const v2 = const u64 2 + // check: $(v3=$VAR) = const v3 = const u64 3 - // check: log u64 v2, v3 log_data(version: 0, is_event: true, is_indexed: true, event_type_size: 8, num_elements: 2) + // check: log u64 $v2, $v3 log_data(version: 0, is_event: true, is_indexed: true, event_type_size: 8, num_elements: 2) log u64 v2, v3 log_data(version: 0, is_event: true, is_indexed: true, event_type_size: 8, num_elements: 2) + // check: $(v4=$VAR) = const unit v4 = const unit () - // check: ret () v4 + // check: ret () $v4 ret () v4 } } diff --git a/sway-ir/tests/serialize/metadata.ir b/sway-ir/tests/serialize/metadata.ir index 7829c5427e2..1acb1556c14 100644 --- a/sway-ir/tests/serialize/metadata.ir +++ b/sway-ir/tests/serialize/metadata.ir @@ -1,16 +1,18 @@ +// regex: VAR=v\d+v\d+ + script { // check: fn main() -> bool, !1 { fn main() -> bool, !1 { entry(): - // check: v0 = const bool true, !2 + // check: $(v0=$VAR) = const bool true, !2 v0 = const bool true, !2 - // check: cbr v0, block1(v0), block0(v0), !3 + // check: cbr $v0, block1($v0), block0($v0), !3 cbr v0, block1(v0), block0(v0), !3 block0(v1: bool): - // check: v2 = call f(), !4 + // check: $(v2=$VAR) = call f(), !4 v2 = call f(), !4 - // check: br block1(v2), !3 + // check: br block1($v2), !3 br block1(v2), !3 block1(v3: bool): diff --git a/sway-ir/tests/serialize/storage_load.ir b/sway-ir/tests/serialize/storage_load.ir index 7c26d62036a..0e3b61830c1 100644 --- a/sway-ir/tests/serialize/storage_load.ir +++ b/sway-ir/tests/serialize/storage_load.ir @@ -1,4 +1,4 @@ -// regex: VAR=v\d+ +// regex: VAR=v\d+v\d+ script { // check: fn main diff --git a/sway-ir/tests/serialize/storage_store.ir b/sway-ir/tests/serialize/storage_store.ir index 2120316e96f..fc77b3ecaa2 100644 --- a/sway-ir/tests/serialize/storage_store.ir +++ b/sway-ir/tests/serialize/storage_store.ir @@ -1,4 +1,4 @@ -// regex: VAR=v\d+ +// regex: VAR=v\d+v\d+ contract { // check: fn set_x diff --git a/sway-ir/tests/serialize/test.ir b/sway-ir/tests/serialize/test.ir index 0f706a5410e..aa65c81563f 100644 --- a/sway-ir/tests/serialize/test.ir +++ b/sway-ir/tests/serialize/test.ir @@ -1,8 +1,10 @@ +// regex: VAR=v\d+v\d+ + script { // check: fn main() -> (), !1 { fn main() -> (), !1 { entry(): - // check: v0 = const unit () + // check: $VAR = const unit () v0 = const unit () ret () v0 } @@ -10,7 +12,7 @@ script { // check: fn my_test_func() -> (), !4 { fn my_test_func() -> (), !4 { entry(): - // check: v0 = const unit () + // check: $VAR = const unit () v0 = const unit () ret () v0 } diff --git a/sway-ir/tests/serialize/wide_ops.ir b/sway-ir/tests/serialize/wide_ops.ir index 43c79db2800..7ee45777c68 100644 --- a/sway-ir/tests/serialize/wide_ops.ir +++ b/sway-ir/tests/serialize/wide_ops.ir @@ -1,51 +1,56 @@ +// regex: VAR=v\d+v\d+ + script { fn main() -> () { local u256 a entry(): +// check: $(v0=$VAR) = get_local __ptr u256, a v0 = get_local __ptr u256, a - v1 = const u64 2 wide add v0, v0 to v0 -// check: wide add v0, v0 to v0 +// check: wide add $v0, $v0 to $v0 wide sub v0, v0 to v0 -// check: wide sub v0, v0 to v0 +// check: wide sub $v0, $v0 to $v0 wide mul v0, v0 to v0 -// check: wide mul v0, v0 to v0 +// check: wide mul $v0, $v0 to $v0 wide div v0, v0 to v0 -// check: wide div v0, v0 to v0 +// check: wide div $v0, $v0 to $v0 wide mod v0, v0 to v0 -// check: wide mod v0, v0 to v0 +// check: wide mod $v0, $v0 to $v0 + +// check: $(v1=$VAR) = const u64 2 + v1 = const u64 2 wide lsh v0, v1 to v0 -// check: wide lsh v0, v1 to v0 +// check: wide lsh $v0, $v1 to $v0 wide rsh v0, v1 to v0 -// check: wide rsh v0, v1 to v0 +// check: wide rsh $v0, $v1 to $v0 wide not v0 to v0 -// check: wide not v0 to v0 +// check: wide not $v0 to $v0 wide and v0, v0 to v0 -// check: wide and v0, v0 to v0 +// check: wide and $v0, $v0 to $v0 wide or v0, v0 to v0 -// check: wide or v0, v0 to v0 +// check: wide or $v0, $v0 to $v0 wide xor v0, v0 to v0 -// check: wide xor v0, v0 to v0 +// check: wide xor $v0, $v0 to $v0 v2 = wide cmp eq v0 v0 -// check: v2 = wide cmp eq v0 v0 +// check: $(v2=$VAR) = wide cmp eq $v0 $v0 v3 = wide cmp lt v0 v0 -// check: v3 = wide cmp lt v0 v0 +// check: $(v3=$VAR) = wide cmp lt $v0 $v0 v4 = wide cmp gt v0 v0 -// check: v4 = wide cmp gt v0 v0 +// check: $(v4=$VAR) = wide cmp gt $v0 $v0 v5 = const unit () ret () v5 diff --git a/test/src/e2e_vm_tests/test_programs/should_pass/language/array/array_repeat/stdout.snap b/test/src/e2e_vm_tests/test_programs/should_pass/language/array/array_repeat/stdout.snap index 95263d45937..080ff29dd31 100644 --- a/test/src/e2e_vm_tests/test_programs/should_pass/language/array/array_repeat/stdout.snap +++ b/test/src/e2e_vm_tests/test_programs/should_pass/language/array/array_repeat/stdout.snap @@ -26,10 +26,10 @@ library { script { pub entry fn __entry() -> __ptr never, !3 { entry(): - v0 = call main_0(), !6 - v1 = const u64 0, !7 - v2 = const u64 0, !8 - retd v1 v2, !9 + v829v1 = call main_0(), !6 + v832v1 = const u64 0, !7 + v833v1 = const u64 0, !8 + retd v832v1 v833v1, !9 } entry_orig fn main_0() -> (), !13 { @@ -53,181 +53,181 @@ script { local [u8; 1] array entry(): - v0 = get_local __ptr [u8; 5], __ret_val - v1 = call array_repeat_zero_small_u8_1(v0) - v2 = get_local __ptr [u64; 5], __ret_val0 - v3 = call array_repeat_zero_small_u16_2(v2) - v4 = get_local __ptr [u64; 5], __ret_val1 - v5 = call array_repeat_zero_small_u16_2(v4) - v6 = get_local __ptr [u64; 5], __ret_val2 - v7 = call array_repeat_zero_small_u16_2(v6) - v8 = get_local __ptr [u256; 5], __ret_val3 - v9 = call array_repeat_zero_small_u256_5(v8) - v10 = get_local __ptr [b256; 5], __ret_val4 - v11 = call array_repeat_zero_small_b256_6(v10) - v12 = get_local __ptr [bool; 5], __ret_val5 - v13 = call array_repeat_zero_small_bool_7(v12) - v14 = get_local __ptr [u8; 25], __ret_val6 - v15 = call array_repeat_zero_big_u8_8(v14) - v16 = get_local __ptr [u64; 25], __ret_val7 - v17 = call array_repeat_zero_big_u32_10(v16) - v18 = get_local __ptr [u64; 25], __ret_val8 - v19 = call array_repeat_zero_big_u32_10(v18) - v20 = get_local __ptr [u64; 25], __ret_val9 - v21 = call array_repeat_zero_big_u32_10(v20) - v22 = get_local __ptr [u256; 25], __ret_val10 - v23 = call array_repeat_zero_big_u256_12(v22) - v24 = get_local __ptr [b256; 25], __ret_val11 - v25 = call array_repeat_zero_big_b256_13(v24) - v26 = get_local __ptr [bool; 25], __ret_val12 - v27 = call array_repeat_zero_big_bool_14(v26) - v28 = get_local __ptr [bool; 5], __ret_val13 - v29 = call small_array_repeat_15(v28) - v30 = get_local __ptr [bool; 25], __ret_val14 - v31 = call big_array_repeat_16(v30) - v32 = get_local __ptr [u8; 262145], __ret_val15 - v33 = call u8_array_bigger_than_18_bits_17(v32) - v34 = call arrays_with_const_length_18(), !16 - v35 = get_local __ptr [u8; 1], array - v36 = call decode_array_19(v35) - v37 = get_local __ptr [u8; 1], array, !17 - v38 = const u64 0, !18 - v39 = get_elem_ptr v37, __ptr u8, v38, !19 - v40 = load v39 - v41 = const u8 255, !20 - v42 = cmp eq v40 v41, !29 - v43 = const bool false, !30 - v44 = cmp eq v42 v43, !33 - cbr v44, assert_eq_38_block0(), assert_eq_38_block1(), !34 + v1594v1 = get_local __ptr [u8; 5], __ret_val + v1595v1 = call array_repeat_zero_small_u8_1(v1594v1) + v1601v1 = get_local __ptr [u64; 5], __ret_val0 + v1602v1 = call array_repeat_zero_small_u16_2(v1601v1) + v1604v1 = get_local __ptr [u64; 5], __ret_val1 + v1605v1 = call array_repeat_zero_small_u16_2(v1604v1) + v1607v1 = get_local __ptr [u64; 5], __ret_val2 + v1608v1 = call array_repeat_zero_small_u16_2(v1607v1) + v1614v1 = get_local __ptr [u256; 5], __ret_val3 + v1615v1 = call array_repeat_zero_small_u256_5(v1614v1) + v1621v1 = get_local __ptr [b256; 5], __ret_val4 + v1622v1 = call array_repeat_zero_small_b256_6(v1621v1) + v1628v1 = get_local __ptr [bool; 5], __ret_val5 + v1629v1 = call array_repeat_zero_small_bool_7(v1628v1) + v1635v1 = get_local __ptr [u8; 25], __ret_val6 + v1636v1 = call array_repeat_zero_big_u8_8(v1635v1) + v1642v1 = get_local __ptr [u64; 25], __ret_val7 + v1643v1 = call array_repeat_zero_big_u32_10(v1642v1) + v1645v1 = get_local __ptr [u64; 25], __ret_val8 + v1646v1 = call array_repeat_zero_big_u32_10(v1645v1) + v1648v1 = get_local __ptr [u64; 25], __ret_val9 + v1649v1 = call array_repeat_zero_big_u32_10(v1648v1) + v1655v1 = get_local __ptr [u256; 25], __ret_val10 + v1656v1 = call array_repeat_zero_big_u256_12(v1655v1) + v1662v1 = get_local __ptr [b256; 25], __ret_val11 + v1663v1 = call array_repeat_zero_big_b256_13(v1662v1) + v1669v1 = get_local __ptr [bool; 25], __ret_val12 + v1670v1 = call array_repeat_zero_big_bool_14(v1669v1) + v1676v1 = get_local __ptr [bool; 5], __ret_val13 + v1677v1 = call small_array_repeat_15(v1676v1) + v1683v1 = get_local __ptr [bool; 25], __ret_val14 + v1684v1 = call big_array_repeat_16(v1683v1) + v1690v1 = get_local __ptr [u8; 262145], __ret_val15 + v1691v1 = call u8_array_bigger_than_18_bits_17(v1690v1) + v236v1 = call arrays_with_const_length_18(), !16 + v1697v1 = get_local __ptr [u8; 1], array + v1698v1 = call decode_array_19(v1697v1) + v820v1 = get_local __ptr [u8; 1], array, !17 + v821v1 = const u64 0, !18 + v822v1 = get_elem_ptr v820v1, __ptr u8, v821v1, !19 + v823v1 = load v822v1 + v824v1 = const u8 255, !20 + v1560v1 = cmp eq v823v1 v824v1, !29 + v601v1 = const bool false, !30 + v1564v1 = cmp eq v1560v1 v601v1, !33 + cbr v1564v1, assert_eq_38_block0(), assert_eq_38_block1(), !34 assert_eq_38_block0(): - v45 = call log_42(v40), !37 - v46 = call log_42(v41), !40 - v47 = const u64 18446744073709486083 - revert v47, !45 + v1571v1 = call log_42(v823v1), !37 + v1573v1 = call log_42(v824v1), !40 + v846v1 = const u64 18446744073709486083 + revert v846v1, !45 assert_eq_38_block1(): - v48 = const unit () - ret () v48 + v827v1 = const unit () + ret () v827v1 } fn array_repeat_zero_small_u8_1(__ret_value: __ptr [u8; 5]) -> (), !49 { entry(__ret_value: __ptr [u8; 5]): mem_clear_val __ret_value - v0 = const unit () - ret () v0 + v1592v1 = const unit () + ret () v1592v1 } fn array_repeat_zero_small_u16_2(__ret_value: __ptr [u64; 5]) -> (), !52 { entry(__ret_value: __ptr [u64; 5]): mem_clear_val __ret_value - v0 = const unit () - ret () v0 + v1599v1 = const unit () + ret () v1599v1 } fn array_repeat_zero_small_u256_5(__ret_value: __ptr [u256; 5]) -> (), !55 { entry(__ret_value: __ptr [u256; 5]): mem_clear_val __ret_value - v0 = const unit () - ret () v0 + v1612v1 = const unit () + ret () v1612v1 } fn array_repeat_zero_small_b256_6(__ret_value: __ptr [b256; 5]) -> (), !58 { entry(__ret_value: __ptr [b256; 5]): mem_clear_val __ret_value - v0 = const unit () - ret () v0 + v1619v1 = const unit () + ret () v1619v1 } fn array_repeat_zero_small_bool_7(__ret_value: __ptr [bool; 5]) -> (), !61 { entry(__ret_value: __ptr [bool; 5]): mem_clear_val __ret_value - v0 = const unit () - ret () v0 + v1626v1 = const unit () + ret () v1626v1 } fn array_repeat_zero_big_u8_8(__ret_value: __ptr [u8; 25]) -> (), !64 { entry(__ret_value: __ptr [u8; 25]): mem_clear_val __ret_value - v0 = const unit () - ret () v0 + v1633v1 = const unit () + ret () v1633v1 } fn array_repeat_zero_big_u32_10(__ret_value: __ptr [u64; 25]) -> (), !67 { entry(__ret_value: __ptr [u64; 25]): mem_clear_val __ret_value - v0 = const unit () - ret () v0 + v1640v1 = const unit () + ret () v1640v1 } fn array_repeat_zero_big_u256_12(__ret_value: __ptr [u256; 25]) -> (), !70 { entry(__ret_value: __ptr [u256; 25]): mem_clear_val __ret_value - v0 = const unit () - ret () v0 + v1653v1 = const unit () + ret () v1653v1 } fn array_repeat_zero_big_b256_13(__ret_value: __ptr [b256; 25]) -> (), !73 { entry(__ret_value: __ptr [b256; 25]): mem_clear_val __ret_value - v0 = const unit () - ret () v0 + v1660v1 = const unit () + ret () v1660v1 } fn array_repeat_zero_big_bool_14(__ret_value: __ptr [bool; 25]) -> (), !76 { entry(__ret_value: __ptr [bool; 25]): mem_clear_val __ret_value - v0 = const unit () - ret () v0 + v1667v1 = const unit () + ret () v1667v1 } fn small_array_repeat_15(__ret_value: __ptr [bool; 5]) -> (), !79 { entry(__ret_value: __ptr [bool; 5]): - v0 = const u64 0 - v1 = get_elem_ptr __ret_value, __ptr bool, v0 - v2 = const bool true, !80 - store v2 to v1, !81 - v3 = const u64 1 - v4 = get_elem_ptr __ret_value, __ptr bool, v3 - store v2 to v4, !81 - v5 = const u64 2 - v6 = get_elem_ptr __ret_value, __ptr bool, v5 - store v2 to v6, !81 - v7 = const u64 3 - v8 = get_elem_ptr __ret_value, __ptr bool, v7 - store v2 to v8, !81 - v9 = const u64 4 - v10 = get_elem_ptr __ret_value, __ptr bool, v9 - store v2 to v10, !81 - v11 = const unit () - ret () v11 + v129v1 = const u64 0 + v130v1 = get_elem_ptr __ret_value, __ptr bool, v129v1 + v128v1 = const bool true, !80 + store v128v1 to v130v1, !81 + v132v1 = const u64 1 + v133v1 = get_elem_ptr __ret_value, __ptr bool, v132v1 + store v128v1 to v133v1, !81 + v135v1 = const u64 2 + v136v1 = get_elem_ptr __ret_value, __ptr bool, v135v1 + store v128v1 to v136v1, !81 + v138v1 = const u64 3 + v139v1 = get_elem_ptr __ret_value, __ptr bool, v138v1 + store v128v1 to v139v1, !81 + v141v1 = const u64 4 + v142v1 = get_elem_ptr __ret_value, __ptr bool, v141v1 + store v128v1 to v142v1, !81 + v1674v1 = const unit () + ret () v1674v1 } fn big_array_repeat_16(__ret_value: __ptr [bool; 25]) -> (), !84 { entry(__ret_value: __ptr [bool; 25]): - v0 = const u64 0 - br array_init_loop(v0) + v151v1 = const u64 0 + br array_init_loop(v151v1) - array_init_loop(v1: u64): - v2 = get_elem_ptr __ret_value, __ptr bool, v1 - v3 = const bool true, !85 - store v3 to v2, !86 - v4 = const u64 1 - v5 = add v1, v4 - v6 = const u64 25 - v7 = cmp lt v5 v6 - cbr v7, array_init_loop(v5), array_init_exit() + array_init_loop(v153v1: u64): + v154v1 = get_elem_ptr __ret_value, __ptr bool, v153v1 + v150v1 = const bool true, !85 + store v150v1 to v154v1, !86 + v156v1 = const u64 1 + v157v1 = add v153v1, v156v1 + v158v1 = const u64 25 + v159v1 = cmp lt v157v1 v158v1 + cbr v159v1, array_init_loop(v157v1), array_init_exit() array_init_exit(): - v8 = const unit () - ret () v8 + v1681v1 = const unit () + ret () v1681v1 } fn u8_array_bigger_than_18_bits_17(__ret_value: __ptr [u8; 262145]) -> (), !89 { entry(__ret_value: __ptr [u8; 262145]): mem_clear_val __ret_value - v0 = const unit () - ret () v0 + v1688v1 = const unit () + ret () v1688v1 } fn arrays_with_const_length_18() -> (), !92 { @@ -237,16 +237,16 @@ script { local [u64; 2] __anon_4 entry(): - v0 = get_local __ptr [u64; 1], __anon_0, !93 - mem_clear_val v0 - v1 = get_local __ptr [u64; 1], __anon_1, !94 - mem_clear_val v1 - v2 = get_local __ptr [u64; 1], __anon_2, !95 - mem_clear_val v2 - v3 = get_local __ptr [u64; 2], __anon_4, !96 - mem_clear_val v3 - v4 = const unit () - ret () v4 + v182v1 = get_local __ptr [u64; 1], __anon_0, !93 + mem_clear_val v182v1 + v190v1 = get_local __ptr [u64; 1], __anon_1, !94 + mem_clear_val v190v1 + v198v1 = get_local __ptr [u64; 1], __anon_2, !95 + mem_clear_val v198v1 + v214v1 = get_local __ptr [u64; 2], __anon_4, !96 + mem_clear_val v214v1 + v234v1 = const unit () + ret () v234v1 } fn decode_array_19(__ret_value: __ptr [u8; 1]) -> (), !99 { @@ -255,20 +255,20 @@ script { local slice s entry(__ret_value: __ptr [u8; 1]): - v0 = get_local __ptr [u8; 1], __anon_0, !100 - v1 = const u64 0 - v2 = get_elem_ptr v0, __ptr u8, v1 - v3 = const u8 255, !101 - store v3 to v2, !100 - v4 = get_local __ptr [u8; 1], __anon_0 - v5 = get_local __ptr slice, s - v6 = call to_slice_20(v4, v5) - v7 = get_local __ptr slice, s - v8 = get_local __ptr [u8; 1], __ret_val0 - v9 = call abi_decode_24(v7, v8) - mem_copy_val __ret_value, v8 - v10 = const unit () - ret () v10 + v292v1 = get_local __ptr [u8; 1], __anon_0, !100 + v294v1 = const u64 0 + v295v1 = get_elem_ptr v292v1, __ptr u8, v294v1 + v293v1 = const u8 255, !101 + store v293v1 to v295v1, !100 + v1581v1 = get_local __ptr [u8; 1], __anon_0 + v1704v1 = get_local __ptr slice, s + v1705v1 = call to_slice_20(v1581v1, v1704v1) + v1586v1 = get_local __ptr slice, s + v1711v1 = get_local __ptr [u8; 1], __ret_val0 + v1712v1 = call abi_decode_24(v1586v1, v1711v1) + mem_copy_val __ret_value, v1711v1 + v1695v1 = const unit () + ret () v1695v1 } fn to_slice_20(array: __ptr [u8; 1], __ret_value: __ptr slice) -> (), !104 { @@ -277,26 +277,26 @@ script { local { ptr, u64 } parts_ entry(array: __ptr [u8; 1], __ret_value: __ptr slice): - v0 = get_local __ptr [u8; 1], array_ - mem_copy_val v0, array - v1 = get_local __ptr [u8; 1], array_, !105 - v2 = cast_ptr v1 to ptr, !106 - v3 = get_local __ptr { ptr, u64 }, parts_, !112 - v4 = const u64 0 - v5 = get_elem_ptr v3, __ptr ptr, v4 - store v2 to v5 - v6 = const u64 1 - v7 = get_elem_ptr v3, __ptr u64, v6 - v8 = const u64 1, !115 - store v8 to v7 - v9 = get_local __ptr { ptr, u64 }, parts_, !117 - v10 = asm(ptr: v9) -> __ptr slice ptr { + v240v1 = get_local __ptr [u8; 1], array_ + mem_copy_val v240v1, array + v286v1 = get_local __ptr [u8; 1], array_, !105 + v287v1 = cast_ptr v286v1 to ptr, !106 + v877v1 = get_local __ptr { ptr, u64 }, parts_, !112 + v1770v1 = const u64 0 + v1771v1 = get_elem_ptr v877v1, __ptr ptr, v1770v1 + store v287v1 to v1771v1 + v1773v1 = const u64 1 + v1774v1 = get_elem_ptr v877v1, __ptr u64, v1773v1 + v869v1 = const u64 1, !115 + store v869v1 to v1774v1 + v879v1 = get_local __ptr { ptr, u64 }, parts_, !117 + v1714v1 = asm(ptr: v879v1) -> __ptr slice ptr { } - v11 = get_local __ptr slice, __aggr_memcpy_0 - mem_copy_val v11, v10 - mem_copy_val __ret_value, v11 - v12 = const unit () - ret () v12 + v1743v1 = get_local __ptr slice, __aggr_memcpy_0 + mem_copy_val v1743v1, v1714v1 + mem_copy_val __ret_value, v1743v1 + v1702v1 = const unit () + ret () v1702v1 } pub fn abi_decode_24(data: __ptr slice, __ret_value: __ptr [u8; 1]) -> (), !121 { @@ -315,82 +315,82 @@ script { local slice slice_0 entry(data: __ptr slice, __ret_value: __ptr [u8; 1]): - v0 = get_local __ptr slice, data_ - mem_copy_val v0, data - v1 = get_local __ptr slice, data_, !122 - v2 = get_local __ptr slice, self_, !125 - mem_copy_val v2, v1 - v3 = get_local __ptr slice, self_, !127 - v4 = get_local __ptr slice, slice_, !130 - mem_copy_val v4, v3 - v5 = get_local __ptr slice, slice_, !132 - v6 = asm(ptr: v5) -> __ptr { ptr, u64 } ptr { + v302v1 = get_local __ptr slice, data_ + mem_copy_val v302v1, data + v337v1 = get_local __ptr slice, data_, !122 + v1147v1 = get_local __ptr slice, self_, !125 + mem_copy_val v1147v1, v337v1 + v1149v1 = get_local __ptr slice, self_, !127 + v1151v1 = get_local __ptr slice, slice_, !130 + mem_copy_val v1151v1, v1149v1 + v1153v1 = get_local __ptr slice, slice_, !132 + v1716v1 = asm(ptr: v1153v1) -> __ptr { ptr, u64 } ptr { } - v7 = get_local __ptr { ptr, u64 }, __aggr_memcpy_0 - mem_copy_val v7, v6 - v8 = get_local __ptr { ptr, u64 }, __anon_0, !125 - mem_copy_val v8, v7 - v9 = const u64 0 - v10 = get_elem_ptr v8, __ptr ptr, v9, !134 - v11 = get_local __ptr slice, data_, !135 - v12 = get_local __ptr slice, self_0, !138 - mem_copy_val v12, v11 - v13 = get_local __ptr slice, self_0, !140 - v14 = get_local __ptr slice, slice_0, !143 - mem_copy_val v14, v13 - v15 = get_local __ptr slice, slice_0, !144 - v16 = asm(ptr: v15) -> __ptr { ptr, u64 } ptr { + v1749v1 = get_local __ptr { ptr, u64 }, __aggr_memcpy_0 + mem_copy_val v1749v1, v1716v1 + v1157v1 = get_local __ptr { ptr, u64 }, __anon_0, !125 + mem_copy_val v1157v1, v1749v1 + v333v1 = const u64 0 + v1159v1 = get_elem_ptr v1157v1, __ptr ptr, v333v1, !134 + v366v1 = get_local __ptr slice, data_, !135 + v1164v1 = get_local __ptr slice, self_0, !138 + mem_copy_val v1164v1, v366v1 + v1166v1 = get_local __ptr slice, self_0, !140 + v1168v1 = get_local __ptr slice, slice_0, !143 + mem_copy_val v1168v1, v1166v1 + v1170v1 = get_local __ptr slice, slice_0, !144 + v1718v1 = asm(ptr: v1170v1) -> __ptr { ptr, u64 } ptr { } - v17 = get_local __ptr { ptr, u64 }, __aggr_memcpy_00 - mem_copy_val v17, v16 - v18 = get_local __ptr { ptr, u64 }, __anon_00, !138 - mem_copy_val v18, v17 - v19 = get_local __ptr { ptr }, __anon_01, !148 - v20 = const u64 0 - v21 = get_elem_ptr v19, __ptr ptr, v20, !149 - mem_copy_val v21, v10 - v22 = get_local __ptr { ptr }, buffer, !150 - mem_copy_val v22, v19 - v23 = get_local __ptr { ptr }, buffer, !151 - v24 = get_local __ptr [u8; 1], __anon_02, !155 - mem_clear_val v24, !156 - v25 = get_local __ptr [u8; 1], array, !158 - mem_copy_val v25, v24 - v26 = get_local __ptr [u8; 1], array, !160 - v27 = cast_ptr v26 to __ptr [u8; 1], !156 - v28 = const u64 0, !161 - br abi_decode_30_while(v28), !156 + v1754v1 = get_local __ptr { ptr, u64 }, __aggr_memcpy_00 + mem_copy_val v1754v1, v1718v1 + v1174v1 = get_local __ptr { ptr, u64 }, __anon_00, !138 + mem_copy_val v1174v1, v1754v1 + v1188v1 = get_local __ptr { ptr }, __anon_01, !148 + v313v1 = const u64 0 + v1189v1 = get_elem_ptr v1188v1, __ptr ptr, v313v1, !149 + mem_copy_val v1189v1, v1159v1 + v370v1 = get_local __ptr { ptr }, buffer, !150 + mem_copy_val v370v1, v1188v1 + v573v1 = get_local __ptr { ptr }, buffer, !151 + v1205v1 = get_local __ptr [u8; 1], __anon_02, !155 + mem_clear_val v1205v1, !156 + v1208v1 = get_local __ptr [u8; 1], array, !158 + mem_copy_val v1208v1, v1205v1 + v1210v1 = get_local __ptr [u8; 1], array, !160 + v1211v1 = cast_ptr v1210v1 to __ptr [u8; 1], !156 + v390v1 = const u64 0, !161 + br abi_decode_30_while(v390v1), !156 - abi_decode_30_while(v29: u64): - v30 = const u64 1 - v31 = cmp lt v29 v30, !164 - cbr v31, abi_decode_30_while_body(), abi_decode_30_end_while(), !156 + abi_decode_30_while(v575v3: u64): + v408v1 = const u64 1 + v1220v1 = cmp lt v575v3 v408v1, !164 + cbr v1220v1, abi_decode_30_while_body(), abi_decode_30_end_while(), !156 abi_decode_30_while_body(): - v32 = const u64 1 - v33 = asm(idx: v29, elem_ir_type_size: v32, ptr: v27, offset_temp, ptr_out) -> __ptr u8 ptr_out, !156 { + v414v1 = const u64 1 + v1228v1 = asm(idx: v575v3, elem_ir_type_size: v414v1, ptr: v1211v1, offset_temp, ptr_out) -> __ptr u8 ptr_out, !156 { mul offset_temp idx elem_ir_type_size add ptr_out ptr offset_temp } - v34 = const u64 0 - v35 = get_elem_ptr v23, __ptr ptr, v34, !172 - v36 = load v35, !173 - v37 = asm(ptr: v36, val) -> u8 val, !175 { + v471v1 = const u64 0 + v1265v1 = get_elem_ptr v573v1, __ptr ptr, v471v1, !172 + v1266v1 = load v1265v1, !173 + v1267v1 = asm(ptr: v1266v1, val) -> u8 val, !175 { lb val ptr i0, !176 } - v38 = load v35, !177 - v39 = const u64 1, !178 - v40 = add v38, v39, !179 - store v40 to v35, !181 - store v37 to v33, !183 - v41 = const u64 1, !184 - v42 = add v29, v41, !187 - br abi_decode_30_while(v42), !156 + v1271v1 = load v1265v1, !177 + v1272v1 = const u64 1, !178 + v1273v1 = add v1271v1, v1272v1, !179 + store v1273v1 to v1265v1, !181 + store v1267v1 to v1228v1, !183 + v559v1 = const u64 1, !184 + v1306v1 = add v575v3, v559v1, !187 + br abi_decode_30_while(v1306v1), !156 abi_decode_30_end_while(): - mem_copy_val __ret_value, v27 - v43 = const unit () - ret () v43 + mem_copy_val __ret_value, v1211v1 + v1709v1 = const unit () + ret () v1709v1 } pub fn log_42(value !189: u8) -> (), !192 { @@ -400,31 +400,31 @@ script { local u8 item_ entry(value: u8): - v0 = get_local __ptr u8, item_, !193 - store value to v0, !193 - v1 = get_local __ptr u8, item_, !195 - v2 = const u64 1 - v3 = asm(size: v2, src: v1) -> ptr hp, !197 { + v1411v1 = get_local __ptr u8, item_, !193 + store value to v1411v1, !193 + v1509v1 = get_local __ptr u8, item_, !195 + v645v1 = const u64 1 + v1510v1 = asm(size: v645v1, src: v1509v1) -> ptr hp, !197 { aloc size, !198 mcp hp src size, !199 } - v4 = get_local __ptr { ptr, u64 }, __anon_0, !201 - v5 = const u64 0 - v6 = get_elem_ptr v4, __ptr ptr, v5, !202 - store v3 to v6, !203 - v7 = const u64 1 - v8 = get_elem_ptr v4, __ptr u64, v7, !204 - store v2 to v8, !205 - v9 = asm(s: v4) -> __ptr slice s { + v1514v1 = get_local __ptr { ptr, u64 }, __anon_0, !201 + v659v1 = const u64 0 + v1515v1 = get_elem_ptr v1514v1, __ptr ptr, v659v1, !202 + store v1510v1 to v1515v1, !203 + v662v1 = const u64 1 + v1517v1 = get_elem_ptr v1514v1, __ptr u64, v662v1, !204 + store v645v1 to v1517v1, !205 + v1723v1 = asm(s: v1514v1) -> __ptr slice s { } - v10 = get_local __ptr slice, __aggr_memcpy_0 - mem_copy_val v10, v9 - v11 = get_local __ptr slice, __log_arg - mem_copy_val v11, v10 - v12 = const u64 14454674236531057292 - log __ptr slice v11, v12 - v13 = const unit () - ret () v13 + v1761v1 = get_local __ptr slice, __aggr_memcpy_0 + mem_copy_val v1761v1, v1723v1 + v1720v1 = get_local __ptr slice, __log_arg + mem_copy_val v1720v1, v1761v1 + v790v1 = const u64 14454674236531057292 + log __ptr slice v1720v1, v790v1 + v793v1 = const unit () + ret () v793v1 } } diff --git a/test/src/e2e_vm_tests/test_programs/should_pass/language/configurable_dedup_decode/stdout.snap b/test/src/e2e_vm_tests/test_programs/should_pass/language/configurable_dedup_decode/stdout.snap index 6a8b52d8204..aab7d5e2512 100644 --- a/test/src/e2e_vm_tests/test_programs/should_pass/language/configurable_dedup_decode/stdout.snap +++ b/test/src/e2e_vm_tests/test_programs/should_pass/language/configurable_dedup_decode/stdout.snap @@ -21,59 +21,59 @@ script { local { u64 } temp entry(ptr: ptr, len: u64, target: ptr): - v0 = get_local __ptr { ptr }, buffer, !14 - v1 = const u64 0 - v2 = get_elem_ptr v0, __ptr ptr, v1, !15 - store ptr to v2, !16 - v3 = get_local __ptr { ptr }, buffer, !17 - v4 = const u64 0 - v5 = get_elem_ptr v3, __ptr ptr, v4, !25 - v6 = load v5, !26 - v7 = asm(ptr: v6, val) -> u64 val, !28 { + v416v1 = get_local __ptr { ptr }, buffer, !14 + v114v1 = const u64 0 + v417v1 = get_elem_ptr v416v1, __ptr ptr, v114v1, !15 + store ptr to v417v1, !16 + v171v1 = get_local __ptr { ptr }, buffer, !17 + v136v1 = const u64 0 + v423v3 = get_elem_ptr v171v1, __ptr ptr, v136v1, !25 + v613v1 = load v423v3, !26 + v614v1 = asm(ptr: v613v1, val) -> u64 val, !28 { lw val ptr i0, !29 } - v8 = load v5, !30 - v9 = const u64 8, !31 - v10 = add v8, v9, !32 - store v10 to v5, !34 - v11 = get_local __ptr { u64 }, temp, !36 - v12 = const u64 0 - v13 = get_elem_ptr v11, __ptr u64, v12, !37 - store v7 to v13, !38 - v14 = get_local __ptr { u64 }, temp, !39 - v15 = cast_ptr v14 to ptr, !40 - v16 = const u64 8 - v17 = asm(target: target, temp: v15, size: v16) -> (), !41 { + v616v1 = load v423v3, !30 + v617v1 = const u64 8, !31 + v618v1 = add v616v1, v617v1, !32 + store v618v1 to v423v3, !34 + v424v1 = get_local __ptr { u64 }, temp, !36 + v166v1 = const u64 0 + v425v1 = get_elem_ptr v424v1, __ptr u64, v166v1, !37 + store v614v1 to v425v1, !38 + v178v1 = get_local __ptr { u64 }, temp, !39 + v179v1 = cast_ptr v178v1 to ptr, !40 + v180v1 = const u64 8 + v181v1 = asm(target: target, temp: v179v1, size: v180v1) -> (), !41 { mcp target temp size, !42 } - v18 = const unit () - ret () v18 + v182v1 = const unit () + ret () v182v1 } pub entry fn __entry() -> __ptr never, !46 { local u64 item_ entry(): - v0 = call main_8(), !49 - v1 = get_local __ptr u64, item_, !52 - store v0 to v1, !52 - v2 = get_local __ptr u64, item_, !54 - v3 = const u64 8 - retd v2 v3, !56 + v254v1 = call main_8(), !49 + v527v1 = get_local __ptr u64, item_, !52 + store v254v1 to v527v1, !52 + v609v1 = get_local __ptr u64, item_, !54 + v283v1 = const u64 8 + retd v609v1 v283v1, !56 } entry_orig fn main_8() -> u64, !59 { entry(): - v0 = get_config __ptr { u64 }, WRAPPED, !60 - v1 = const u64 0 - v2 = get_elem_ptr v0, __ptr u64, v1, !61 - v3 = load v2 - v4 = get_config __ptr { u64 }, TUPLE, !62 - v5 = const u64 0 - v6 = get_elem_ptr v4, __ptr u64, v5, !63 - v7 = load v6 - v8 = add v3, v7, !66 - ret u64 v8 + v244v1 = get_config __ptr { u64 }, WRAPPED, !60 + v245v1 = const u64 0 + v246v1 = get_elem_ptr v244v1, __ptr u64, v245v1, !61 + v247v1 = load v246v1 + v248v1 = get_config __ptr { u64 }, TUPLE, !62 + v249v1 = const u64 0 + v250v1 = get_elem_ptr v248v1, __ptr u64, v249v1, !63 + v251v1 = load v250v1 + v457v1 = add v247v1, v251v1, !66 + ret u64 v457v1 } } diff --git a/test/src/e2e_vm_tests/test_programs/should_pass/language/intrinsics/transmute/stdout.snap b/test/src/e2e_vm_tests/test_programs/should_pass/language/intrinsics/transmute/stdout.snap index 243a5b271bb..f314125f4c0 100644 --- a/test/src/e2e_vm_tests/test_programs/should_pass/language/intrinsics/transmute/stdout.snap +++ b/test/src/e2e_vm_tests/test_programs/should_pass/language/intrinsics/transmute/stdout.snap @@ -9,19 +9,19 @@ fn transmute_by_reference_7(__ret_value: __ptr u256) -> () { local __ptr u256 v entry(__ret_value: __ptr u256): - v0 = get_local __ptr [u8; 32], __anon_0 - mem_clear_val v0 - v1 = get_local __ptr [u8; 32], bytes - mem_copy_val v1, v0 - v2 = get_local __ptr [u8; 32], bytes - v3 = cast_ptr v2 to __ptr u256 - v4 = get_local __ptr __ptr u256, v - store v3 to v4 - v5 = get_local __ptr __ptr u256, v - v6 = load v5 - mem_copy_val __ret_value, v6 - v7 = const unit () - ret () v7 + v619v1 = get_local __ptr [u8; 32], __anon_0 + mem_clear_val v619v1 + v621v1 = get_local __ptr [u8; 32], bytes + mem_copy_val v621v1, v619v1 + v623v1 = get_local __ptr [u8; 32], bytes + v624v1 = cast_ptr v623v1 to __ptr u256 + v625v1 = get_local __ptr __ptr u256, v + store v624v1 to v625v1 + v627v1 = get_local __ptr __ptr u256, v + v628v1 = load v627v1 + mem_copy_val __ret_value, v628v1 + v630v1 = const unit () + ret () v630v1 } diff --git a/test/src/e2e_vm_tests/test_programs/should_pass/language/logging/stdout.snap b/test/src/e2e_vm_tests/test_programs/should_pass/language/logging/stdout.snap index 3e5f4ad0298..fac67521f7e 100644 --- a/test/src/e2e_vm_tests/test_programs/should_pass/language/logging/stdout.snap +++ b/test/src/e2e_vm_tests/test_programs/should_pass/language/logging/stdout.snap @@ -19,12 +19,12 @@ script { local u64 item_ entry(): - v0 = call main_0(), !6 - v1 = get_local __ptr u64, item_, !9 - store v0 to v1, !9 - v2 = get_local __ptr u64, item_, !12 - v3 = const u64 8 - retd v2 v3, !14 + v1422v1 = call main_0(), !6 + v3430v1 = get_local __ptr u64, item_, !9 + store v1422v1 to v3430v1, !9 + v3459v1 = get_local __ptr u64, item_, !12 + v1439v1 = const u64 8 + retd v3459v1 v1439v1, !14 } entry_orig fn main_0() -> u64, !18 { @@ -41,114 +41,114 @@ script { local mut { { ptr, u64 }, u64 } e entry(): - v0 = get_local __ptr u256, __const - v1 = const u64 0, !19 - v2 = call local_log_1(v1), !22 - v3 = const u64 0, !33 - v4 = asm(size: v3, ptr) -> ptr ptr, !35 { + v3462v1 = get_local __ptr u256, __const + v193v1 = const u64 0, !19 + v194v1 = call local_log_1(v193v1), !22 + v3404v1 = const u64 0, !33 + v3406v1 = asm(size: v3404v1, ptr) -> ptr ptr, !35 { aloc size, !36 move ptr hp, !37 } - v5 = get_local __ptr { ptr, u64 }, __anon_000, !39 - v6 = const u64 0 - v7 = get_elem_ptr v5, __ptr ptr, v6, !40 - store v4 to v7, !41 - v8 = const u64 1 - v9 = get_elem_ptr v5, __ptr u64, v8, !42 - v10 = const u64 0, !43 - store v10 to v9, !44 - v11 = get_local __ptr { { ptr, u64 }, u64 }, e, !46 - v12 = const u64 0 - v13 = get_elem_ptr v11, __ptr { ptr, u64 }, v12, !47 - mem_copy_val v13, v5 - v14 = const u64 1 - v15 = get_elem_ptr v11, __ptr u64, v14, !47 - v16 = const u64 0, !48 - store v16 to v15, !49 - v17 = get_local __ptr { { ptr, u64 }, u64 }, e, !50 - v18 = const u64 1, !51 - v19 = call push_11(v17, v18), !54 - v20 = get_local __ptr { { ptr, u64 }, u64 }, e, !55 - v21 = const u64 2, !56 - v22 = call push_11(v20, v21), !59 - v23 = get_local __ptr { { ptr, u64 }, u64 }, e, !60 - v24 = const u64 3, !61 - v25 = call push_11(v23, v24), !64 - v26 = get_local __ptr { { ptr, u64 }, u64 }, e, !65 - v27 = get_global __ptr string<4>, __const_global - v28 = cast_ptr v27 to ptr, !66 - v29 = get_local __ptr { ptr, u64 }, __anon_0, !66 - v30 = const u64 0 - v31 = get_elem_ptr v29, __ptr ptr, v30 - store v28 to v31, !66 - v32 = const u64 1 - v33 = get_elem_ptr v29, __ptr u64, v32 - v34 = const u64 4 - store v34 to v33, !66 - v35 = get_local __ptr slice, __anon_1, !66 - mem_copy_bytes v35, v29, 16 - v36 = get_local __ptr { u64, u64, u64, u8, { { ptr, u64 }, u64 }, slice, u256 }, __tmp_arg, !67 - v37 = const u64 0 - v38 = get_elem_ptr v36, __ptr u64, v37 - v39 = const u64 1, !68 - store v39 to v38, !67 - v40 = const u64 1 - v41 = get_elem_ptr v36, __ptr u64, v40 - v42 = const u64 2, !69 - store v42 to v41, !67 - v43 = const u64 2 - v44 = get_elem_ptr v36, __ptr u64, v43 - v45 = const u64 3, !70 - store v45 to v44, !67 - v46 = const u64 3 - v47 = get_elem_ptr v36, __ptr u8, v46 - v48 = const u8 4, !71 - store v48 to v47, !67 - v49 = const u64 4 - v50 = get_elem_ptr v36, __ptr { { ptr, u64 }, u64 }, v49 - mem_copy_val v50, v26 - v51 = const u64 5 - v52 = get_elem_ptr v36, __ptr slice, v51 - mem_copy_val v52, v35 - v53 = const u64 6 - v54 = get_elem_ptr v36, __ptr u256, v53 - mem_copy_val v54, v0 - v55 = get_local __ptr { u64, u64, u64, u8, { { ptr, u64 }, u64 }, slice, u256 }, __tmp_arg - v56 = call local_log_19(v55) - v57 = get_local __ptr { u64 }, __tmp_arg0, !72 - v58 = const u64 0 - v59 = get_elem_ptr v57, __ptr u64, v58 - v60 = const u64 1, !73 - store v60 to v59, !72 - v61 = get_local __ptr { u64 }, __tmp_arg0 - v62 = call local_log_32(v61) - v63 = get_local __ptr { u64, ( { u64 } | () ) }, __tmp_arg1, !74 - v64 = const u64 0 - v65 = get_elem_ptr v63, __ptr u64, v64, !74 - v66 = const u64 0, !74 - store v66 to v65, !74 - v67 = get_local __ptr { u64 }, __anon_5, !75 - v68 = const u64 0 - v69 = get_elem_ptr v67, __ptr u64, v68 - v70 = const u64 1, !76 - store v70 to v69, !75 - v71 = const u64 1 - v72 = const u64 0 - v73 = get_elem_ptr v63, __ptr { u64 }, v71, v72, !74 - mem_copy_val v73, v67 - v74 = get_local __ptr { u64, ( { u64 } | () ) }, __tmp_arg1 - v75 = call local_log_35(v74) - v76 = get_local __ptr { u64, ( { u64 } | () ) }, __tmp_arg2, !74 - v77 = const u64 0 - v78 = get_elem_ptr v76, __ptr u64, v77, !74 - v79 = const u64 1, !74 - store v79 to v78, !74 - v80 = get_local __ptr { u64, ( { u64 } | () ) }, __tmp_arg2 - v81 = call local_log_35(v80) - v82 = get_local __ptr { }, __tmp_arg3 - v83 = call local_log_38(v82) - v84 = const u64 1, !77 - ret u64 v84 + v3408v1 = get_local __ptr { ptr, u64 }, __anon_000, !39 + v220v1 = const u64 0 + v3409v1 = get_elem_ptr v3408v1, __ptr ptr, v220v1, !40 + store v3406v1 to v3409v1, !41 + v223v1 = const u64 1 + v3411v1 = get_elem_ptr v3408v1, __ptr u64, v223v1, !42 + v218v1 = const u64 0, !43 + store v218v1 to v3411v1, !44 + v3415v1 = get_local __ptr { { ptr, u64 }, u64 }, e, !46 + v231v1 = const u64 0 + v3416v1 = get_elem_ptr v3415v1, __ptr { ptr, u64 }, v231v1, !47 + mem_copy_val v3416v1, v3408v1 + v234v1 = const u64 1 + v3418v1 = get_elem_ptr v3415v1, __ptr u64, v234v1, !47 + v229v1 = const u64 0, !48 + store v229v1 to v3418v1, !49 + v499v1 = get_local __ptr { { ptr, u64 }, u64 }, e, !50 + v501v1 = const u64 1, !51 + v502v1 = call push_11(v499v1, v501v1), !54 + v503v1 = get_local __ptr { { ptr, u64 }, u64 }, e, !55 + v505v1 = const u64 2, !56 + v506v1 = call push_11(v503v1, v505v1), !59 + v507v1 = get_local __ptr { { ptr, u64 }, u64 }, e, !60 + v509v1 = const u64 3, !61 + v510v1 = call push_11(v507v1, v509v1), !64 + v1069v1 = get_local __ptr { { ptr, u64 }, u64 }, e, !65 + v1072v1 = get_global __ptr string<4>, __const_global + v1073v1 = cast_ptr v1072v1 to ptr, !66 + v1075v1 = get_local __ptr { ptr, u64 }, __anon_0, !66 + v1076v1 = const u64 0 + v1077v1 = get_elem_ptr v1075v1, __ptr ptr, v1076v1 + store v1073v1 to v1077v1, !66 + v1079v1 = const u64 1 + v1080v1 = get_elem_ptr v1075v1, __ptr u64, v1079v1 + v1074v1 = const u64 4 + store v1074v1 to v1080v1, !66 + v1082v1 = get_local __ptr slice, __anon_1, !66 + mem_copy_bytes v1082v1, v1075v1, 16 + v1088v1 = get_local __ptr { u64, u64, u64, u8, { { ptr, u64 }, u64 }, slice, u256 }, __tmp_arg, !67 + v1089v1 = const u64 0 + v1090v1 = get_elem_ptr v1088v1, __ptr u64, v1089v1 + v1065v1 = const u64 1, !68 + store v1065v1 to v1090v1, !67 + v1092v1 = const u64 1 + v1093v1 = get_elem_ptr v1088v1, __ptr u64, v1092v1 + v1066v1 = const u64 2, !69 + store v1066v1 to v1093v1, !67 + v1095v1 = const u64 2 + v1096v1 = get_elem_ptr v1088v1, __ptr u64, v1095v1 + v1067v1 = const u64 3, !70 + store v1067v1 to v1096v1, !67 + v1098v1 = const u64 3 + v1099v1 = get_elem_ptr v1088v1, __ptr u8, v1098v1 + v1068v1 = const u8 4, !71 + store v1068v1 to v1099v1, !67 + v1101v1 = const u64 4 + v1102v1 = get_elem_ptr v1088v1, __ptr { { ptr, u64 }, u64 }, v1101v1 + mem_copy_val v1102v1, v1069v1 + v1104v1 = const u64 5 + v1105v1 = get_elem_ptr v1088v1, __ptr slice, v1104v1 + mem_copy_val v1105v1, v1082v1 + v1107v1 = const u64 6 + v1108v1 = get_elem_ptr v1088v1, __ptr u256, v1107v1 + mem_copy_val v1108v1, v3462v1 + v3494v1 = get_local __ptr { u64, u64, u64, u8, { { ptr, u64 }, u64 }, slice, u256 }, __tmp_arg + v3496v1 = call local_log_19(v3494v1) + v1192v1 = get_local __ptr { u64 }, __tmp_arg0, !72 + v1193v1 = const u64 0 + v1194v1 = get_elem_ptr v1192v1, __ptr u64, v1193v1 + v1191v1 = const u64 1, !73 + store v1191v1 to v1194v1, !72 + v3499v1 = get_local __ptr { u64 }, __tmp_arg0 + v3501v1 = call local_log_32(v3499v1) + v1322v1 = get_local __ptr { u64, ( { u64 } | () ) }, __tmp_arg1, !74 + v1323v1 = const u64 0 + v1324v1 = get_elem_ptr v1322v1, __ptr u64, v1323v1, !74 + v1321v1 = const u64 0, !74 + store v1321v1 to v1324v1, !74 + v1327v1 = get_local __ptr { u64 }, __anon_5, !75 + v1328v1 = const u64 0 + v1329v1 = get_elem_ptr v1327v1, __ptr u64, v1328v1 + v1326v1 = const u64 1, !76 + store v1326v1 to v1329v1, !75 + v1332v1 = const u64 1 + v1333v1 = const u64 0 + v1334v1 = get_elem_ptr v1322v1, __ptr { u64 }, v1332v1, v1333v1, !74 + mem_copy_val v1334v1, v1327v1 + v3513v1 = get_local __ptr { u64, ( { u64 } | () ) }, __tmp_arg1 + v3515v1 = call local_log_35(v3513v1) + v1339v1 = get_local __ptr { u64, ( { u64 } | () ) }, __tmp_arg2, !74 + v1340v1 = const u64 0 + v1341v1 = get_elem_ptr v1339v1, __ptr u64, v1340v1, !74 + v1338v1 = const u64 1, !74 + store v1338v1 to v1341v1, !74 + v3516v1 = get_local __ptr { u64, ( { u64 } | () ) }, __tmp_arg2 + v3518v1 = call local_log_35(v3516v1) + v3527v1 = get_local __ptr { }, __tmp_arg3 + v3529v1 = call local_log_38(v3527v1) + v1420v1 = const u64 1, !77 + ret u64 v1420v1 } fn local_log_1(item !78: u64) -> (), !82 { @@ -158,31 +158,31 @@ script { local u64 item_0 entry(item: u64): - v0 = get_local __ptr u64, item_0, !83 - store item to v0, !83 - v1 = get_local __ptr u64, item_0, !85 - v2 = const u64 8 - v3 = asm(size: v2, src: v1) -> ptr hp, !87 { + v1494v1 = get_local __ptr u64, item_0, !83 + store item to v1494v1, !83 + v1519v1 = get_local __ptr u64, item_0, !85 + v43v1 = const u64 8 + v1520v1 = asm(size: v43v1, src: v1519v1) -> ptr hp, !87 { aloc size, !88 mcp hp src size, !89 } - v4 = get_local __ptr { ptr, u64 }, __anon_0, !91 - v5 = const u64 0 - v6 = get_elem_ptr v4, __ptr ptr, v5, !92 - store v3 to v6, !93 - v7 = const u64 1 - v8 = get_elem_ptr v4, __ptr u64, v7, !94 - store v2 to v8, !95 - v9 = asm(s: v4) -> __ptr slice s { + v1524v1 = get_local __ptr { ptr, u64 }, __anon_0, !91 + v57v1 = const u64 0 + v1525v1 = get_elem_ptr v1524v1, __ptr ptr, v57v1, !92 + store v1520v1 to v1525v1, !93 + v60v1 = const u64 1 + v1527v1 = get_elem_ptr v1524v1, __ptr u64, v60v1, !94 + store v43v1 to v1527v1, !95 + v3583v1 = asm(s: v1524v1) -> __ptr slice s { } - v10 = get_local __ptr slice, __aggr_memcpy_0 - mem_copy_val v10, v9 - v11 = get_local __ptr slice, __log_arg - mem_copy_val v11, v10 - v12 = const u64 1515152261580153489 - log __ptr slice v11, v12 - v13 = const unit () - ret () v13 + v3644v1 = get_local __ptr slice, __aggr_memcpy_0 + mem_copy_val v3644v1, v3583v1 + v3580v1 = get_local __ptr slice, __log_arg + mem_copy_val v3580v1, v3644v1 + v188v1 = const u64 1515152261580153489 + log __ptr slice v3580v1, v188v1 + v191v1 = const unit () + ret () v191v1 } pub fn abi_encode_4(self !96: u64, buffer: __ptr { { ptr, u64, u64 } }, __ret_value: __ptr { { ptr, u64, u64 } }) -> (), !99 { @@ -194,66 +194,66 @@ script { local { { ptr, u64, u64 } } buffer_ entry(self: u64, buffer: __ptr { { ptr, u64, u64 } }, __ret_value: __ptr { { ptr, u64, u64 } }): - v0 = get_local __ptr { { ptr, u64, u64 } }, buffer_ - mem_copy_val v0, buffer - v1 = get_local __ptr { { ptr, u64, u64 } }, buffer_, !100 - v2 = const u64 0 - v3 = get_elem_ptr v1, __ptr { ptr, u64, u64 }, v2, !101 - v4 = asm(buffer: v3) -> __ptr { ptr, u64, u64 } buffer { + v69v1 = get_local __ptr { { ptr, u64, u64 } }, buffer_ + mem_copy_val v69v1, buffer + v71v1 = get_local __ptr { { ptr, u64, u64 } }, buffer_, !100 + v72v1 = const u64 0 + v73v1 = get_elem_ptr v71v1, __ptr { ptr, u64, u64 }, v72v1, !101 + v3585v1 = asm(buffer: v73v1) -> __ptr { ptr, u64, u64 } buffer { } - v5 = get_local __ptr { ptr, u64, u64 }, __aggr_memcpy_0 - mem_copy_val v5, v4 - v6 = get_local __ptr { ptr, u64, u64 }, __anon_0 - mem_copy_val v6, v5 - v7 = const u64 0 - v8 = get_elem_ptr v6, __ptr ptr, v7 - v9 = load v8 - v10 = const u64 1 - v11 = get_elem_ptr v6, __ptr u64, v10 - v12 = load v11 - v13 = const u64 2 - v14 = get_elem_ptr v6, __ptr u64, v13 - v15 = load v14 - v16 = const u64 8 - v17 = add v15, v16 - v18 = cmp gt v17 v12 - cbr v18, block1(), block0(v9, v12) - - block0(v19: ptr, v20: u64): - v21 = add v19, v15 - v22 = cast_ptr v21 to __ptr u64 - store self to v22 - v23 = get_local __ptr { ptr, u64, u64 }, __anon_1 - v24 = const u64 0 - v25 = get_elem_ptr v23, __ptr ptr, v24 - store v19 to v25 - v26 = const u64 1 - v27 = get_elem_ptr v23, __ptr u64, v26 - store v20 to v27 - v28 = const u64 2 - v29 = get_elem_ptr v23, __ptr u64, v28 - store v17 to v29 - v30 = asm(buffer: v23) -> __ptr { ptr, u64, u64 } buffer { + v3648v1 = get_local __ptr { ptr, u64, u64 }, __aggr_memcpy_0 + mem_copy_val v3648v1, v3585v1 + v76v1 = get_local __ptr { ptr, u64, u64 }, __anon_0 + mem_copy_val v76v1, v3648v1 + v78v1 = const u64 0 + v79v1 = get_elem_ptr v76v1, __ptr ptr, v78v1 + v80v1 = load v79v1 + v81v1 = const u64 1 + v82v1 = get_elem_ptr v76v1, __ptr u64, v81v1 + v83v1 = load v82v1 + v84v1 = const u64 2 + v85v1 = get_elem_ptr v76v1, __ptr u64, v84v1 + v86v1 = load v85v1 + v89v1 = const u64 8 + v92v1 = add v86v1, v89v1 + v93v1 = cmp gt v92v1 v83v1 + cbr v93v1, block1(), block0(v80v1, v83v1) + + block0(v90v1: ptr, v91v1: u64): + v101v1 = add v90v1, v86v1 + v102v1 = cast_ptr v101v1 to __ptr u64 + store self to v102v1 + v106v1 = get_local __ptr { ptr, u64, u64 }, __anon_1 + v107v1 = const u64 0 + v108v1 = get_elem_ptr v106v1, __ptr ptr, v107v1 + store v90v1 to v108v1 + v110v1 = const u64 1 + v111v1 = get_elem_ptr v106v1, __ptr u64, v110v1 + store v91v1 to v111v1 + v113v1 = const u64 2 + v114v1 = get_elem_ptr v106v1, __ptr u64, v113v1 + store v92v1 to v114v1 + v3587v1 = asm(buffer: v106v1) -> __ptr { ptr, u64, u64 } buffer { } - v31 = get_local __ptr { ptr, u64, u64 }, __aggr_memcpy_00 - mem_copy_val v31, v30 - v32 = get_local __ptr { { ptr, u64, u64 } }, __anon_2, !102 - v33 = const u64 0 - v34 = get_elem_ptr v32, __ptr { ptr, u64, u64 }, v33 - mem_copy_val v34, v31 - mem_copy_val __ret_value, v32 - v35 = const unit () - ret () v35 + v3651v1 = get_local __ptr { ptr, u64, u64 }, __aggr_memcpy_00 + mem_copy_val v3651v1, v3587v1 + v117v1 = get_local __ptr { { ptr, u64, u64 } }, __anon_2, !102 + v118v1 = const u64 0 + v119v1 = get_elem_ptr v117v1, __ptr { ptr, u64, u64 }, v118v1 + mem_copy_val v119v1, v3651v1 + mem_copy_val __ret_value, v117v1 + v3533v1 = const unit () + ret () v3533v1 block1(): - v36 = const u64 2 - v37 = mul v12, v36 - v38 = add v37, v16 - v39 = asm(new_cap: v38, old_ptr: v9, len: v15) -> __ptr u8 hp { + v95v1 = const u64 2 + v96v1 = mul v83v1, v95v1 + v97v1 = add v96v1, v89v1 + v98v1 = asm(new_cap: v97v1, old_ptr: v80v1, len: v86v1) -> __ptr u8 hp { aloc new_cap mcp hp old_ptr len } - br block0(v39, v38) + br block0(v98v1, v97v1) } pub fn new_5(__ret_value: __ptr { { ptr, u64, u64 } }) -> (), !105 { @@ -262,32 +262,32 @@ script { local { { ptr, u64, u64 } } __anon_1 entry(__ret_value: __ptr { { ptr, u64, u64 } }): - v0 = const u64 1024 - v1 = asm(cap: v0) -> ptr hp { + v125v1 = const u64 1024 + v126v1 = asm(cap: v125v1) -> ptr hp { aloc cap } - v2 = get_local __ptr { ptr, u64, u64 }, __anon_0 - v3 = const u64 0 - v4 = get_elem_ptr v2, __ptr ptr, v3 - store v1 to v4 - v5 = const u64 1 - v6 = get_elem_ptr v2, __ptr u64, v5 - store v0 to v6 - v7 = const u64 2 - v8 = get_elem_ptr v2, __ptr u64, v7 - v9 = const u64 0 - store v9 to v8 - v10 = asm(buffer: v2) -> __ptr { ptr, u64, u64 } buffer { + v128v1 = get_local __ptr { ptr, u64, u64 }, __anon_0 + v129v1 = const u64 0 + v130v1 = get_elem_ptr v128v1, __ptr ptr, v129v1 + store v126v1 to v130v1 + v132v1 = const u64 1 + v133v1 = get_elem_ptr v128v1, __ptr u64, v132v1 + store v125v1 to v133v1 + v135v1 = const u64 2 + v136v1 = get_elem_ptr v128v1, __ptr u64, v135v1 + v127v1 = const u64 0 + store v127v1 to v136v1 + v3589v1 = asm(buffer: v128v1) -> __ptr { ptr, u64, u64 } buffer { } - v11 = get_local __ptr { ptr, u64, u64 }, __aggr_memcpy_0 - mem_copy_val v11, v10 - v12 = get_local __ptr { { ptr, u64, u64 } }, __anon_1, !106 - v13 = const u64 0 - v14 = get_elem_ptr v12, __ptr { ptr, u64, u64 }, v13 - mem_copy_val v14, v11 - mem_copy_val __ret_value, v12 - v15 = const unit () - ret () v15 + v3655v1 = get_local __ptr { ptr, u64, u64 }, __aggr_memcpy_0 + mem_copy_val v3655v1, v3589v1 + v139v1 = get_local __ptr { { ptr, u64, u64 } }, __anon_1, !106 + v140v1 = const u64 0 + v141v1 = get_elem_ptr v139v1, __ptr { ptr, u64, u64 }, v140v1 + mem_copy_val v141v1, v3655v1 + mem_copy_val __ret_value, v139v1 + v3555v1 = const unit () + ret () v3555v1 } pub fn as_raw_slice_6(self: __ptr { { ptr, u64, u64 } }, __ret_value: __ptr slice) -> (), !109 { @@ -296,110 +296,110 @@ script { local { { ptr, u64, u64 } } self_ entry(self: __ptr { { ptr, u64, u64 } }, __ret_value: __ptr slice): - v0 = get_local __ptr { { ptr, u64, u64 } }, self_ - mem_copy_val v0, self - v1 = get_local __ptr { { ptr, u64, u64 } }, self_, !110 - v2 = const u64 0 - v3 = get_elem_ptr v1, __ptr { ptr, u64, u64 }, v2, !101 - v4 = asm(buffer: v3) -> __ptr { ptr, u64, u64 } buffer { + v150v1 = get_local __ptr { { ptr, u64, u64 } }, self_ + mem_copy_val v150v1, self + v152v1 = get_local __ptr { { ptr, u64, u64 } }, self_, !110 + v153v1 = const u64 0 + v154v1 = get_elem_ptr v152v1, __ptr { ptr, u64, u64 }, v153v1, !101 + v3591v1 = asm(buffer: v154v1) -> __ptr { ptr, u64, u64 } buffer { } - v5 = const u64 0 - v6 = get_elem_ptr v4, __ptr ptr, v5 - v7 = load v6 - v8 = const u64 2 - v9 = get_elem_ptr v4, __ptr u64, v8 - v10 = load v9 - v11 = get_local __ptr { ptr, u64 }, __anon_1 - v12 = const u64 0 - v13 = get_elem_ptr v11, __ptr ptr, v12 - store v7 to v13 - v14 = const u64 1 - v15 = get_elem_ptr v11, __ptr u64, v14 - store v10 to v15 - v16 = asm(s: v11) -> __ptr slice s { + v3760v1 = const u64 0 + v3761v1 = get_elem_ptr v3591v1, __ptr ptr, v3760v1 + v3762v1 = load v3761v1 + v3766v1 = const u64 2 + v3767v1 = get_elem_ptr v3591v1, __ptr u64, v3766v1 + v3768v1 = load v3767v1 + v168v1 = get_local __ptr { ptr, u64 }, __anon_1 + v169v1 = const u64 0 + v170v1 = get_elem_ptr v168v1, __ptr ptr, v169v1 + store v3762v1 to v170v1 + v172v1 = const u64 1 + v173v1 = get_elem_ptr v168v1, __ptr u64, v172v1 + store v3768v1 to v173v1 + v3593v1 = asm(s: v168v1) -> __ptr slice s { } - v17 = get_local __ptr slice, __aggr_memcpy_00 - mem_copy_val v17, v16 - mem_copy_val __ret_value, v17 - v18 = const unit () - ret () v18 + v3665v1 = get_local __ptr slice, __aggr_memcpy_00 + mem_copy_val v3665v1, v3593v1 + mem_copy_val __ret_value, v3665v1 + v3565v1 = const unit () + ret () v3565v1 } pub fn push_11(self !111: __ptr { { ptr, u64 }, u64 }, value !112: u64) -> (), !115 { entry(self: __ptr { { ptr, u64 }, u64 }, value: u64): - v0 = const u64 1 - v1 = get_elem_ptr self, __ptr u64, v0, !116 - v2 = load v1 - v3 = const u64 0 - v4 = get_elem_ptr self, __ptr { ptr, u64 }, v3, !117 - v5 = const u64 1 - v6 = get_elem_ptr v4, __ptr u64, v5, !118 - v7 = load v6 - v8 = cmp eq v2 v7, !121 - cbr v8, block0(), block2(), !119 + v249v1 = const u64 1 + v250v1 = get_elem_ptr self, __ptr u64, v249v1, !116 + v251v1 = load v250v1 + v253v1 = const u64 0 + v254v1 = get_elem_ptr self, __ptr { ptr, u64 }, v253v1, !117 + v255v1 = const u64 1 + v256v1 = get_elem_ptr v254v1, __ptr u64, v255v1, !118 + v257v1 = load v256v1 + v1703v1 = cmp eq v251v1 v257v1, !121 + cbr v1703v1, block0(), block2(), !119 block0(): - v9 = load v6, !124 - v10 = const u64 0, !125 - v11 = cmp eq v9 v10, !128 - v12 = const u64 1, !129 - cbr v11, grow_12_block2(v12), grow_12_block1(), !130 + v1720v1 = load v256v1, !124 + v266v1 = const u64 0, !125 + v1725v1 = cmp eq v1720v1 v266v1, !128 + v268v1 = const u64 1, !129 + cbr v1725v1, grow_12_block2(v268v1), grow_12_block1(), !130 grow_12_block1(): - v13 = load v6, !124 - v14 = const u64 2, !131 - v15 = mul v14, v13, !134 - br grow_12_block2(v15), !124 - - grow_12_block2(v16: u64): - v17 = const u64 0 - v18 = get_elem_ptr v4, __ptr ptr, v17, !136 - v19 = load v18, !124 - v20 = load v6, !124 - v21 = cmp gt v16 v20, !141 - cbr v21, grow_12_realloc_13_block0(), grow_12_realloc_13_block5(v19), !142 + v1730v1 = load v256v1, !124 + v269v1 = const u64 2, !131 + v1735v1 = mul v269v1, v1730v1, !134 + br grow_12_block2(v1735v1), !124 + + grow_12_block2(v1707v1: u64): + v364v1 = const u64 0 + v1741v1 = get_elem_ptr v254v1, __ptr ptr, v364v1, !136 + v1742v1 = load v1741v1, !124 + v1745v1 = load v256v1, !124 + v1756v1 = cmp gt v1707v1 v1745v1, !141 + cbr v1756v1, grow_12_realloc_13_block0(), grow_12_realloc_13_block5(v1742v1), !142 grow_12_realloc_13_block0(): - v22 = const u64 8 - v23 = mul v22, v16, !145 - v24 = asm(size: v23, ptr) -> ptr ptr, !146 { + v210v1 = const u64 8 + v1768v1 = mul v210v1, v1707v1, !145 + v1770v1 = asm(size: v1768v1, ptr) -> ptr ptr, !146 { aloc size, !36 move ptr hp, !37 } - v25 = const u64 0, !147 - v26 = cmp gt v20 v25, !150 - cbr v26, grow_12_realloc_13_block1(), grow_12_realloc_13_block5(v24), !151 + v314v1 = const u64 0, !147 + v1778v1 = cmp gt v1745v1 v314v1, !150 + cbr v1778v1, grow_12_realloc_13_block1(), grow_12_realloc_13_block5(v1770v1), !151 grow_12_realloc_13_block1(): - v27 = const u64 8 - v28 = mul v20, v27, !157 - v29 = asm(dst: v24, src: v19, len: v28) -> (), !159 { + v327v1 = const u64 8 + v1793v1 = mul v1745v1, v327v1, !157 + v1799v1 = asm(dst: v1770v1, src: v1742v1, len: v1793v1) -> (), !159 { mcp dst src len, !160 } - br grow_12_realloc_13_block5(v24), !161 + br grow_12_realloc_13_block5(v1770v1), !161 - grow_12_realloc_13_block5(v30: ptr): - store v30 to v18, !163 - store v16 to v6, !165 + grow_12_realloc_13_block5(v1715v1: ptr): + store v1715v1 to v1741v1, !163 + store v1707v1 to v256v1, !165 br block2() block2(): - v31 = const u64 0 - v32 = get_elem_ptr v4, __ptr ptr, v31, !135 - v33 = load v32 - v34 = load v1 - v35 = const u64 8 - v36 = mul v35, v34, !168 - v37 = add v33, v36, !168 - v38 = asm(ptr: v37, val: value) -> (), !172 { + v417v1 = const u64 0 + v418v1 = get_elem_ptr v254v1, __ptr ptr, v417v1, !135 + v419v1 = load v418v1 + v423v1 = load v250v1 + v406v1 = const u64 8 + v1817v1 = mul v406v1, v423v1, !168 + v1818v1 = add v419v1, v1817v1, !168 + v1835v1 = asm(ptr: v1818v1, val: value) -> (), !172 { sw ptr val i0, !173 } - v39 = load v1 - v40 = const u64 1, !174 - v41 = add v39, v40, !177 - store v41 to v1, !175 - v42 = const unit () - ret () v42 + v488v1 = load v250v1 + v489v1 = const u64 1, !174 + v1852v1 = add v488v1, v489v1, !177 + store v1852v1 to v250v1, !175 + v497v1 = const unit () + ret () v497v1 } fn local_log_19(item: __ptr { u64, u64, u64, u8, { { ptr, u64 }, u64 }, slice, u256 }) -> (), !178 { @@ -470,336 +470,336 @@ script { local u256 self_5 entry(item: __ptr { u64, u64, u64, u8, { { ptr, u64 }, u64 }, slice, u256 }): - v0 = get_local __ptr { u64, u64, u64, u8, { { ptr, u64 }, u64 }, slice, u256 }, item_ - mem_copy_val v0, item - v1 = get_local __ptr { u64, u64, u64, u8, { { ptr, u64 }, u64 }, slice, u256 }, item_, !83 - v2 = get_local __ptr { u64, u64, u64, u8, { { ptr, u64 }, u64 }, slice, u256 }, item_0, !83 - mem_copy_val v2, v1 - v3 = get_local __ptr { u64, u64, u64, u8, { { ptr, u64 }, u64 }, slice, u256 }, item_0, !180 - v4 = get_local __ptr { { ptr, u64, u64 } }, __ret_val2 - v5 = call new_5(v4) - v6 = get_local __ptr { u64, u64, u64, u8, { { ptr, u64 }, u64 }, slice, u256 }, self_0, !183 - mem_copy_val v6, v3 - v7 = get_local __ptr { { ptr, u64, u64 } }, buffer_, !184 - mem_copy_val v7, v4 - v8 = get_local __ptr { u64, u64, u64, u8, { { ptr, u64 }, u64 }, slice, u256 }, self_0, !186 - v9 = const u64 0 - v10 = get_elem_ptr v8, __ptr u64, v9, !188 - v11 = load v10, !189 - v12 = get_local __ptr { { ptr, u64, u64 } }, buffer_, !191 - v13 = get_local __ptr { { ptr, u64, u64 } }, __tmp_arg - mem_copy_val v13, v12 - v14 = get_local __ptr { { ptr, u64, u64 } }, __ret_val - v15 = call abi_encode_4(v11, v13, v14) - v16 = get_local __ptr { { ptr, u64, u64 } }, buffer__, !193 - mem_copy_val v16, v14 - v17 = get_local __ptr { u64, u64, u64, u8, { { ptr, u64 }, u64 }, slice, u256 }, self_0, !195 - v18 = const u64 1 - v19 = get_elem_ptr v17, __ptr u64, v18, !197 - v20 = get_local __ptr { { ptr, u64, u64 } }, buffer__, !199 - v21 = get_local __ptr { { ptr, u64, u64 } }, buffer_0, !202 - mem_copy_val v21, v20 - v22 = get_local __ptr { { ptr, u64, u64 } }, buffer_0, !204 - v23 = const u64 0 - v24 = get_elem_ptr v22, __ptr { ptr, u64, u64 }, v23, !205 - v25 = asm(buffer: v24) -> __ptr { ptr, u64, u64 } buffer { + v512v1 = get_local __ptr { u64, u64, u64, u8, { { ptr, u64 }, u64 }, slice, u256 }, item_ + mem_copy_val v512v1, item + v1057v1 = get_local __ptr { u64, u64, u64, u8, { { ptr, u64 }, u64 }, slice, u256 }, item_, !83 + v2696v1 = get_local __ptr { u64, u64, u64, u8, { { ptr, u64 }, u64 }, slice, u256 }, item_0, !83 + mem_copy_val v2696v1, v1057v1 + v2709v1 = get_local __ptr { u64, u64, u64, u8, { { ptr, u64 }, u64 }, slice, u256 }, item_0, !180 + v3557v1 = get_local __ptr { { ptr, u64, u64 } }, __ret_val2 + v3558v1 = call new_5(v3557v1) + v2712v1 = get_local __ptr { u64, u64, u64, u8, { { ptr, u64 }, u64 }, slice, u256 }, self_0, !183 + mem_copy_val v2712v1, v2709v1 + v2714v1 = get_local __ptr { { ptr, u64, u64 } }, buffer_, !184 + mem_copy_val v2714v1, v3557v1 + v2716v1 = get_local __ptr { u64, u64, u64, u8, { { ptr, u64 }, u64 }, slice, u256 }, self_0, !186 + v557v1 = const u64 0 + v2717v1 = get_elem_ptr v2716v1, __ptr u64, v557v1, !188 + v2718v1 = load v2717v1, !189 + v2719v1 = get_local __ptr { { ptr, u64, u64 } }, buffer_, !191 + v3466v1 = get_local __ptr { { ptr, u64, u64 } }, __tmp_arg + mem_copy_val v3466v1, v2719v1 + v3535v1 = get_local __ptr { { ptr, u64, u64 } }, __ret_val + v3536v1 = call abi_encode_4(v2718v1, v3466v1, v3535v1) + v2722v1 = get_local __ptr { { ptr, u64, u64 } }, buffer__, !193 + mem_copy_val v2722v1, v3535v1 + v2724v1 = get_local __ptr { u64, u64, u64, u8, { { ptr, u64 }, u64 }, slice, u256 }, self_0, !195 + v629v1 = const u64 1 + v2725v1 = get_elem_ptr v2724v1, __ptr u64, v629v1, !197 + v2727v1 = get_local __ptr { { ptr, u64, u64 } }, buffer__, !199 + v2730v1 = get_local __ptr { { ptr, u64, u64 } }, buffer_0, !202 + mem_copy_val v2730v1, v2727v1 + v2732v1 = get_local __ptr { { ptr, u64, u64 } }, buffer_0, !204 + v572v1 = const u64 0 + v2733v1 = get_elem_ptr v2732v1, __ptr { ptr, u64, u64 }, v572v1, !205 + v3598v1 = asm(buffer: v2733v1) -> __ptr { ptr, u64, u64 } buffer { } - v26 = get_local __ptr { ptr, u64, u64 }, __aggr_memcpy_0 - mem_copy_val v26, v25 - v27 = get_local __ptr { ptr, u64, u64 }, __anon_00, !206 - mem_copy_val v27, v26 - v28 = const u64 0 - v29 = get_elem_ptr v27, __ptr ptr, v28, !207 - v30 = load v29, !208 - v31 = const u64 1 - v32 = get_elem_ptr v27, __ptr u64, v31, !209 - v33 = load v32, !210 - v34 = const u64 2 - v35 = get_elem_ptr v27, __ptr u64, v34, !211 - v36 = load v35, !212 - v37 = const u64 4 - v38 = add v36, v37, !213 - v39 = cmp gt v38 v33, !214 - cbr v39, encode_20_abi_encode_21_abi_encode_22_block1(), encode_20_abi_encode_21_abi_encode_22_block0(v30, v33), !215 - - encode_20_abi_encode_21_abi_encode_22_block0(v40: ptr, v41: u64): - v42 = get_local __ptr u64, __anon_1, !216 - mem_copy_val v42, v19 - v43 = const u64 4 - v44 = add v42, v43, !217 - v45 = cast_ptr v44 to __ptr u8, !218 - v46 = add v40, v36, !219 - v47 = cast_ptr v46 to __ptr u8, !220 - mem_copy_bytes v47, v45, 4, !221 - v48 = get_local __ptr { ptr, u64, u64 }, __anon_2, !222 - v49 = const u64 0 - v50 = get_elem_ptr v48, __ptr ptr, v49, !223 - store v40 to v50, !224 - v51 = const u64 1 - v52 = get_elem_ptr v48, __ptr u64, v51, !225 - store v41 to v52, !226 - v53 = const u64 2 - v54 = get_elem_ptr v48, __ptr u64, v53, !227 - store v38 to v54, !228 - v55 = asm(buffer: v48) -> __ptr { ptr, u64, u64 } buffer { + v3675v1 = get_local __ptr { ptr, u64, u64 }, __aggr_memcpy_0 + mem_copy_val v3675v1, v3598v1 + v2736v1 = get_local __ptr { ptr, u64, u64 }, __anon_00, !206 + mem_copy_val v2736v1, v3675v1 + v578v1 = const u64 0 + v2738v1 = get_elem_ptr v2736v1, __ptr ptr, v578v1, !207 + v2739v1 = load v2738v1, !208 + v581v1 = const u64 1 + v2740v1 = get_elem_ptr v2736v1, __ptr u64, v581v1, !209 + v2741v1 = load v2740v1, !210 + v584v1 = const u64 2 + v2742v1 = get_elem_ptr v2736v1, __ptr u64, v584v1, !211 + v2743v1 = load v2742v1, !212 + v589v1 = const u64 4 + v2745v1 = add v2743v1, v589v1, !213 + v2746v1 = cmp gt v2745v1 v2741v1, !214 + cbr v2746v1, encode_20_abi_encode_21_abi_encode_22_block1(), encode_20_abi_encode_21_abi_encode_22_block0(v2739v1, v2741v1), !215 + + encode_20_abi_encode_21_abi_encode_22_block0(v2669v1: ptr, v2670v1: u64): + v2753v1 = get_local __ptr u64, __anon_1, !216 + mem_copy_val v2753v1, v2725v1 + v603v1 = const u64 4 + v2755v1 = add v2753v1, v603v1, !217 + v2756v1 = cast_ptr v2755v1 to __ptr u8, !218 + v2757v1 = add v2669v1, v2743v1, !219 + v2758v1 = cast_ptr v2757v1 to __ptr u8, !220 + mem_copy_bytes v2758v1, v2756v1, 4, !221 + v2761v1 = get_local __ptr { ptr, u64, u64 }, __anon_2, !222 + v612v1 = const u64 0 + v2762v1 = get_elem_ptr v2761v1, __ptr ptr, v612v1, !223 + store v2669v1 to v2762v1, !224 + v615v1 = const u64 1 + v2764v1 = get_elem_ptr v2761v1, __ptr u64, v615v1, !225 + store v2670v1 to v2764v1, !226 + v618v1 = const u64 2 + v2766v1 = get_elem_ptr v2761v1, __ptr u64, v618v1, !227 + store v2745v1 to v2766v1, !228 + v3600v1 = asm(buffer: v2761v1) -> __ptr { ptr, u64, u64 } buffer { } - v56 = get_local __ptr { ptr, u64, u64 }, __aggr_memcpy_00 - mem_copy_val v56, v55 - v57 = get_local __ptr { { ptr, u64, u64 } }, __anon_3, !230 - v58 = const u64 0 - v59 = get_elem_ptr v57, __ptr { ptr, u64, u64 }, v58, !231 - mem_copy_val v59, v56 - v60 = get_local __ptr { { ptr, u64, u64 } }, buffer___, !233 - mem_copy_val v60, v57 - v61 = get_local __ptr { u64, u64, u64, u8, { { ptr, u64 }, u64 }, slice, u256 }, self_0, !235 - v62 = const u64 2 - v63 = get_elem_ptr v61, __ptr u64, v62, !237 - v64 = get_local __ptr { { ptr, u64, u64 } }, buffer___, !239 - v65 = get_local __ptr { { ptr, u64, u64 } }, buffer_1, !242 - mem_copy_val v65, v64 - v66 = get_local __ptr { { ptr, u64, u64 } }, buffer_1, !244 - v67 = const u64 0 - v68 = get_elem_ptr v66, __ptr { ptr, u64, u64 }, v67, !245 - v69 = asm(buffer: v68) -> __ptr { ptr, u64, u64 } buffer { + v3679v1 = get_local __ptr { ptr, u64, u64 }, __aggr_memcpy_00 + mem_copy_val v3679v1, v3600v1 + v2769v1 = get_local __ptr { { ptr, u64, u64 } }, __anon_3, !230 + v623v1 = const u64 0 + v2770v1 = get_elem_ptr v2769v1, __ptr { ptr, u64, u64 }, v623v1, !231 + mem_copy_val v2770v1, v3679v1 + v2774v1 = get_local __ptr { { ptr, u64, u64 } }, buffer___, !233 + mem_copy_val v2774v1, v2769v1 + v2776v1 = get_local __ptr { u64, u64, u64, u8, { { ptr, u64 }, u64 }, slice, u256 }, self_0, !235 + v701v1 = const u64 2 + v2777v1 = get_elem_ptr v2776v1, __ptr u64, v701v1, !237 + v2779v1 = get_local __ptr { { ptr, u64, u64 } }, buffer___, !239 + v2782v1 = get_local __ptr { { ptr, u64, u64 } }, buffer_1, !242 + mem_copy_val v2782v1, v2779v1 + v2784v1 = get_local __ptr { { ptr, u64, u64 } }, buffer_1, !244 + v644v1 = const u64 0 + v2785v1 = get_elem_ptr v2784v1, __ptr { ptr, u64, u64 }, v644v1, !245 + v3602v1 = asm(buffer: v2785v1) -> __ptr { ptr, u64, u64 } buffer { } - v70 = get_local __ptr { ptr, u64, u64 }, __aggr_memcpy_01 - mem_copy_val v70, v69 - v71 = get_local __ptr { ptr, u64, u64 }, __anon_000, !246 - mem_copy_val v71, v70 - v72 = const u64 0 - v73 = get_elem_ptr v71, __ptr ptr, v72, !247 - v74 = load v73, !248 - v75 = const u64 1 - v76 = get_elem_ptr v71, __ptr u64, v75, !249 - v77 = load v76, !250 - v78 = const u64 2 - v79 = get_elem_ptr v71, __ptr u64, v78, !251 - v80 = load v79, !252 - v81 = const u64 2 - v82 = add v80, v81, !253 - v83 = cmp gt v82 v77, !254 - cbr v83, encode_20_abi_encode_21_abi_encode_23_block1(), encode_20_abi_encode_21_abi_encode_23_block0(v74, v77), !255 + v3684v1 = get_local __ptr { ptr, u64, u64 }, __aggr_memcpy_01 + mem_copy_val v3684v1, v3602v1 + v2788v1 = get_local __ptr { ptr, u64, u64 }, __anon_000, !246 + mem_copy_val v2788v1, v3684v1 + v650v1 = const u64 0 + v2790v1 = get_elem_ptr v2788v1, __ptr ptr, v650v1, !247 + v2791v1 = load v2790v1, !248 + v653v1 = const u64 1 + v2792v1 = get_elem_ptr v2788v1, __ptr u64, v653v1, !249 + v2793v1 = load v2792v1, !250 + v656v1 = const u64 2 + v2794v1 = get_elem_ptr v2788v1, __ptr u64, v656v1, !251 + v2795v1 = load v2794v1, !252 + v661v1 = const u64 2 + v2797v1 = add v2795v1, v661v1, !253 + v2798v1 = cmp gt v2797v1 v2793v1, !254 + cbr v2798v1, encode_20_abi_encode_21_abi_encode_23_block1(), encode_20_abi_encode_21_abi_encode_23_block0(v2791v1, v2793v1), !255 encode_20_abi_encode_21_abi_encode_22_block1(): - v84 = const u64 2 - v85 = mul v33, v84, !256 - v86 = add v85, v37, !257 - v87 = asm(new_cap: v86, old_ptr: v30, len: v36) -> __ptr u8 hp, !258 { + v595v1 = const u64 2 + v2749v1 = mul v2741v1, v595v1, !256 + v2750v1 = add v2749v1, v589v1, !257 + v2751v1 = asm(new_cap: v2750v1, old_ptr: v2739v1, len: v2743v1) -> __ptr u8 hp, !258 { aloc new_cap mcp hp old_ptr len } - br encode_20_abi_encode_21_abi_encode_22_block0(v87, v86), !259 - - encode_20_abi_encode_21_abi_encode_23_block0(v88: ptr, v89: u64): - v90 = get_local __ptr u64, __anon_10, !260 - mem_copy_val v90, v63 - v91 = const u64 6 - v92 = add v90, v91, !261 - v93 = cast_ptr v92 to __ptr u8, !262 - v94 = add v88, v80, !263 - v95 = cast_ptr v94 to __ptr u8, !264 - mem_copy_bytes v95, v93, 2, !265 - v96 = get_local __ptr { ptr, u64, u64 }, __anon_20, !266 - v97 = const u64 0 - v98 = get_elem_ptr v96, __ptr ptr, v97, !267 - store v88 to v98, !268 - v99 = const u64 1 - v100 = get_elem_ptr v96, __ptr u64, v99, !269 - store v89 to v100, !270 - v101 = const u64 2 - v102 = get_elem_ptr v96, __ptr u64, v101, !271 - store v82 to v102, !272 - v103 = asm(buffer: v96) -> __ptr { ptr, u64, u64 } buffer { + br encode_20_abi_encode_21_abi_encode_22_block0(v2751v1, v2750v1), !259 + + encode_20_abi_encode_21_abi_encode_23_block0(v2672v1: ptr, v2673v1: u64): + v2805v1 = get_local __ptr u64, __anon_10, !260 + mem_copy_val v2805v1, v2777v1 + v675v1 = const u64 6 + v2807v1 = add v2805v1, v675v1, !261 + v2808v1 = cast_ptr v2807v1 to __ptr u8, !262 + v2809v1 = add v2672v1, v2795v1, !263 + v2810v1 = cast_ptr v2809v1 to __ptr u8, !264 + mem_copy_bytes v2810v1, v2808v1, 2, !265 + v2813v1 = get_local __ptr { ptr, u64, u64 }, __anon_20, !266 + v684v1 = const u64 0 + v2814v1 = get_elem_ptr v2813v1, __ptr ptr, v684v1, !267 + store v2672v1 to v2814v1, !268 + v687v1 = const u64 1 + v2816v1 = get_elem_ptr v2813v1, __ptr u64, v687v1, !269 + store v2673v1 to v2816v1, !270 + v690v1 = const u64 2 + v2818v1 = get_elem_ptr v2813v1, __ptr u64, v690v1, !271 + store v2797v1 to v2818v1, !272 + v3604v1 = asm(buffer: v2813v1) -> __ptr { ptr, u64, u64 } buffer { } - v104 = get_local __ptr { ptr, u64, u64 }, __aggr_memcpy_02 - mem_copy_val v104, v103 - v105 = get_local __ptr { { ptr, u64, u64 } }, __anon_30, !274 - v106 = const u64 0 - v107 = get_elem_ptr v105, __ptr { ptr, u64, u64 }, v106, !275 - mem_copy_val v107, v104 - v108 = get_local __ptr { { ptr, u64, u64 } }, buffer____, !277 - mem_copy_val v108, v105 - v109 = get_local __ptr { u64, u64, u64, u8, { { ptr, u64 }, u64 }, slice, u256 }, self_0, !279 - v110 = const u64 3 - v111 = get_elem_ptr v109, __ptr u8, v110, !281 - v112 = load v111, !282 - v113 = get_local __ptr { { ptr, u64, u64 } }, buffer____, !284 - v114 = get_local __ptr { { ptr, u64, u64 } }, buffer_2, !287 - mem_copy_val v114, v113 - v115 = get_local __ptr { { ptr, u64, u64 } }, buffer_2, !289 - v116 = const u64 0 - v117 = get_elem_ptr v115, __ptr { ptr, u64, u64 }, v116, !290 - v118 = asm(buffer: v117) -> __ptr { ptr, u64, u64 } buffer { + v3688v1 = get_local __ptr { ptr, u64, u64 }, __aggr_memcpy_02 + mem_copy_val v3688v1, v3604v1 + v2821v1 = get_local __ptr { { ptr, u64, u64 } }, __anon_30, !274 + v695v1 = const u64 0 + v2822v1 = get_elem_ptr v2821v1, __ptr { ptr, u64, u64 }, v695v1, !275 + mem_copy_val v2822v1, v3688v1 + v2826v1 = get_local __ptr { { ptr, u64, u64 } }, buffer____, !277 + mem_copy_val v2826v1, v2821v1 + v2828v1 = get_local __ptr { u64, u64, u64, u8, { { ptr, u64 }, u64 }, slice, u256 }, self_0, !279 + v768v1 = const u64 3 + v2829v1 = get_elem_ptr v2828v1, __ptr u8, v768v1, !281 + v2830v1 = load v2829v1, !282 + v2831v1 = get_local __ptr { { ptr, u64, u64 } }, buffer____, !284 + v2834v1 = get_local __ptr { { ptr, u64, u64 } }, buffer_2, !287 + mem_copy_val v2834v1, v2831v1 + v2836v1 = get_local __ptr { { ptr, u64, u64 } }, buffer_2, !289 + v716v1 = const u64 0 + v2837v1 = get_elem_ptr v2836v1, __ptr { ptr, u64, u64 }, v716v1, !290 + v3606v1 = asm(buffer: v2837v1) -> __ptr { ptr, u64, u64 } buffer { } - v119 = get_local __ptr { ptr, u64, u64 }, __aggr_memcpy_03 - mem_copy_val v119, v118 - v120 = get_local __ptr { ptr, u64, u64 }, __anon_01, !291 - mem_copy_val v120, v119 - v121 = const u64 0 - v122 = get_elem_ptr v120, __ptr ptr, v121, !292 - v123 = load v122, !293 - v124 = const u64 1 - v125 = get_elem_ptr v120, __ptr u64, v124, !294 - v126 = load v125, !295 - v127 = const u64 2 - v128 = get_elem_ptr v120, __ptr u64, v127, !296 - v129 = load v128, !297 - v130 = const u64 1 - v131 = add v129, v130, !298 - v132 = cmp gt v131 v126, !299 - cbr v132, encode_20_abi_encode_21_abi_encode_24_block1(), encode_20_abi_encode_21_abi_encode_24_block0(v123, v126), !300 + v3693v1 = get_local __ptr { ptr, u64, u64 }, __aggr_memcpy_03 + mem_copy_val v3693v1, v3606v1 + v2840v1 = get_local __ptr { ptr, u64, u64 }, __anon_01, !291 + mem_copy_val v2840v1, v3693v1 + v722v1 = const u64 0 + v2842v1 = get_elem_ptr v2840v1, __ptr ptr, v722v1, !292 + v2843v1 = load v2842v1, !293 + v725v1 = const u64 1 + v2844v1 = get_elem_ptr v2840v1, __ptr u64, v725v1, !294 + v2845v1 = load v2844v1, !295 + v728v1 = const u64 2 + v2846v1 = get_elem_ptr v2840v1, __ptr u64, v728v1, !296 + v2847v1 = load v2846v1, !297 + v733v1 = const u64 1 + v2849v1 = add v2847v1, v733v1, !298 + v2850v1 = cmp gt v2849v1 v2845v1, !299 + cbr v2850v1, encode_20_abi_encode_21_abi_encode_24_block1(), encode_20_abi_encode_21_abi_encode_24_block0(v2843v1, v2845v1), !300 encode_20_abi_encode_21_abi_encode_23_block1(): - v133 = const u64 2 - v134 = mul v77, v133, !301 - v135 = add v134, v81, !302 - v136 = asm(new_cap: v135, old_ptr: v74, len: v80) -> __ptr u8 hp, !303 { + v667v1 = const u64 2 + v2801v1 = mul v2793v1, v667v1, !301 + v2802v1 = add v2801v1, v661v1, !302 + v2803v1 = asm(new_cap: v2802v1, old_ptr: v2791v1, len: v2795v1) -> __ptr u8 hp, !303 { aloc new_cap mcp hp old_ptr len } - br encode_20_abi_encode_21_abi_encode_23_block0(v136, v135), !304 - - encode_20_abi_encode_21_abi_encode_24_block0(v137: ptr, v138: u64): - v139 = add v137, v129, !305 - v140 = cast_ptr v139 to __ptr u8, !306 - store v112 to v140, !307 - v141 = get_local __ptr { ptr, u64, u64 }, __anon_11, !308 - v142 = const u64 0 - v143 = get_elem_ptr v141, __ptr ptr, v142, !309 - store v137 to v143, !310 - v144 = const u64 1 - v145 = get_elem_ptr v141, __ptr u64, v144, !311 - store v138 to v145, !312 - v146 = const u64 2 - v147 = get_elem_ptr v141, __ptr u64, v146, !313 - store v131 to v147, !314 - v148 = asm(buffer: v141) -> __ptr { ptr, u64, u64 } buffer { + br encode_20_abi_encode_21_abi_encode_23_block0(v2803v1, v2802v1), !304 + + encode_20_abi_encode_21_abi_encode_24_block0(v2675v1: ptr, v2676v1: u64): + v2857v1 = add v2675v1, v2847v1, !305 + v2858v1 = cast_ptr v2857v1 to __ptr u8, !306 + store v2830v1 to v2858v1, !307 + v2861v1 = get_local __ptr { ptr, u64, u64 }, __anon_11, !308 + v751v1 = const u64 0 + v2862v1 = get_elem_ptr v2861v1, __ptr ptr, v751v1, !309 + store v2675v1 to v2862v1, !310 + v754v1 = const u64 1 + v2864v1 = get_elem_ptr v2861v1, __ptr u64, v754v1, !311 + store v2676v1 to v2864v1, !312 + v757v1 = const u64 2 + v2866v1 = get_elem_ptr v2861v1, __ptr u64, v757v1, !313 + store v2849v1 to v2866v1, !314 + v3608v1 = asm(buffer: v2861v1) -> __ptr { ptr, u64, u64 } buffer { } - v149 = get_local __ptr { ptr, u64, u64 }, __aggr_memcpy_04 - mem_copy_val v149, v148 - v150 = get_local __ptr { { ptr, u64, u64 } }, __anon_21, !316 - v151 = const u64 0 - v152 = get_elem_ptr v150, __ptr { ptr, u64, u64 }, v151, !317 - mem_copy_val v152, v149 - v153 = get_local __ptr { { ptr, u64, u64 } }, buffer_____, !319 - mem_copy_val v153, v150 - v154 = get_local __ptr { u64, u64, u64, u8, { { ptr, u64 }, u64 }, slice, u256 }, self_0, !321 - v155 = const u64 4 - v156 = get_elem_ptr v154, __ptr { { ptr, u64 }, u64 }, v155, !323 - v157 = get_local __ptr { { ptr, u64, u64 } }, buffer_____, !325 - v158 = get_local __ptr { { ptr, u64 }, u64 }, self_3, !328 - mem_copy_val v158, v156 - v159 = get_local __ptr { { ptr, u64, u64 } }, buffer_3, !329 - mem_copy_val v159, v157 - v160 = get_local __ptr { { ptr, u64 }, u64 }, self_3, !331 - v161 = const u64 1 - v162 = get_elem_ptr v160, __ptr u64, v161, !332 - v163 = load v162, !333 - v164 = get_local __ptr { { ptr, u64, u64 } }, buffer_3, !335 - v165 = get_local __ptr { { ptr, u64, u64 } }, __tmp_arg0 - mem_copy_val v165, v164 - v166 = get_local __ptr { { ptr, u64, u64 } }, __ret_val0 - v167 = call abi_encode_4(v163, v165, v166) - v168 = get_local __ptr { { ptr, u64, u64 } }, buffer__0, !337 - mem_copy_val v168, v166 - v169 = const u64 0, !338 - br encode_20_abi_encode_21_abi_encode_25_while(v169), !339 + v3696v1 = get_local __ptr { ptr, u64, u64 }, __aggr_memcpy_04 + mem_copy_val v3696v1, v3608v1 + v2869v1 = get_local __ptr { { ptr, u64, u64 } }, __anon_21, !316 + v762v1 = const u64 0 + v2870v1 = get_elem_ptr v2869v1, __ptr { ptr, u64, u64 }, v762v1, !317 + mem_copy_val v2870v1, v3696v1 + v2874v1 = get_local __ptr { { ptr, u64, u64 } }, buffer_____, !319 + mem_copy_val v2874v1, v2869v1 + v2876v1 = get_local __ptr { u64, u64, u64, u8, { { ptr, u64 }, u64 }, slice, u256 }, self_0, !321 + v889v1 = const u64 4 + v2877v1 = get_elem_ptr v2876v1, __ptr { { ptr, u64 }, u64 }, v889v1, !323 + v2879v1 = get_local __ptr { { ptr, u64, u64 } }, buffer_____, !325 + v2881v1 = get_local __ptr { { ptr, u64 }, u64 }, self_3, !328 + mem_copy_val v2881v1, v2877v1 + v2883v1 = get_local __ptr { { ptr, u64, u64 } }, buffer_3, !329 + mem_copy_val v2883v1, v2879v1 + v2885v1 = get_local __ptr { { ptr, u64 }, u64 }, self_3, !331 + v783v1 = const u64 1 + v2886v1 = get_elem_ptr v2885v1, __ptr u64, v783v1, !332 + v2887v1 = load v2886v1, !333 + v2890v1 = get_local __ptr { { ptr, u64, u64 } }, buffer_3, !335 + v3469v1 = get_local __ptr { { ptr, u64, u64 } }, __tmp_arg0 + mem_copy_val v3469v1, v2890v1 + v3538v1 = get_local __ptr { { ptr, u64, u64 } }, __ret_val0 + v3539v1 = call abi_encode_4(v2887v1, v3469v1, v3538v1) + v2893v1 = get_local __ptr { { ptr, u64, u64 } }, buffer__0, !337 + mem_copy_val v2893v1, v3538v1 + v795v1 = const u64 0, !338 + br encode_20_abi_encode_21_abi_encode_25_while(v795v1), !339 encode_20_abi_encode_21_abi_encode_24_block1(): - v170 = const u64 2 - v171 = mul v126, v170, !340 - v172 = add v171, v130, !341 - v173 = asm(new_cap: v172, old_ptr: v123, len: v129) -> __ptr u8 hp, !342 { + v739v1 = const u64 2 + v2853v1 = mul v2845v1, v739v1, !340 + v2854v1 = add v2853v1, v733v1, !341 + v2855v1 = asm(new_cap: v2854v1, old_ptr: v2843v1, len: v2847v1) -> __ptr u8 hp, !342 { aloc new_cap mcp hp old_ptr len } - br encode_20_abi_encode_21_abi_encode_24_block0(v173, v172), !343 + br encode_20_abi_encode_21_abi_encode_24_block0(v2855v1, v2854v1), !343 - encode_20_abi_encode_21_abi_encode_25_while(v174: u64): - v175 = cmp lt v174 v163, !346 - cbr v175, encode_20_abi_encode_21_abi_encode_25_while_body(), encode_20_abi_encode_21_abi_encode_25_end_while(), !347 + encode_20_abi_encode_21_abi_encode_25_while(v2678v1: u64): + v2903v1 = cmp lt v2678v1 v2887v1, !346 + cbr v2903v1, encode_20_abi_encode_21_abi_encode_25_while_body(), encode_20_abi_encode_21_abi_encode_25_end_while(), !347 encode_20_abi_encode_21_abi_encode_25_while_body(): - v176 = get_local __ptr { { ptr, u64 }, u64 }, self_3, !349 - v177 = get_local __ptr { { ptr, u64 }, u64 }, self_10, !352 - mem_copy_val v177, v176 - v178 = get_local __ptr { { ptr, u64 }, u64 }, self_10, !354 - v179 = const u64 0 - v180 = get_elem_ptr v178, __ptr { ptr, u64 }, v179, !355 - v181 = const u64 0 - v182 = get_elem_ptr v180, __ptr ptr, v181, !356 - v183 = load v182, !357 - v184 = const u64 8 - v185 = mul v184, v174, !360 - v186 = add v183, v185, !361 - v187 = asm(ptr: v186, val) -> u64 val, !365 { + v3029v1 = get_local __ptr { { ptr, u64 }, u64 }, self_3, !349 + v3032v1 = get_local __ptr { { ptr, u64 }, u64 }, self_10, !352 + mem_copy_val v3032v1, v3029v1 + v3035v1 = get_local __ptr { { ptr, u64 }, u64 }, self_10, !354 + v848v1 = const u64 0 + v3036v1 = get_elem_ptr v3035v1, __ptr { ptr, u64 }, v848v1, !355 + v850v1 = const u64 0 + v3037v1 = get_elem_ptr v3036v1, __ptr ptr, v850v1, !356 + v3038v1 = load v3037v1, !357 + v406v1 = const u64 8 + v3044v1 = mul v406v1, v2678v1, !360 + v3045v1 = add v3038v1, v3044v1, !361 + v3057v1 = asm(ptr: v3045v1, val) -> u64 val, !365 { lw val ptr i0, !366 } - v188 = get_local __ptr { { ptr, u64, u64 } }, buffer__0, !368 - v189 = get_local __ptr { { ptr, u64, u64 } }, __tmp_arg1 - mem_copy_val v189, v188 - v190 = get_local __ptr { { ptr, u64, u64 } }, __ret_val1 - v191 = call abi_encode_4(v187, v189, v190) - v192 = get_local __ptr { { ptr, u64, u64 } }, buffer__0, !370 - mem_copy_val v192, v190 - v193 = const u64 1, !371 - v194 = add v174, v193, !374 - br encode_20_abi_encode_21_abi_encode_25_while(v194), !375 + v3070v1 = get_local __ptr { { ptr, u64, u64 } }, buffer__0, !368 + v3472v1 = get_local __ptr { { ptr, u64, u64 } }, __tmp_arg1 + mem_copy_val v3472v1, v3070v1 + v3541v1 = get_local __ptr { { ptr, u64, u64 } }, __ret_val1 + v3542v1 = call abi_encode_4(v3057v1, v3472v1, v3541v1) + v3073v1 = get_local __ptr { { ptr, u64, u64 } }, buffer__0, !370 + mem_copy_val v3073v1, v3541v1 + v875v1 = const u64 1, !371 + v3080v1 = add v2678v1, v875v1, !374 + br encode_20_abi_encode_21_abi_encode_25_while(v3080v1), !375 encode_20_abi_encode_21_abi_encode_25_end_while(): - v195 = get_local __ptr { { ptr, u64, u64 } }, buffer__0, !377 - v196 = get_local __ptr { { ptr, u64, u64 } }, buffer______, !379 - mem_copy_val v196, v195 - v197 = get_local __ptr { u64, u64, u64, u8, { { ptr, u64 }, u64 }, slice, u256 }, self_0, !381 - v198 = const u64 5 - v199 = get_elem_ptr v197, __ptr slice, v198, !383 - v200 = get_local __ptr { { ptr, u64, u64 } }, buffer______, !385 - v201 = get_local __ptr slice, self_4, !388 - mem_copy_val v201, v199 - v202 = get_local __ptr { { ptr, u64, u64 } }, buffer_4, !389 - mem_copy_val v202, v200 - v203 = get_local __ptr { { ptr, u64, u64 } }, buffer_4, !391 - v204 = const u64 0 - v205 = get_elem_ptr v203, __ptr { ptr, u64, u64 }, v204, !392 - v206 = asm(buffer: v205) -> __ptr { ptr, u64, u64 } buffer { + v2906v1 = get_local __ptr { { ptr, u64, u64 } }, buffer__0, !377 + v2909v1 = get_local __ptr { { ptr, u64, u64 } }, buffer______, !379 + mem_copy_val v2909v1, v2906v1 + v2911v1 = get_local __ptr { u64, u64, u64, u8, { { ptr, u64 }, u64 }, slice, u256 }, self_0, !381 + v963v1 = const u64 5 + v2912v1 = get_elem_ptr v2911v1, __ptr slice, v963v1, !383 + v2914v1 = get_local __ptr { { ptr, u64, u64 } }, buffer______, !385 + v2916v1 = get_local __ptr slice, self_4, !388 + mem_copy_val v2916v1, v2912v1 + v2918v1 = get_local __ptr { { ptr, u64, u64 } }, buffer_4, !389 + mem_copy_val v2918v1, v2914v1 + v2920v1 = get_local __ptr { { ptr, u64, u64 } }, buffer_4, !391 + v904v1 = const u64 0 + v2921v1 = get_elem_ptr v2920v1, __ptr { ptr, u64, u64 }, v904v1, !392 + v3610v1 = asm(buffer: v2921v1) -> __ptr { ptr, u64, u64 } buffer { } - v207 = get_local __ptr { ptr, u64, u64 }, __aggr_memcpy_05 - mem_copy_val v207, v206 - v208 = get_local __ptr { ptr, u64, u64 }, __anon_02, !393 - mem_copy_val v208, v207 - v209 = const u64 0 - v210 = get_elem_ptr v208, __ptr ptr, v209, !394 - v211 = load v210, !395 - v212 = const u64 1 - v213 = get_elem_ptr v208, __ptr u64, v212, !396 - v214 = load v213, !397 - v215 = const u64 2 - v216 = get_elem_ptr v208, __ptr u64, v215, !398 - v217 = load v216, !399 - v218 = get_local __ptr slice, self_4, !401 - v219 = get_local __ptr slice, __aggr_memcpy_07 - mem_copy_val v219, v218 - v220 = asm(item: v218) -> __ptr { u64, u64 } item { + v3710v1 = get_local __ptr { ptr, u64, u64 }, __aggr_memcpy_05 + mem_copy_val v3710v1, v3610v1 + v2924v1 = get_local __ptr { ptr, u64, u64 }, __anon_02, !393 + mem_copy_val v2924v1, v3710v1 + v910v1 = const u64 0 + v2926v1 = get_elem_ptr v2924v1, __ptr ptr, v910v1, !394 + v2927v1 = load v2926v1, !395 + v913v1 = const u64 1 + v2928v1 = get_elem_ptr v2924v1, __ptr u64, v913v1, !396 + v2929v1 = load v2928v1, !397 + v916v1 = const u64 2 + v2930v1 = get_elem_ptr v2924v1, __ptr u64, v916v1, !398 + v2931v1 = load v2930v1, !399 + v2932v1 = get_local __ptr slice, self_4, !401 + v3716v1 = get_local __ptr slice, __aggr_memcpy_07 + mem_copy_val v3716v1, v2932v1 + v3612v1 = asm(item: v2932v1) -> __ptr { u64, u64 } item { } - v221 = get_local __ptr { u64, u64 }, __aggr_memcpy_06 - mem_copy_val v221, v220 - v222 = get_local __ptr { u64, u64 }, __anon_12, !402 - mem_copy_val v222, v221 - v223 = const u64 1 - v224 = get_elem_ptr v222, __ptr u64, v223, !403 - v225 = load v224, !404 - v226 = const u64 8 - v227 = add v225, v226, !405 - v228 = add v217, v227, !406 - v229 = cmp gt v228 v214, !407 - cbr v229, encode_20_abi_encode_21_abi_encode_29_block1(), encode_20_abi_encode_21_abi_encode_29_block0(v211, v214), !408 - - encode_20_abi_encode_21_abi_encode_29_block0(v230: ptr, v231: u64): - v232 = get_local __ptr slice, __anon_22, !409 - mem_copy_val v232, v219 - v233 = add v230, v217, !410 - v234 = cast_ptr v233 to __ptr u8, !411 - v235 = asm(item_ptr: v232, len: v217, addr: v234, data_ptr, item_len, new_len) -> u64 new_len, !412 { + v3713v1 = get_local __ptr { u64, u64 }, __aggr_memcpy_06 + mem_copy_val v3713v1, v3612v1 + v2935v1 = get_local __ptr { u64, u64 }, __anon_12, !402 + mem_copy_val v2935v1, v3713v1 + v924v1 = const u64 1 + v2937v1 = get_elem_ptr v2935v1, __ptr u64, v924v1, !403 + v2938v1 = load v2937v1, !404 + v927v1 = const u64 8 + v2939v1 = add v2938v1, v927v1, !405 + v2940v1 = add v2931v1, v2939v1, !406 + v2941v1 = cmp gt v2940v1 v2929v1, !407 + cbr v2941v1, encode_20_abi_encode_21_abi_encode_29_block1(), encode_20_abi_encode_21_abi_encode_29_block0(v2927v1, v2929v1), !408 + + encode_20_abi_encode_21_abi_encode_29_block0(v2688v1: ptr, v2689v1: u64): + v2948v1 = get_local __ptr slice, __anon_22, !409 + mem_copy_val v2948v1, v3716v1 + v2950v1 = add v2688v1, v2931v1, !410 + v2951v1 = cast_ptr v2950v1 to __ptr u8, !411 + v2952v1 = asm(item_ptr: v2948v1, len: v2931v1, addr: v2951v1, data_ptr, item_len, new_len) -> u64 new_len, !412 { lw item_len item_ptr i1 sw addr item_len i0 addi addr addr i8 @@ -808,118 +808,118 @@ script { addi new_len len i8 add new_len new_len item_len } - v236 = get_local __ptr { ptr, u64, u64 }, __anon_31, !413 - v237 = const u64 0 - v238 = get_elem_ptr v236, __ptr ptr, v237, !414 - store v230 to v238, !415 - v239 = const u64 1 - v240 = get_elem_ptr v236, __ptr u64, v239, !416 - store v231 to v240, !417 - v241 = const u64 2 - v242 = get_elem_ptr v236, __ptr u64, v241, !418 - store v235 to v242, !419 - v243 = asm(buffer: v236) -> __ptr { ptr, u64, u64 } buffer { + v2953v1 = get_local __ptr { ptr, u64, u64 }, __anon_31, !413 + v946v1 = const u64 0 + v2954v1 = get_elem_ptr v2953v1, __ptr ptr, v946v1, !414 + store v2688v1 to v2954v1, !415 + v949v1 = const u64 1 + v2956v1 = get_elem_ptr v2953v1, __ptr u64, v949v1, !416 + store v2689v1 to v2956v1, !417 + v952v1 = const u64 2 + v2958v1 = get_elem_ptr v2953v1, __ptr u64, v952v1, !418 + store v2952v1 to v2958v1, !419 + v3614v1 = asm(buffer: v2953v1) -> __ptr { ptr, u64, u64 } buffer { } - v244 = get_local __ptr { ptr, u64, u64 }, __aggr_memcpy_08 - mem_copy_val v244, v243 - v245 = get_local __ptr { { ptr, u64, u64 } }, __anon_4, !421 - v246 = const u64 0 - v247 = get_elem_ptr v245, __ptr { ptr, u64, u64 }, v246, !422 - mem_copy_val v247, v244 - v248 = get_local __ptr { { ptr, u64, u64 } }, buffer_______, !424 - mem_copy_val v248, v245 - v249 = get_local __ptr { u64, u64, u64, u8, { { ptr, u64 }, u64 }, slice, u256 }, self_0, !426 - v250 = const u64 6 - v251 = get_elem_ptr v249, __ptr u256, v250, !428 - v252 = get_local __ptr { { ptr, u64, u64 } }, buffer_______, !430 - v253 = get_local __ptr u256, self_5, !433 - mem_copy_val v253, v251 - v254 = get_local __ptr { { ptr, u64, u64 } }, buffer_5, !434 - mem_copy_val v254, v252 - v255 = get_local __ptr { { ptr, u64, u64 } }, buffer_5, !436 - v256 = const u64 0 - v257 = get_elem_ptr v255, __ptr { ptr, u64, u64 }, v256, !437 - v258 = asm(buffer: v257) -> __ptr { ptr, u64, u64 } buffer { + v3719v1 = get_local __ptr { ptr, u64, u64 }, __aggr_memcpy_08 + mem_copy_val v3719v1, v3614v1 + v2961v1 = get_local __ptr { { ptr, u64, u64 } }, __anon_4, !421 + v957v1 = const u64 0 + v2962v1 = get_elem_ptr v2961v1, __ptr { ptr, u64, u64 }, v957v1, !422 + mem_copy_val v2962v1, v3719v1 + v2966v1 = get_local __ptr { { ptr, u64, u64 } }, buffer_______, !424 + mem_copy_val v2966v1, v2961v1 + v2968v1 = get_local __ptr { u64, u64, u64, u8, { { ptr, u64 }, u64 }, slice, u256 }, self_0, !426 + v1032v1 = const u64 6 + v2969v1 = get_elem_ptr v2968v1, __ptr u256, v1032v1, !428 + v2971v1 = get_local __ptr { { ptr, u64, u64 } }, buffer_______, !430 + v2973v1 = get_local __ptr u256, self_5, !433 + mem_copy_val v2973v1, v2969v1 + v2975v1 = get_local __ptr { { ptr, u64, u64 } }, buffer_5, !434 + mem_copy_val v2975v1, v2971v1 + v2977v1 = get_local __ptr { { ptr, u64, u64 } }, buffer_5, !436 + v978v1 = const u64 0 + v2978v1 = get_elem_ptr v2977v1, __ptr { ptr, u64, u64 }, v978v1, !437 + v3616v1 = asm(buffer: v2978v1) -> __ptr { ptr, u64, u64 } buffer { } - v259 = get_local __ptr { ptr, u64, u64 }, __aggr_memcpy_09 - mem_copy_val v259, v258 - v260 = get_local __ptr { ptr, u64, u64 }, __anon_03, !438 - mem_copy_val v260, v259 - v261 = const u64 0 - v262 = get_elem_ptr v260, __ptr ptr, v261, !439 - v263 = load v262, !440 - v264 = const u64 1 - v265 = get_elem_ptr v260, __ptr u64, v264, !441 - v266 = load v265, !442 - v267 = const u64 2 - v268 = get_elem_ptr v260, __ptr u64, v267, !443 - v269 = load v268, !444 - v270 = get_local __ptr u256, self_5, !446 - v271 = const u64 32 - v272 = add v269, v271, !447 - v273 = cmp gt v272 v266, !448 - cbr v273, encode_20_abi_encode_21_abi_encode_30_block1(), encode_20_abi_encode_21_abi_encode_30_block0(v263, v266), !449 + v3725v1 = get_local __ptr { ptr, u64, u64 }, __aggr_memcpy_09 + mem_copy_val v3725v1, v3616v1 + v2981v1 = get_local __ptr { ptr, u64, u64 }, __anon_03, !438 + mem_copy_val v2981v1, v3725v1 + v984v1 = const u64 0 + v2983v1 = get_elem_ptr v2981v1, __ptr ptr, v984v1, !439 + v2984v1 = load v2983v1, !440 + v987v1 = const u64 1 + v2985v1 = get_elem_ptr v2981v1, __ptr u64, v987v1, !441 + v2986v1 = load v2985v1, !442 + v990v1 = const u64 2 + v2987v1 = get_elem_ptr v2981v1, __ptr u64, v990v1, !443 + v2988v1 = load v2987v1, !444 + v2989v1 = get_local __ptr u256, self_5, !446 + v995v1 = const u64 32 + v2991v1 = add v2988v1, v995v1, !447 + v2992v1 = cmp gt v2991v1 v2986v1, !448 + cbr v2992v1, encode_20_abi_encode_21_abi_encode_30_block1(), encode_20_abi_encode_21_abi_encode_30_block0(v2984v1, v2986v1), !449 encode_20_abi_encode_21_abi_encode_29_block1(): - v274 = const u64 2 - v275 = mul v214, v274, !450 - v276 = add v275, v227, !451 - v277 = asm(new_cap: v276, old_ptr: v211, len: v217) -> __ptr u8 hp, !452 { + v934v1 = const u64 2 + v2944v1 = mul v2929v1, v934v1, !450 + v2945v1 = add v2944v1, v2939v1, !451 + v2946v1 = asm(new_cap: v2945v1, old_ptr: v2927v1, len: v2931v1) -> __ptr u8 hp, !452 { aloc new_cap mcp hp old_ptr len } - br encode_20_abi_encode_21_abi_encode_29_block0(v277, v276), !453 - - encode_20_abi_encode_21_abi_encode_30_block0(v278: ptr, v279: u64): - v280 = get_local __ptr u256, __anon_13, !454 - mem_copy_val v280, v270 - v281 = add v278, v269, !455 - v282 = cast_ptr v281 to __ptr u8, !456 - mem_copy_bytes v282, v280, 32, !457 - v283 = get_local __ptr { ptr, u64, u64 }, __anon_23, !458 - v284 = const u64 0 - v285 = get_elem_ptr v283, __ptr ptr, v284, !459 - store v278 to v285, !460 - v286 = const u64 1 - v287 = get_elem_ptr v283, __ptr u64, v286, !461 - store v279 to v287, !462 - v288 = const u64 2 - v289 = get_elem_ptr v283, __ptr u64, v288, !463 - store v272 to v289, !464 - v290 = asm(buffer: v283) -> __ptr { ptr, u64, u64 } buffer { + br encode_20_abi_encode_21_abi_encode_29_block0(v2946v1, v2945v1), !453 + + encode_20_abi_encode_21_abi_encode_30_block0(v2691v1: ptr, v2692v1: u64): + v2999v1 = get_local __ptr u256, __anon_13, !454 + mem_copy_val v2999v1, v2989v1 + v3001v1 = add v2691v1, v2988v1, !455 + v3002v1 = cast_ptr v3001v1 to __ptr u8, !456 + mem_copy_bytes v3002v1, v2999v1, 32, !457 + v3005v1 = get_local __ptr { ptr, u64, u64 }, __anon_23, !458 + v1015v1 = const u64 0 + v3006v1 = get_elem_ptr v3005v1, __ptr ptr, v1015v1, !459 + store v2691v1 to v3006v1, !460 + v1018v1 = const u64 1 + v3008v1 = get_elem_ptr v3005v1, __ptr u64, v1018v1, !461 + store v2692v1 to v3008v1, !462 + v1021v1 = const u64 2 + v3010v1 = get_elem_ptr v3005v1, __ptr u64, v1021v1, !463 + store v2991v1 to v3010v1, !464 + v3618v1 = asm(buffer: v3005v1) -> __ptr { ptr, u64, u64 } buffer { } - v291 = get_local __ptr { ptr, u64, u64 }, __aggr_memcpy_010 - mem_copy_val v291, v290 - v292 = get_local __ptr { { ptr, u64, u64 } }, __anon_32, !466 - v293 = const u64 0 - v294 = get_elem_ptr v292, __ptr { ptr, u64, u64 }, v293, !467 - mem_copy_val v294, v291 - v295 = get_local __ptr { { ptr, u64, u64 } }, buffer________, !469 - mem_copy_val v295, v292 - v296 = get_local __ptr { { ptr, u64, u64 } }, buffer________, !471 - v297 = get_local __ptr { { ptr, u64, u64 } }, buffer, !473 - mem_copy_val v297, v296 - v298 = get_local __ptr { { ptr, u64, u64 } }, buffer, !475 - v299 = get_local __ptr { { ptr, u64, u64 } }, __tmp_arg2 - mem_copy_val v299, v298 - v300 = get_local __ptr slice, __ret_val3 - v301 = call as_raw_slice_6(v299, v300) - v302 = get_local __ptr slice, __log_arg - mem_copy_val v302, v300 - v303 = const u64 4579537983717831593 - log __ptr slice v302, v303 - v304 = const unit () - ret () v304 + v3729v1 = get_local __ptr { ptr, u64, u64 }, __aggr_memcpy_010 + mem_copy_val v3729v1, v3618v1 + v3013v1 = get_local __ptr { { ptr, u64, u64 } }, __anon_32, !466 + v1026v1 = const u64 0 + v3014v1 = get_elem_ptr v3013v1, __ptr { ptr, u64, u64 }, v1026v1, !467 + mem_copy_val v3014v1, v3729v1 + v3018v1 = get_local __ptr { { ptr, u64, u64 } }, buffer________, !469 + mem_copy_val v3018v1, v3013v1 + v3020v1 = get_local __ptr { { ptr, u64, u64 } }, buffer________, !471 + v3023v1 = get_local __ptr { { ptr, u64, u64 } }, buffer, !473 + mem_copy_val v3023v1, v3020v1 + v3025v1 = get_local __ptr { { ptr, u64, u64 } }, buffer, !475 + v3486v1 = get_local __ptr { { ptr, u64, u64 } }, __tmp_arg2 + mem_copy_val v3486v1, v3025v1 + v3567v1 = get_local __ptr slice, __ret_val3 + v3568v1 = call as_raw_slice_6(v3486v1, v3567v1) + v3595v1 = get_local __ptr slice, __log_arg + mem_copy_val v3595v1, v3567v1 + v1060v1 = const u64 4579537983717831593 + log __ptr slice v3595v1, v1060v1 + v1063v1 = const unit () + ret () v1063v1 encode_20_abi_encode_21_abi_encode_30_block1(): - v305 = const u64 2 - v306 = mul v266, v305, !476 - v307 = add v306, v271, !477 - v308 = asm(new_cap: v307, old_ptr: v263, len: v269) -> __ptr u8 hp, !478 { + v1001v1 = const u64 2 + v2995v1 = mul v2986v1, v1001v1, !476 + v2996v1 = add v2995v1, v995v1, !477 + v2997v1 = asm(new_cap: v2996v1, old_ptr: v2984v1, len: v2988v1) -> __ptr u8 hp, !478 { aloc new_cap mcp hp old_ptr len } - br encode_20_abi_encode_21_abi_encode_30_block0(v308, v307), !479 + br encode_20_abi_encode_21_abi_encode_30_block0(v2997v1, v2996v1), !479 } fn local_log_32(item: __ptr { u64 }) -> (), !480 { @@ -930,44 +930,44 @@ script { local { u64 } item_0 entry(item: __ptr { u64 }): - v0 = get_local __ptr { u64 }, item_ - mem_copy_val v0, item - v1 = get_local __ptr { u64 }, item_, !83 - v2 = get_local __ptr { u64 }, item_0, !83 - mem_copy_val v2, v1 - v3 = get_local __ptr { u64 }, item_0, !481 - v4 = const u64 8 - v5 = asm(size: v4, src: v3) -> ptr hp, !482 { + v1113v1 = get_local __ptr { u64 }, item_ + mem_copy_val v1113v1, item + v1183v1 = get_local __ptr { u64 }, item_, !83 + v3108v1 = get_local __ptr { u64 }, item_0, !83 + mem_copy_val v3108v1, v1183v1 + v3133v1 = get_local __ptr { u64 }, item_0, !481 + v1129v1 = const u64 8 + v3134v1 = asm(size: v1129v1, src: v3133v1) -> ptr hp, !482 { aloc size, !88 mcp hp src size, !89 } - v6 = get_local __ptr { ptr, u64 }, __anon_0, !483 - v7 = const u64 0 - v8 = get_elem_ptr v6, __ptr ptr, v7, !484 - store v5 to v8, !485 - v9 = const u64 1 - v10 = get_elem_ptr v6, __ptr u64, v9, !486 - store v4 to v10, !487 - v11 = asm(s: v6) -> __ptr slice s { + v3138v1 = get_local __ptr { ptr, u64 }, __anon_0, !483 + v1143v1 = const u64 0 + v3139v1 = get_elem_ptr v3138v1, __ptr ptr, v1143v1, !484 + store v3134v1 to v3139v1, !485 + v1146v1 = const u64 1 + v3141v1 = get_elem_ptr v3138v1, __ptr u64, v1146v1, !486 + store v1129v1 to v3141v1, !487 + v3623v1 = asm(s: v3138v1) -> __ptr slice s { } - v12 = get_local __ptr slice, __aggr_memcpy_0 - mem_copy_val v12, v11 - v13 = get_local __ptr slice, __log_arg - mem_copy_val v13, v12 - v14 = const u64 16566583104751091389 - log __ptr slice v13, v14 - v15 = const unit () - ret () v15 + v3738v1 = get_local __ptr slice, __aggr_memcpy_0 + mem_copy_val v3738v1, v3623v1 + v3620v1 = get_local __ptr slice, __log_arg + mem_copy_val v3620v1, v3738v1 + v1186v1 = const u64 16566583104751091389 + log __ptr slice v3620v1, v1186v1 + v1189v1 = const unit () + ret () v1189v1 } pub fn abi_encode_34(self: __ptr { u64 }, buffer: __ptr { { ptr, u64, u64 } }, __ret_value: __ptr { { ptr, u64, u64 } }) -> (), !490 { entry(self: __ptr { u64 }, buffer: __ptr { { ptr, u64, u64 } }, __ret_value: __ptr { { ptr, u64, u64 } }): - v0 = const u64 0 - v1 = get_elem_ptr self, __ptr u64, v0, !491 - v2 = load v1 - v3 = call abi_encode_4(v2, buffer, __ret_value) - v4 = const unit () - ret () v4 + v1158v1 = const u64 0 + v1159v1 = get_elem_ptr self, __ptr u64, v1158v1, !491 + v1160v1 = load v1159v1 + v3545v1 = call abi_encode_4(v1160v1, buffer, __ret_value) + v3575v1 = const unit () + ret () v3575v1 } fn local_log_35(item: __ptr { u64, ( { u64 } | () ) }) -> (), !492 { @@ -978,61 +978,61 @@ script { local { { ptr, u64, u64 } } buffer__ entry(item: __ptr { u64, ( { u64 } | () ) }): - v0 = get_local __ptr { { ptr, u64, u64 } }, buffer_ - v1 = call new_5(v0) - v2 = get_local __ptr { u64, ( { u64 } | () ) }, __matched_value_1, !494 - mem_copy_val v2, item - v3 = const u64 0 - v4 = get_elem_ptr item, __ptr u64, v3 - v5 = load v4, !495 - v6 = const u64 0, !496 - v7 = cmp eq v5 v6, !499 - cbr v7, encode_36_abi_encode_37_block0(), encode_36_abi_encode_37_block1(), !500 + v3560v1 = get_local __ptr { { ptr, u64, u64 } }, buffer_ + v3561v1 = call new_5(v3560v1) + v3257v1 = get_local __ptr { u64, ( { u64 } | () ) }, __matched_value_1, !494 + mem_copy_val v3257v1, item + v1248v1 = const u64 0 + v3754v1 = get_elem_ptr item, __ptr u64, v1248v1 + v3261v1 = load v3754v1, !495 + v1251v1 = const u64 0, !496 + v3266v1 = cmp eq v3261v1 v1251v1, !499 + cbr v3266v1, encode_36_abi_encode_37_block0(), encode_36_abi_encode_37_block1(), !500 encode_36_abi_encode_37_block0(): - v8 = get_local __ptr { u64, ( { u64 } | () ) }, __matched_value_1, !501 - v9 = const u64 1 - v10 = const u64 0 - v11 = get_elem_ptr v8, __ptr { u64 }, v9, v10, !502 - v12 = get_local __ptr { { ptr, u64, u64 } }, buffer_, !504 - v13 = get_local __ptr { { ptr, u64, u64 } }, buffer__ - v14 = const u64 0, !505 - v15 = call abi_encode_4(v14, v12, v13) - v16 = get_local __ptr { { ptr, u64, u64 } }, buffer__ - v17 = get_local __ptr { { ptr, u64, u64 } }, __tmp_block_arg - v18 = call abi_encode_34(v11, v16, v17) - v19 = get_local __ptr { { ptr, u64, u64 } }, __tmp_block_arg - br encode_36_abi_encode_37_block5(v19), !506 + v3285v1 = get_local __ptr { u64, ( { u64 } | () ) }, __matched_value_1, !501 + v1254v1 = const u64 1 + v1255v1 = const u64 0 + v3286v1 = get_elem_ptr v3285v1, __ptr { u64 }, v1254v1, v1255v1, !502 + v3290v1 = get_local __ptr { { ptr, u64, u64 } }, buffer_, !504 + v3547v1 = get_local __ptr { { ptr, u64, u64 } }, buffer__ + v1260v1 = const u64 0, !505 + v3548v1 = call abi_encode_4(v1260v1, v3290v1, v3547v1) + v3508v1 = get_local __ptr { { ptr, u64, u64 } }, buffer__ + v3577v1 = get_local __ptr { { ptr, u64, u64 } }, __tmp_block_arg + v3578v1 = call abi_encode_34(v3286v1, v3508v1, v3577v1) + v3523v1 = get_local __ptr { { ptr, u64, u64 } }, __tmp_block_arg + br encode_36_abi_encode_37_block5(v3523v1), !506 encode_36_abi_encode_37_block1(): - v20 = get_local __ptr { u64, ( { u64 } | () ) }, __matched_value_1, !507 - v21 = const u64 0 - v22 = get_elem_ptr v20, __ptr u64, v21, !508 - v23 = load v22, !509 - v24 = const u64 1, !496 - v25 = cmp eq v23 v24, !512 - cbr v25, encode_36_abi_encode_37_block2(), encode_36_abi_encode_37_block3(), !513 + v3269v1 = get_local __ptr { u64, ( { u64 } | () ) }, __matched_value_1, !507 + v1276v1 = const u64 0 + v3270v1 = get_elem_ptr v3269v1, __ptr u64, v1276v1, !508 + v3271v1 = load v3270v1, !509 + v1279v1 = const u64 1, !496 + v3276v1 = cmp eq v3271v1 v1279v1, !512 + cbr v3276v1, encode_36_abi_encode_37_block2(), encode_36_abi_encode_37_block3(), !513 encode_36_abi_encode_37_block2(): - v26 = get_local __ptr { { ptr, u64, u64 } }, buffer_, !515 - v27 = get_local __ptr { { ptr, u64, u64 } }, __tmp_block_arg - v28 = const u64 1, !516 - v29 = call abi_encode_4(v28, v26, v27) - v30 = get_local __ptr { { ptr, u64, u64 } }, __tmp_block_arg - br encode_36_abi_encode_37_block5(v30), !517 + v3280v1 = get_local __ptr { { ptr, u64, u64 } }, buffer_, !515 + v3550v1 = get_local __ptr { { ptr, u64, u64 } }, __tmp_block_arg + v1281v1 = const u64 1, !516 + v3551v1 = call abi_encode_4(v1281v1, v3280v1, v3550v1) + v3521v1 = get_local __ptr { { ptr, u64, u64 } }, __tmp_block_arg + br encode_36_abi_encode_37_block5(v3521v1), !517 encode_36_abi_encode_37_block3(): - v31 = const u64 14757395258967588866, !493 - revert v31, !518 - - encode_36_abi_encode_37_block5(v32: __ptr { { ptr, u64, u64 } }): - v33 = get_local __ptr slice, __log_arg - v34 = call as_raw_slice_6(v32, v33) - v35 = get_local __ptr slice, __log_arg - v36 = const u64 5087777005172090899 - log __ptr slice v35, v36 - v37 = const unit () - ret () v37 + v1285v1 = const u64 14757395258967588866, !493 + revert v1285v1, !518 + + encode_36_abi_encode_37_block5(v3519v1: __ptr { { ptr, u64, u64 } }): + v3570v1 = get_local __ptr slice, __log_arg + v3571v1 = call as_raw_slice_6(v3519v1, v3570v1) + v3625v1 = get_local __ptr slice, __log_arg + v1316v1 = const u64 5087777005172090899 + log __ptr slice v3625v1, v1316v1 + v1319v1 = const unit () + ret () v1319v1 } fn local_log_38(item: __ptr { }) -> (), !519 { @@ -1043,34 +1043,34 @@ script { local { } item_0 entry(item: __ptr { }): - v0 = get_local __ptr { }, item_ - mem_copy_val v0, item - v1 = get_local __ptr { }, item_, !83 - v2 = get_local __ptr { }, item_0, !83 - mem_copy_val v2, v1 - v3 = get_local __ptr { }, item_0, !520 - v4 = const u64 0 - v5 = asm(size: v4, src: v3) -> ptr hp, !521 { + v1346v1 = get_local __ptr { }, item_ + mem_copy_val v1346v1, item + v1409v1 = get_local __ptr { }, item_, !83 + v3349v1 = get_local __ptr { }, item_0, !83 + mem_copy_val v3349v1, v1409v1 + v3381v1 = get_local __ptr { }, item_0, !520 + v1362v1 = const u64 0 + v3382v1 = asm(size: v1362v1, src: v3381v1) -> ptr hp, !521 { aloc size, !88 mcp hp src size, !89 } - v6 = get_local __ptr { ptr, u64 }, __anon_0, !522 - v7 = const u64 0 - v8 = get_elem_ptr v6, __ptr ptr, v7, !523 - store v5 to v8, !524 - v9 = const u64 1 - v10 = get_elem_ptr v6, __ptr u64, v9, !525 - store v4 to v10, !526 - v11 = asm(s: v6) -> __ptr slice s { + v3386v1 = get_local __ptr { ptr, u64 }, __anon_0, !522 + v1376v1 = const u64 0 + v3387v1 = get_elem_ptr v3386v1, __ptr ptr, v1376v1, !523 + store v3382v1 to v3387v1, !524 + v1379v1 = const u64 1 + v3389v1 = get_elem_ptr v3386v1, __ptr u64, v1379v1, !525 + store v1362v1 to v3389v1, !526 + v3631v1 = asm(s: v3386v1) -> __ptr slice s { } - v12 = get_local __ptr slice, __aggr_memcpy_0 - mem_copy_val v12, v11 - v13 = get_local __ptr slice, __log_arg - mem_copy_val v13, v12 - v14 = const u64 5555909392781521367 - log __ptr slice v13, v14 - v15 = const unit () - ret () v15 + v3757v1 = get_local __ptr slice, __aggr_memcpy_0 + mem_copy_val v3757v1, v3631v1 + v3628v1 = get_local __ptr slice, __log_arg + mem_copy_val v3628v1, v3757v1 + v1412v1 = const u64 5555909392781521367 + log __ptr slice v3628v1, v1412v1 + v1415v1 = const unit () + ret () v1415v1 } } diff --git a/test/src/e2e_vm_tests/test_programs/should_pass/language/main_args/main_args_empty/stdout.snap b/test/src/e2e_vm_tests/test_programs/should_pass/language/main_args/main_args_empty/stdout.snap index 6023e21c8e4..c743de3dc9e 100644 --- a/test/src/e2e_vm_tests/test_programs/should_pass/language/main_args/main_args_empty/stdout.snap +++ b/test/src/e2e_vm_tests/test_programs/should_pass/language/main_args/main_args_empty/stdout.snap @@ -26,16 +26,16 @@ library { script { pub entry fn __entry() -> __ptr never, !3 { entry(): - v0 = call main_0(), !6 - v1 = const u64 0, !7 - v2 = const u64 0, !8 - retd v1 v2, !9 + v11v1 = call main_0(), !6 + v14v1 = const u64 0, !7 + v15v1 = const u64 0, !8 + retd v14v1 v15v1, !9 } entry_orig fn main_0() -> (), !13 { entry(): - v0 = const unit () - ret () v0 + v9v1 = const unit () + ret () v9v1 } } diff --git a/test/src/e2e_vm_tests/test_programs/should_pass/language/main_args/main_args_one_u64/stdout.snap b/test/src/e2e_vm_tests/test_programs/should_pass/language/main_args/main_args_one_u64/stdout.snap index 5d3374353f3..4ed710821ec 100644 --- a/test/src/e2e_vm_tests/test_programs/should_pass/language/main_args/main_args_one_u64/stdout.snap +++ b/test/src/e2e_vm_tests/test_programs/should_pass/language/main_args/main_args_one_u64/stdout.snap @@ -30,45 +30,45 @@ script { local u64 item_ entry(): - v0 = const u64 0, !5 - v1 = gtf v0, 10, !11 - v2 = bitcast v1 to ptr, !12 - v3 = get_local __ptr { ptr }, buffer, !14 - v4 = const u64 0 - v5 = get_elem_ptr v3, __ptr ptr, v4, !15 - store v2 to v5, !16 - v6 = get_local __ptr { ptr }, buffer, !18 - v7 = const u64 0 - v8 = get_elem_ptr v6, __ptr ptr, v7, !26 - v9 = load v8, !27 - v10 = asm(ptr: v9, val) -> u64 val, !29 { + v8v1 = const u64 0, !5 + v397v1 = gtf v8v1, 10, !11 + v398v1 = bitcast v397v1 to ptr, !12 + v404v1 = get_local __ptr { ptr }, buffer, !14 + v21v1 = const u64 0 + v405v1 = get_elem_ptr v404v1, __ptr ptr, v21v1, !15 + store v398v1 to v405v1, !16 + v411v1 = get_local __ptr { ptr }, buffer, !18 + v39v1 = const u64 0 + v419v1 = get_elem_ptr v411v1, __ptr ptr, v39v1, !26 + v420v1 = load v419v1, !27 + v421v1 = asm(ptr: v420v1, val) -> u64 val, !29 { lw val ptr i0, !30 } - v11 = load v8, !31 - v12 = const u64 8, !32 - v13 = add v11, v12, !33 - store v13 to v8, !35 - v14 = get_local __ptr { u64 }, args, !37 - v15 = const u64 0 - v16 = get_elem_ptr v14, __ptr u64, v15, !38 - store v10 to v16, !39 - v17 = get_local __ptr { u64 }, args, !40 - v18 = const u64 0 - v19 = get_elem_ptr v17, __ptr u64, v18, !41 - v20 = load v19 - v21 = call main_5(v20), !44 - v22 = get_local __ptr u64, item_, !47 - store v21 to v22, !47 - v23 = get_local __ptr u64, item_, !49 - v24 = const u64 8 - retd v23 v24, !51 + v425v1 = load v419v1, !31 + v426v1 = const u64 8, !32 + v427v1 = add v425v1, v426v1, !33 + store v427v1 to v419v1, !35 + v434v1 = get_local __ptr { u64 }, args, !37 + v69v1 = const u64 0 + v435v1 = get_elem_ptr v434v1, __ptr u64, v69v1, !38 + store v421v1 to v435v1, !39 + v101v1 = get_local __ptr { u64 }, args, !40 + v102v1 = const u64 0 + v103v1 = get_elem_ptr v101v1, __ptr u64, v102v1, !41 + v104v1 = load v103v1 + v105v1 = call main_5(v104v1), !44 + v445v1 = get_local __ptr u64, item_, !47 + store v105v1 to v445v1, !47 + v527v1 = get_local __ptr u64, item_, !49 + v134v1 = const u64 8 + retd v527v1 v134v1, !51 } entry_orig fn main_5(baba !53: u64) -> u64, !56 { entry(baba: u64): - v0 = const u64 1, !57 - v1 = add baba, v0, !60 - ret u64 v1 + v98v1 = const u64 1, !57 + v328v1 = add baba, v98v1, !60 + ret u64 v328v1 } } diff --git a/test/src/e2e_vm_tests/test_programs/should_pass/language/main_args/main_args_two_u64/stdout.snap b/test/src/e2e_vm_tests/test_programs/should_pass/language/main_args/main_args_two_u64/stdout.snap index dbecaaac712..5a66dc4e24f 100644 --- a/test/src/e2e_vm_tests/test_programs/should_pass/language/main_args/main_args_two_u64/stdout.snap +++ b/test/src/e2e_vm_tests/test_programs/should_pass/language/main_args/main_args_two_u64/stdout.snap @@ -30,59 +30,59 @@ script { local u64 item_ entry(): - v0 = const u64 0, !5 - v1 = gtf v0, 10, !11 - v2 = bitcast v1 to ptr, !12 - v3 = get_local __ptr { ptr }, buffer, !14 - v4 = const u64 0 - v5 = get_elem_ptr v3, __ptr ptr, v4, !15 - store v2 to v5, !16 - v6 = get_local __ptr { ptr }, buffer, !18 - v7 = const u64 0 - v8 = get_elem_ptr v6, __ptr ptr, v7, !26 - v9 = load v8, !27 - v10 = asm(ptr: v9, val) -> u64 val, !29 { + v8v1 = const u64 0, !5 + v373v1 = gtf v8v1, 10, !11 + v374v1 = bitcast v373v1 to ptr, !12 + v380v1 = get_local __ptr { ptr }, buffer, !14 + v21v1 = const u64 0 + v381v1 = get_elem_ptr v380v1, __ptr ptr, v21v1, !15 + store v374v1 to v381v1, !16 + v387v1 = get_local __ptr { ptr }, buffer, !18 + v39v1 = const u64 0 + v391v3 = get_elem_ptr v387v1, __ptr ptr, v39v1, !26 + v493v1 = load v391v3, !27 + v494v1 = asm(ptr: v493v1, val) -> u64 val, !29 { lw val ptr i0, !30 } - v11 = load v8, !31 - v12 = const u64 8, !32 - v13 = add v11, v12, !33 - store v13 to v8, !35 - v14 = load v8, !38 - v15 = asm(ptr: v14, val) -> u64 val, !39 { + v496v1 = load v391v3, !31 + v497v1 = const u64 8, !32 + v498v1 = add v496v1, v497v1, !33 + store v498v1 to v391v3, !35 + v503v1 = load v391v3, !38 + v504v1 = asm(ptr: v503v1, val) -> u64 val, !39 { lw val ptr i0, !30 } - v16 = load v8, !40 - v17 = const u64 8, !41 - v18 = add v16, v17, !42 - store v18 to v8, !43 - v19 = get_local __ptr { u64, u64 }, args, !45 - v20 = const u64 0 - v21 = get_elem_ptr v19, __ptr u64, v20, !46 - store v10 to v21, !47 - v22 = const u64 1 - v23 = get_elem_ptr v19, __ptr u64, v22, !48 - store v15 to v23, !49 - v24 = get_local __ptr { u64, u64 }, args, !50 - v25 = const u64 0 - v26 = get_elem_ptr v24, __ptr u64, v25, !51 - v27 = load v26 - v28 = get_local __ptr { u64, u64 }, args, !52 - v29 = const u64 1 - v30 = get_elem_ptr v28, __ptr u64, v29, !53 - v31 = load v30 - v32 = call main_5(v27, v31), !56 - v33 = get_local __ptr u64, item_, !59 - store v32 to v33, !59 - v34 = get_local __ptr u64, item_, !61 - v35 = const u64 8 - retd v34 v35, !63 + v506v1 = load v391v3, !40 + v507v1 = const u64 8, !41 + v508v1 = add v506v1, v507v1, !42 + store v508v1 to v391v3, !43 + v394v1 = get_local __ptr { u64, u64 }, args, !45 + v72v1 = const u64 0 + v395v1 = get_elem_ptr v394v1, __ptr u64, v72v1, !46 + store v494v1 to v395v1, !47 + v75v1 = const u64 1 + v397v1 = get_elem_ptr v394v1, __ptr u64, v75v1, !48 + store v504v1 to v397v1, !49 + v111v1 = get_local __ptr { u64, u64 }, args, !50 + v112v1 = const u64 0 + v113v1 = get_elem_ptr v111v1, __ptr u64, v112v1, !51 + v114v1 = load v113v1 + v115v1 = get_local __ptr { u64, u64 }, args, !52 + v116v1 = const u64 1 + v117v1 = get_elem_ptr v115v1, __ptr u64, v116v1, !53 + v118v1 = load v117v1 + v119v1 = call main_5(v114v1, v118v1), !56 + v407v1 = get_local __ptr u64, item_, !59 + store v119v1 to v407v1, !59 + v489v1 = get_local __ptr u64, item_, !61 + v148v1 = const u64 8 + retd v489v1 v148v1, !63 } entry_orig fn main_5(baba !65: u64, keke !66: u64) -> u64, !69 { entry(baba: u64, keke: u64): - v0 = add baba, keke, !72 - ret u64 v0 + v306v1 = add baba, keke, !72 + ret u64 v306v1 } } diff --git a/test/src/e2e_vm_tests/test_programs/should_pass/language/main_args/main_args_various_types/stdout.snap b/test/src/e2e_vm_tests/test_programs/should_pass/language/main_args/main_args_various_types/stdout.snap index fee4b5281fb..c2fc1ea7ca4 100644 --- a/test/src/e2e_vm_tests/test_programs/should_pass/language/main_args/main_args_various_types/stdout.snap +++ b/test/src/e2e_vm_tests/test_programs/should_pass/language/main_args/main_args_various_types/stdout.snap @@ -37,58 +37,58 @@ script { local { u64 } item_ entry(): - v0 = const u64 0, !5 - v1 = gtf v0, 10, !11 - v2 = bitcast v1 to ptr, !12 - v3 = get_local __ptr { ptr }, buffer, !14 - v4 = const u64 0 - v5 = get_elem_ptr v3, __ptr ptr, v4, !15 - store v2 to v5, !16 - v6 = get_local __ptr { ptr }, buffer, !18 - v7 = get_local __ptr { { string<3> }, { u64, ( u64 | u64 ) } }, first - v8 = call decode_4(v6, v7) - v9 = get_local __ptr [{ { string<3> }, { u64, ( u64 | u64 ) } }; 2], array, !24 - v10 = get_local __ptr { { string<3> }, { u64, ( u64 | u64 ) } }, first, !26 - v11 = const u64 0 - v12 = get_elem_ptr v9, __ptr { { string<3> }, { u64, ( u64 | u64 ) } }, v11, !27 - mem_copy_val v12, v10 - v13 = const u64 1 - v14 = get_elem_ptr v9, __ptr { { string<3> }, { u64, ( u64 | u64 ) } }, v13, !28 - mem_copy_val v14, v10 - v15 = const u64 1, !29 - br decode_script_data_0_abi_decode_2_abi_decode_3_while(v15), !30 + v96v1 = const u64 0, !5 + v2621v1 = gtf v96v1, 10, !11 + v2622v1 = bitcast v2621v1 to ptr, !12 + v2628v1 = get_local __ptr { ptr }, buffer, !14 + v109v1 = const u64 0 + v2629v1 = get_elem_ptr v2628v1, __ptr ptr, v109v1, !15 + store v2622v1 to v2629v1, !16 + v2635v1 = get_local __ptr { ptr }, buffer, !18 + v2832v1 = get_local __ptr { { string<3> }, { u64, ( u64 | u64 ) } }, first + v2833v1 = call decode_4(v2635v1, v2832v1) + v2644v1 = get_local __ptr [{ { string<3> }, { u64, ( u64 | u64 ) } }; 2], array, !24 + v2645v1 = get_local __ptr { { string<3> }, { u64, ( u64 | u64 ) } }, first, !26 + v356v1 = const u64 0 + v2647v1 = get_elem_ptr v2644v1, __ptr { { string<3> }, { u64, ( u64 | u64 ) } }, v356v1, !27 + mem_copy_val v2647v1, v2645v1 + v359v1 = const u64 1 + v2649v1 = get_elem_ptr v2644v1, __ptr { { string<3> }, { u64, ( u64 | u64 ) } }, v359v1, !28 + mem_copy_val v2649v1, v2645v1 + v365v1 = const u64 1, !29 + br decode_script_data_0_abi_decode_2_abi_decode_3_while(v365v1), !30 - decode_script_data_0_abi_decode_2_abi_decode_3_while(v16: u64): - v17 = const u64 2, !31 - v18 = cmp lt v16 v17, !34 - cbr v18, decode_script_data_0_abi_decode_2_abi_decode_3_while_body(), decode_script_data_0_abi_decode_2_abi_decode_3_end_while(), !35 + decode_script_data_0_abi_decode_2_abi_decode_3_while(v2616v1: u64): + v383v1 = const u64 2, !31 + v2661v1 = cmp lt v2616v1 v383v1, !34 + cbr v2661v1, decode_script_data_0_abi_decode_2_abi_decode_3_while_body(), decode_script_data_0_abi_decode_2_abi_decode_3_end_while(), !35 decode_script_data_0_abi_decode_2_abi_decode_3_while_body(): - v19 = get_local __ptr { { string<3> }, { u64, ( u64 | u64 ) } }, __ret_val0 - v20 = call decode_4(v6, v19) - v21 = get_local __ptr [{ { string<3> }, { u64, ( u64 | u64 ) } }; 2], array, !37 - v22 = get_elem_ptr v21, __ptr { { string<3> }, { u64, ( u64 | u64 ) } }, v16, !38 - mem_copy_val v22, v19 - v23 = const u64 1, !39 - v24 = add v16, v23, !42 - br decode_script_data_0_abi_decode_2_abi_decode_3_while(v24), !43 + v2835v1 = get_local __ptr { { string<3> }, { u64, ( u64 | u64 ) } }, __ret_val0 + v2836v1 = call decode_4(v2635v1, v2835v1) + v2675v1 = get_local __ptr [{ { string<3> }, { u64, ( u64 | u64 ) } }; 2], array, !37 + v2677v1 = get_elem_ptr v2675v1, __ptr { { string<3> }, { u64, ( u64 | u64 ) } }, v2616v1, !38 + mem_copy_val v2677v1, v2835v1 + v408v1 = const u64 1, !39 + v2684v1 = add v2616v1, v408v1, !42 + br decode_script_data_0_abi_decode_2_abi_decode_3_while(v2684v1), !43 decode_script_data_0_abi_decode_2_abi_decode_3_end_while(): - v25 = get_local __ptr [{ { string<3> }, { u64, ( u64 | u64 ) } }; 2], array, !45 - v26 = get_local __ptr { [{ { string<3> }, { u64, ( u64 | u64 ) } }; 2] }, args, !47 - v27 = const u64 0 - v28 = get_elem_ptr v26, __ptr [{ { string<3> }, { u64, ( u64 | u64 ) } }; 2], v27, !48 - mem_copy_val v28, v25 - v29 = get_local __ptr { [{ { string<3> }, { u64, ( u64 | u64 ) } }; 2] }, args, !49 - v30 = const u64 0 - v31 = get_elem_ptr v29, __ptr [{ { string<3> }, { u64, ( u64 | u64 ) } }; 2], v30, !50 - v32 = get_local __ptr [{ { string<3> }, { u64, ( u64 | u64 ) } }; 2], __tmp_arg - mem_copy_val v32, v31 - v33 = get_local __ptr { u64 }, item_ - v34 = call main_19(v32, v33) - v35 = get_local __ptr { u64 }, item_, !54 - v36 = const u64 8 - retd v35 v36, !56 + v2664v1 = get_local __ptr [{ { string<3> }, { u64, ( u64 | u64 ) } }; 2], array, !45 + v2667v1 = get_local __ptr { [{ { string<3> }, { u64, ( u64 | u64 ) } }; 2] }, args, !47 + v425v1 = const u64 0 + v2668v1 = get_elem_ptr v2667v1, __ptr [{ { string<3> }, { u64, ( u64 | u64 ) } }; 2], v425v1, !48 + mem_copy_val v2668v1, v2664v1 + v1027v1 = get_local __ptr { [{ { string<3> }, { u64, ( u64 | u64 ) } }; 2] }, args, !49 + v1028v1 = const u64 0 + v1029v1 = get_elem_ptr v1027v1, __ptr [{ { string<3> }, { u64, ( u64 | u64 ) } }; 2], v1028v1, !50 + v2790v1 = get_local __ptr [{ { string<3> }, { u64, ( u64 | u64 ) } }; 2], __tmp_arg + mem_copy_val v2790v1, v1029v1 + v2842v1 = get_local __ptr { u64 }, item_ + v2843v1 = call main_19(v2790v1, v2842v1) + v2733v1 = get_local __ptr { u64 }, item_, !54 + v1048v1 = const u64 8 + retd v2733v1 v1048v1, !56 } pub fn decode_4(self !57: __ptr { ptr }, __ret_value: __ptr { { string<3> }, { u64, ( u64 | u64 ) } }) -> (), !60 { @@ -108,129 +108,129 @@ script { local slice slice_ entry(self: __ptr { ptr }, __ret_value: __ptr { { string<3> }, { u64, ( u64 | u64 ) } }): - v0 = const u64 0 - v1 = get_elem_ptr self, __ptr ptr, v0, !70 - v2 = get_local __ptr { ptr, u64 }, __anon_000, !72 - v3 = const u64 0 - v4 = get_elem_ptr v2, __ptr ptr, v3, !73 - mem_copy_val v4, v1 - v5 = const u64 1 - v6 = get_elem_ptr v2, __ptr u64, v5, !74 - v7 = const u64 3, !75 - store v7 to v6, !76 - v8 = asm(ptr: v2) -> __ptr slice ptr { + v145v1 = const u64 0 + v1449v1 = get_elem_ptr self, __ptr ptr, v145v1, !70 + v1452v1 = get_local __ptr { ptr, u64 }, __anon_000, !72 + v151v1 = const u64 0 + v1453v1 = get_elem_ptr v1452v1, __ptr ptr, v151v1, !73 + mem_copy_val v1453v1, v1449v1 + v154v1 = const u64 1 + v1455v1 = get_elem_ptr v1452v1, __ptr u64, v154v1, !74 + v180v1 = const u64 3, !75 + store v180v1 to v1455v1, !76 + v2868v1 = asm(ptr: v1452v1) -> __ptr slice ptr { } - v9 = get_local __ptr slice, __aggr_memcpy_0 - mem_copy_val v9, v8 - v10 = get_local __ptr slice, slice, !78 - mem_copy_val v10, v9 - v11 = load v1, !79 - v12 = const u64 3, !80 - v13 = add v11, v12, !81 - store v13 to v1, !83 - v14 = get_local __ptr slice, slice, !85 - v15 = get_local __ptr slice, data, !87 - mem_copy_val v15, v14 - v16 = get_local __ptr slice, data, !89 - v17 = get_local __ptr slice, self_000, !92 - mem_copy_val v17, v16 - v18 = get_local __ptr slice, self_000, !95 - v19 = get_local __ptr slice, slice_, !98 - mem_copy_val v19, v18 - v20 = get_local __ptr slice, slice_, !100 - v21 = asm(ptr: v20) -> __ptr { ptr, u64 } ptr { + v2905v1 = get_local __ptr slice, __aggr_memcpy_0 + mem_copy_val v2905v1, v2868v1 + v1459v1 = get_local __ptr slice, slice, !78 + mem_copy_val v1459v1, v2905v1 + v1463v1 = load v1449v1, !79 + v1465v1 = const u64 3, !80 + v1466v1 = add v1463v1, v1465v1, !81 + store v1466v1 to v1449v1, !83 + v1470v1 = get_local __ptr slice, slice, !85 + v1473v1 = get_local __ptr slice, data, !87 + mem_copy_val v1473v1, v1470v1 + v1475v1 = get_local __ptr slice, data, !89 + v1477v1 = get_local __ptr slice, self_000, !92 + mem_copy_val v1477v1, v1475v1 + v1479v1 = get_local __ptr slice, self_000, !95 + v1481v1 = get_local __ptr slice, slice_, !98 + mem_copy_val v1481v1, v1479v1 + v1483v1 = get_local __ptr slice, slice_, !100 + v2870v1 = asm(ptr: v1483v1) -> __ptr { ptr, u64 } ptr { } - v22 = get_local __ptr { ptr, u64 }, __aggr_memcpy_00 - mem_copy_val v22, v21 - v23 = get_local __ptr { ptr, u64 }, __anon_0000, !101 - mem_copy_val v23, v22 - v24 = const u64 0 - v25 = get_elem_ptr v23, __ptr ptr, v24, !103 - v26 = load v25, !104 - v27 = asm(s: v26) -> __ptr string<3> s { + v2911v1 = get_local __ptr { ptr, u64 }, __aggr_memcpy_00 + mem_copy_val v2911v1, v2870v1 + v1487v1 = get_local __ptr { ptr, u64 }, __anon_0000, !101 + mem_copy_val v1487v1, v2911v1 + v199v1 = const u64 0 + v1489v1 = get_elem_ptr v1487v1, __ptr ptr, v199v1, !103 + v1490v1 = load v1489v1, !104 + v2872v1 = asm(s: v1490v1) -> __ptr string<3> s { } - v28 = get_local __ptr string<3>, __aggr_memcpy_01 - mem_copy_val v28, v27 - v29 = get_local __ptr { string<3> }, __anon_00, !106 - v30 = const u64 0 - v31 = get_elem_ptr v29, __ptr string<3>, v30, !107 - mem_copy_val v31, v28 - v32 = load v1, !114 - v33 = asm(ptr: v32, val) -> u64 val, !116 { + v2914v1 = get_local __ptr string<3>, __aggr_memcpy_01 + mem_copy_val v2914v1, v2872v1 + v1495v1 = get_local __ptr { string<3> }, __anon_00, !106 + v216v1 = const u64 0 + v1496v1 = get_elem_ptr v1495v1, __ptr string<3>, v216v1, !107 + mem_copy_val v1496v1, v2914v1 + v2737v1 = load v1449v1, !114 + v2738v1 = asm(ptr: v2737v1, val) -> u64 val, !116 { lw val ptr i0, !117 } - v34 = load v1, !118 - v35 = const u64 8, !119 - v36 = add v34, v35, !120 - store v36 to v1, !122 - v37 = const u64 0, !123 - v38 = cmp eq v33 v37, !126 - cbr v38, abi_decode_5_abi_decode_12_block0(), abi_decode_5_abi_decode_12_block1(), !127 + v2740v1 = load v1449v1, !118 + v2741v1 = const u64 8, !119 + v2742v1 = add v2740v1, v2741v1, !120 + store v2742v1 to v1449v1, !122 + v290v1 = const u64 0, !123 + v1512v1 = cmp eq v2738v1 v290v1, !126 + cbr v1512v1, abi_decode_5_abi_decode_12_block0(), abi_decode_5_abi_decode_12_block1(), !127 abi_decode_5_abi_decode_12_block0(): - v39 = get_local __ptr { u64, ( u64 | u64 ) }, __anon_01, !130 - v40 = const u64 0 - v41 = get_elem_ptr v39, __ptr u64, v40, !131 - v42 = const u64 0, !129 - store v42 to v41, !132 - v43 = load v1, !135 - v44 = asm(ptr: v43, val) -> u64 val, !136 { + v1534v1 = get_local __ptr { u64, ( u64 | u64 ) }, __anon_01, !130 + v294v1 = const u64 0 + v1535v1 = get_elem_ptr v1534v1, __ptr u64, v294v1, !131 + v292v1 = const u64 0, !129 + store v292v1 to v1535v1, !132 + v2747v1 = load v1449v1, !135 + v2748v1 = asm(ptr: v2747v1, val) -> u64 val, !136 { lw val ptr i0, !117 } - v45 = load v1, !137 - v46 = const u64 8, !138 - v47 = add v45, v46, !139 - store v47 to v1, !140 - v48 = const u64 1 - v49 = const u64 0 - v50 = get_elem_ptr v39, __ptr u64, v48, v49, !141 - store v44 to v50, !142 - v51 = get_local __ptr { u64, ( u64 | u64 ) }, __tmp_block_arg - mem_copy_val v51, v39 - br abi_decode_5_abi_decode_12_block5(v51), !143 + v2750v1 = load v1449v1, !137 + v2751v1 = const u64 8, !138 + v2752v1 = add v2750v1, v2751v1, !139 + store v2752v1 to v1449v1, !140 + v300v1 = const u64 1 + v301v1 = const u64 0 + v1539v1 = get_elem_ptr v1534v1, __ptr u64, v300v1, v301v1, !141 + store v2748v1 to v1539v1, !142 + v2784v1 = get_local __ptr { u64, ( u64 | u64 ) }, __tmp_block_arg + mem_copy_val v2784v1, v1534v1 + br abi_decode_5_abi_decode_12_block5(v2784v1), !143 abi_decode_5_abi_decode_12_block1(): - v52 = const u64 1, !144 - v53 = cmp eq v33 v52, !147 - cbr v53, abi_decode_5_abi_decode_12_block2(), abi_decode_5_abi_decode_12_block3(), !148 + v307v1 = const u64 1, !144 + v1520v1 = cmp eq v2738v1 v307v1, !147 + cbr v1520v1, abi_decode_5_abi_decode_12_block2(), abi_decode_5_abi_decode_12_block3(), !148 abi_decode_5_abi_decode_12_block2(): - v54 = get_local __ptr { u64, ( u64 | u64 ) }, __anon_1, !149 - v55 = const u64 0 - v56 = get_elem_ptr v54, __ptr u64, v55, !150 - v57 = const u64 1, !129 - store v57 to v56, !151 - v58 = load v1, !154 - v59 = asm(ptr: v58, val) -> u64 val, !155 { + v1524v1 = get_local __ptr { u64, ( u64 | u64 ) }, __anon_1, !149 + v311v1 = const u64 0 + v1525v1 = get_elem_ptr v1524v1, __ptr u64, v311v1, !150 + v309v1 = const u64 1, !129 + store v309v1 to v1525v1, !151 + v2757v1 = load v1449v1, !154 + v2758v1 = asm(ptr: v2757v1, val) -> u64 val, !155 { lw val ptr i0, !117 } - v60 = load v1, !156 - v61 = const u64 8, !157 - v62 = add v60, v61, !158 - store v62 to v1, !159 - v63 = const u64 1 - v64 = const u64 1 - v65 = get_elem_ptr v54, __ptr u64, v63, v64, !160 - store v59 to v65, !161 - v66 = get_local __ptr { u64, ( u64 | u64 ) }, __tmp_block_arg - mem_copy_val v66, v54 - br abi_decode_5_abi_decode_12_block5(v66), !162 + v2760v1 = load v1449v1, !156 + v2761v1 = const u64 8, !157 + v2762v1 = add v2760v1, v2761v1, !158 + store v2762v1 to v1449v1, !159 + v317v1 = const u64 1 + v318v1 = const u64 1 + v1529v1 = get_elem_ptr v1524v1, __ptr u64, v317v1, v318v1, !160 + store v2758v1 to v1529v1, !161 + v2786v1 = get_local __ptr { u64, ( u64 | u64 ) }, __tmp_block_arg + mem_copy_val v2786v1, v1524v1 + br abi_decode_5_abi_decode_12_block5(v2786v1), !162 abi_decode_5_abi_decode_12_block3(): - v67 = const u64 0, !163 - revert v67, !165 + v322v1 = const u64 0, !163 + revert v322v1, !165 - abi_decode_5_abi_decode_12_block5(v68: __ptr { u64, ( u64 | u64 ) }): - v69 = get_local __ptr { { string<3> }, { u64, ( u64 | u64 ) } }, __anon_0, !167 - v70 = const u64 0 - v71 = get_elem_ptr v69, __ptr { string<3> }, v70, !168 - mem_copy_val v71, v29 - v72 = const u64 1 - v73 = get_elem_ptr v69, __ptr { u64, ( u64 | u64 ) }, v72, !169 - mem_copy_val v73, v68 - mem_copy_val __ret_value, v69 - v74 = const unit () - ret () v74 + abi_decode_5_abi_decode_12_block5(v2782v1: __ptr { u64, ( u64 | u64 ) }): + v1544v1 = get_local __ptr { { string<3> }, { u64, ( u64 | u64 ) } }, __anon_0, !167 + v336v1 = const u64 0 + v1545v1 = get_elem_ptr v1544v1, __ptr { string<3> }, v336v1, !168 + mem_copy_val v1545v1, v1495v1 + v339v1 = const u64 1 + v1547v1 = get_elem_ptr v1544v1, __ptr { u64, ( u64 | u64 ) }, v339v1, !169 + mem_copy_val v1547v1, v2782v1 + mem_copy_val __ret_value, v1544v1 + v2830v1 = const unit () + ret () v2830v1 } entry_orig fn main_19(ops: __ptr [{ { string<3> }, { u64, ( u64 | u64 ) } }; 2], __ret_value: __ptr { u64 }) -> (), !172 { @@ -292,388 +292,388 @@ script { local { { ptr, u64, u64 } } self_3 entry(ops: __ptr [{ { string<3> }, { u64, ( u64 | u64 ) } }; 2], __ret_value: __ptr { u64 }): - v0 = get_local __ptr [{ { string<3> }, { u64, ( u64 | u64 ) } }; 2], ops_ - mem_copy_val v0, ops - v1 = get_local __ptr [{ { string<3> }, { u64, ( u64 | u64 ) } }; 2], ops_, !173 - v2 = get_local __ptr [{ { string<3> }, { u64, ( u64 | u64 ) } }; 2], item_, !173 - mem_copy_val v2, v1 - v3 = get_local __ptr [{ { string<3> }, { u64, ( u64 | u64 ) } }; 2], item_, !175 - v4 = get_local __ptr { { ptr, u64, u64 } }, __ret_val3 - v5 = call new_27(v4) - v6 = get_local __ptr [{ { string<3> }, { u64, ( u64 | u64 ) } }; 2], self_0, !178 - mem_copy_val v6, v3 - v7 = get_local __ptr { { ptr, u64, u64 } }, buffer_, !179 - mem_copy_val v7, v4 - v8 = get_local __ptr { { ptr, u64, u64 } }, buffer_, !181 - v9 = get_local __ptr { { ptr, u64, u64 } }, buffer__, !183 - mem_copy_val v9, v8 - v10 = const u64 0, !184 - br encode_20_abi_encode_21_while(v10), !185 + v438v1 = get_local __ptr [{ { string<3> }, { u64, ( u64 | u64 ) } }; 2], ops_ + mem_copy_val v438v1, ops + v825v1 = get_local __ptr [{ { string<3> }, { u64, ( u64 | u64 ) } }; 2], ops_, !173 + v2317v1 = get_local __ptr [{ { string<3> }, { u64, ( u64 | u64 ) } }; 2], item_, !173 + mem_copy_val v2317v1, v825v1 + v2330v1 = get_local __ptr [{ { string<3> }, { u64, ( u64 | u64 ) } }; 2], item_, !175 + v2865v1 = get_local __ptr { { ptr, u64, u64 } }, __ret_val3 + v2866v1 = call new_27(v2865v1) + v2333v1 = get_local __ptr [{ { string<3> }, { u64, ( u64 | u64 ) } }; 2], self_0, !178 + mem_copy_val v2333v1, v2330v1 + v2335v1 = get_local __ptr { { ptr, u64, u64 } }, buffer_, !179 + mem_copy_val v2335v1, v2865v1 + v2337v1 = get_local __ptr { { ptr, u64, u64 } }, buffer_, !181 + v2339v1 = get_local __ptr { { ptr, u64, u64 } }, buffer__, !183 + mem_copy_val v2339v1, v2337v1 + v486v1 = const u64 0, !184 + br encode_20_abi_encode_21_while(v486v1), !185 - encode_20_abi_encode_21_while(v11: u64): - v12 = const u64 2, !186 - v13 = cmp lt v11 v12, !189 - cbr v13, encode_20_abi_encode_21_while_body(), encode_20_abi_encode_21_end_while(), !190 + encode_20_abi_encode_21_while(v2301v1: u64): + v492v1 = const u64 2, !186 + v2348v1 = cmp lt v2301v1 v492v1, !189 + cbr v2348v1, encode_20_abi_encode_21_while_body(), encode_20_abi_encode_21_end_while(), !190 encode_20_abi_encode_21_while_body(): - v14 = get_local __ptr [{ { string<3> }, { u64, ( u64 | u64 ) } }; 2], self_0, !192 - v15 = get_elem_ptr v14, __ptr { { string<3> }, { u64, ( u64 | u64 ) } }, v11, !194 - v16 = get_local __ptr { { ptr, u64, u64 } }, buffer__, !196 - v17 = get_local __ptr { { string<3> }, { u64, ( u64 | u64 ) } }, self_1, !199 - mem_copy_val v17, v15 - v18 = get_local __ptr { { ptr, u64, u64 } }, buffer_0, !200 - mem_copy_val v18, v16 - v19 = get_local __ptr { { string<3> }, { u64, ( u64 | u64 ) } }, self_1, !202 - v20 = const u64 0 - v21 = get_elem_ptr v19, __ptr { string<3> }, v20, !204 - v22 = get_local __ptr { { ptr, u64, u64 } }, buffer_0, !206 - v23 = get_local __ptr { string<3> }, self_000, !209 - mem_copy_val v23, v21 - v24 = get_local __ptr { { ptr, u64, u64 } }, buffer_00, !210 - mem_copy_val v24, v22 - v25 = get_local __ptr { string<3> }, self_000, !212 - v26 = const u64 0 - v27 = get_elem_ptr v25, __ptr string<3>, v26, !214 - v28 = get_local __ptr { { ptr, u64, u64 } }, buffer_00, !216 - v29 = get_local __ptr string<3>, self_0000, !219 - mem_copy_val v29, v27 - v30 = get_local __ptr { { ptr, u64, u64 } }, buffer_000, !220 - mem_copy_val v30, v28 - v31 = get_local __ptr { { ptr, u64, u64 } }, buffer_000, !222 - v32 = const u64 0 - v33 = get_elem_ptr v31, __ptr { ptr, u64, u64 }, v32, !224 - v34 = asm(buffer: v33) -> __ptr { ptr, u64, u64 } buffer { + v2380v1 = get_local __ptr [{ { string<3> }, { u64, ( u64 | u64 ) } }; 2], self_0, !192 + v2382v1 = get_elem_ptr v2380v1, __ptr { { string<3> }, { u64, ( u64 | u64 ) } }, v2301v1, !194 + v2384v1 = get_local __ptr { { ptr, u64, u64 } }, buffer__, !196 + v2386v1 = get_local __ptr { { string<3> }, { u64, ( u64 | u64 ) } }, self_1, !199 + mem_copy_val v2386v1, v2382v1 + v2388v1 = get_local __ptr { { ptr, u64, u64 } }, buffer_0, !200 + mem_copy_val v2388v1, v2384v1 + v2390v1 = get_local __ptr { { string<3> }, { u64, ( u64 | u64 ) } }, self_1, !202 + v579v1 = const u64 0 + v2391v1 = get_elem_ptr v2390v1, __ptr { string<3> }, v579v1, !204 + v2393v1 = get_local __ptr { { ptr, u64, u64 } }, buffer_0, !206 + v2395v1 = get_local __ptr { string<3> }, self_000, !209 + mem_copy_val v2395v1, v2391v1 + v2397v1 = get_local __ptr { { ptr, u64, u64 } }, buffer_00, !210 + mem_copy_val v2397v1, v2393v1 + v2399v1 = get_local __ptr { string<3> }, self_000, !212 + v567v1 = const u64 0 + v2400v1 = get_elem_ptr v2399v1, __ptr string<3>, v567v1, !214 + v2402v1 = get_local __ptr { { ptr, u64, u64 } }, buffer_00, !216 + v2404v1 = get_local __ptr string<3>, self_0000, !219 + mem_copy_val v2404v1, v2400v1 + v2406v1 = get_local __ptr { { ptr, u64, u64 } }, buffer_000, !220 + mem_copy_val v2406v1, v2402v1 + v2408v1 = get_local __ptr { { ptr, u64, u64 } }, buffer_000, !222 + v513v1 = const u64 0 + v2409v1 = get_elem_ptr v2408v1, __ptr { ptr, u64, u64 }, v513v1, !224 + v2877v1 = asm(buffer: v2409v1) -> __ptr { ptr, u64, u64 } buffer { } - v35 = get_local __ptr { ptr, u64, u64 }, __aggr_memcpy_0 - mem_copy_val v35, v34 - v36 = get_local __ptr { ptr, u64, u64 }, __anon_000, !225 - mem_copy_val v36, v35 - v37 = const u64 0 - v38 = get_elem_ptr v36, __ptr ptr, v37, !226 - v39 = load v38, !227 - v40 = const u64 1 - v41 = get_elem_ptr v36, __ptr u64, v40, !228 - v42 = load v41, !229 - v43 = const u64 2 - v44 = get_elem_ptr v36, __ptr u64, v43, !230 - v45 = load v44, !231 - v46 = get_local __ptr string<3>, self_0000, !233 - v47 = const u64 3 - v48 = add v45, v47, !234 - v49 = cmp gt v48 v42, !235 - cbr v49, encode_20_abi_encode_21_abi_encode_22_abi_encode_23_abi_encode_24_block1(), encode_20_abi_encode_21_abi_encode_22_abi_encode_23_abi_encode_24_block0(v39, v42), !236 + v2933v1 = get_local __ptr { ptr, u64, u64 }, __aggr_memcpy_0 + mem_copy_val v2933v1, v2877v1 + v2412v1 = get_local __ptr { ptr, u64, u64 }, __anon_000, !225 + mem_copy_val v2412v1, v2933v1 + v519v1 = const u64 0 + v2414v1 = get_elem_ptr v2412v1, __ptr ptr, v519v1, !226 + v2415v1 = load v2414v1, !227 + v522v1 = const u64 1 + v2416v1 = get_elem_ptr v2412v1, __ptr u64, v522v1, !228 + v2417v1 = load v2416v1, !229 + v525v1 = const u64 2 + v2418v1 = get_elem_ptr v2412v1, __ptr u64, v525v1, !230 + v2419v1 = load v2418v1, !231 + v2420v1 = get_local __ptr string<3>, self_0000, !233 + v530v1 = const u64 3 + v2422v1 = add v2419v1, v530v1, !234 + v2423v1 = cmp gt v2422v1 v2417v1, !235 + cbr v2423v1, encode_20_abi_encode_21_abi_encode_22_abi_encode_23_abi_encode_24_block1(), encode_20_abi_encode_21_abi_encode_22_abi_encode_23_abi_encode_24_block0(v2415v1, v2417v1), !236 - encode_20_abi_encode_21_abi_encode_22_abi_encode_23_abi_encode_24_block0(v50: ptr, v51: u64): - v52 = get_local __ptr string<3>, __anon_10, !237 - mem_copy_val v52, v46 - v53 = add v50, v45, !238 - v54 = cast_ptr v53 to __ptr u8, !239 - mem_copy_bytes v54, v52, 3, !240 - v55 = get_local __ptr { ptr, u64, u64 }, __anon_20, !241 - v56 = const u64 0 - v57 = get_elem_ptr v55, __ptr ptr, v56, !242 - store v50 to v57, !243 - v58 = const u64 1 - v59 = get_elem_ptr v55, __ptr u64, v58, !244 - store v51 to v59, !245 - v60 = const u64 2 - v61 = get_elem_ptr v55, __ptr u64, v60, !246 - store v48 to v61, !247 - v62 = asm(buffer: v55) -> __ptr { ptr, u64, u64 } buffer { + encode_20_abi_encode_21_abi_encode_22_abi_encode_23_abi_encode_24_block0(v2303v1: ptr, v2304v1: u64): + v2430v1 = get_local __ptr string<3>, __anon_10, !237 + mem_copy_val v2430v1, v2420v1 + v2432v1 = add v2303v1, v2419v1, !238 + v2433v1 = cast_ptr v2432v1 to __ptr u8, !239 + mem_copy_bytes v2433v1, v2430v1, 3, !240 + v2436v1 = get_local __ptr { ptr, u64, u64 }, __anon_20, !241 + v550v1 = const u64 0 + v2437v1 = get_elem_ptr v2436v1, __ptr ptr, v550v1, !242 + store v2303v1 to v2437v1, !243 + v553v1 = const u64 1 + v2439v1 = get_elem_ptr v2436v1, __ptr u64, v553v1, !244 + store v2304v1 to v2439v1, !245 + v556v1 = const u64 2 + v2441v1 = get_elem_ptr v2436v1, __ptr u64, v556v1, !246 + store v2422v1 to v2441v1, !247 + v2879v1 = asm(buffer: v2436v1) -> __ptr { ptr, u64, u64 } buffer { } - v63 = get_local __ptr { ptr, u64, u64 }, __aggr_memcpy_00 - mem_copy_val v63, v62 - v64 = get_local __ptr { { ptr, u64, u64 } }, __anon_30, !249 - v65 = const u64 0 - v66 = get_elem_ptr v64, __ptr { ptr, u64, u64 }, v65, !250 - mem_copy_val v66, v63 - v67 = get_local __ptr { { ptr, u64, u64 } }, buffer__00, !252 - mem_copy_val v67, v64 - v68 = get_local __ptr { { ptr, u64, u64 } }, buffer__00, !254 - v69 = get_local __ptr { { ptr, u64, u64 } }, buffer__0, !256 - mem_copy_val v69, v68 - v70 = get_local __ptr { { string<3> }, { u64, ( u64 | u64 ) } }, self_1, !258 - v71 = const u64 1 - v72 = get_elem_ptr v70, __ptr { u64, ( u64 | u64 ) }, v71, !260 - v73 = get_local __ptr { { ptr, u64, u64 } }, buffer__0, !262 - v74 = get_local __ptr { u64, ( u64 | u64 ) }, self_10, !265 - mem_copy_val v74, v72 - v75 = get_local __ptr { { ptr, u64, u64 } }, buffer_1, !266 - mem_copy_val v75, v73 - v76 = get_local __ptr { u64, ( u64 | u64 ) }, self_10, !268 - v77 = get_local __ptr { u64, ( u64 | u64 ) }, __matched_value_10, !270 - mem_copy_val v77, v76 - v78 = get_local __ptr { u64, ( u64 | u64 ) }, __matched_value_10, !271 - v79 = const u64 0 - v80 = get_elem_ptr v78, __ptr u64, v79, !272 - v81 = load v80, !273 - v82 = const u64 0, !267 - v83 = cmp eq v81 v82, !276 - cbr v83, encode_20_abi_encode_21_abi_encode_22_abi_encode_25_block0(), encode_20_abi_encode_21_abi_encode_22_abi_encode_25_block1(), !277 + v2937v1 = get_local __ptr { ptr, u64, u64 }, __aggr_memcpy_00 + mem_copy_val v2937v1, v2879v1 + v2444v1 = get_local __ptr { { ptr, u64, u64 } }, __anon_30, !249 + v561v1 = const u64 0 + v2445v1 = get_elem_ptr v2444v1, __ptr { ptr, u64, u64 }, v561v1, !250 + mem_copy_val v2445v1, v2937v1 + v2449v1 = get_local __ptr { { ptr, u64, u64 } }, buffer__00, !252 + mem_copy_val v2449v1, v2444v1 + v2451v1 = get_local __ptr { { ptr, u64, u64 } }, buffer__00, !254 + v2454v1 = get_local __ptr { { ptr, u64, u64 } }, buffer__0, !256 + mem_copy_val v2454v1, v2451v1 + v2456v1 = get_local __ptr { { string<3> }, { u64, ( u64 | u64 ) } }, self_1, !258 + v726v1 = const u64 1 + v2457v1 = get_elem_ptr v2456v1, __ptr { u64, ( u64 | u64 ) }, v726v1, !260 + v2459v1 = get_local __ptr { { ptr, u64, u64 } }, buffer__0, !262 + v2461v1 = get_local __ptr { u64, ( u64 | u64 ) }, self_10, !265 + mem_copy_val v2461v1, v2457v1 + v2463v1 = get_local __ptr { { ptr, u64, u64 } }, buffer_1, !266 + mem_copy_val v2463v1, v2459v1 + v2465v1 = get_local __ptr { u64, ( u64 | u64 ) }, self_10, !268 + v2467v1 = get_local __ptr { u64, ( u64 | u64 ) }, __matched_value_10, !270 + mem_copy_val v2467v1, v2465v1 + v2469v1 = get_local __ptr { u64, ( u64 | u64 ) }, __matched_value_10, !271 + v598v1 = const u64 0 + v2470v1 = get_elem_ptr v2469v1, __ptr u64, v598v1, !272 + v2471v1 = load v2470v1, !273 + v601v1 = const u64 0, !267 + v2476v1 = cmp eq v2471v1 v601v1, !276 + cbr v2476v1, encode_20_abi_encode_21_abi_encode_22_abi_encode_25_block0(), encode_20_abi_encode_21_abi_encode_22_abi_encode_25_block1(), !277 encode_20_abi_encode_21_abi_encode_22_abi_encode_23_abi_encode_24_block1(): - v84 = const u64 2 - v85 = mul v42, v84, !278 - v86 = add v85, v47, !279 - v87 = asm(new_cap: v86, old_ptr: v39, len: v45) -> __ptr u8 hp, !280 { + v536v1 = const u64 2 + v2426v1 = mul v2417v1, v536v1, !278 + v2427v1 = add v2426v1, v530v1, !279 + v2428v1 = asm(new_cap: v2427v1, old_ptr: v2415v1, len: v2419v1) -> __ptr u8 hp, !280 { aloc new_cap mcp hp old_ptr len } - br encode_20_abi_encode_21_abi_encode_22_abi_encode_23_abi_encode_24_block0(v87, v86), !281 + br encode_20_abi_encode_21_abi_encode_22_abi_encode_23_abi_encode_24_block0(v2428v1, v2427v1), !281 encode_20_abi_encode_21_abi_encode_22_abi_encode_25_block0(): - v88 = get_local __ptr { u64, ( u64 | u64 ) }, __matched_value_10, !282 - v89 = const u64 1 - v90 = const u64 0 - v91 = get_elem_ptr v88, __ptr u64, v89, v90, !283 - v92 = load v91, !284 - v93 = get_local __ptr { { ptr, u64, u64 } }, buffer_1, !286 - v94 = get_local __ptr { { ptr, u64, u64 } }, __tmp_arg - mem_copy_val v94, v93 - v95 = get_local __ptr { { ptr, u64, u64 } }, __ret_val - v96 = const u64 0, !287 - v97 = call abi_encode_26(v96, v94, v95) - v98 = get_local __ptr { { ptr, u64, u64 } }, buffer__1, !289 - mem_copy_val v98, v95 - v99 = get_local __ptr { { ptr, u64, u64 } }, buffer__1, !291 - v100 = get_local __ptr { { ptr, u64, u64 } }, __tmp_arg0 - mem_copy_val v100, v99 - v101 = get_local __ptr { { ptr, u64, u64 } }, __ret_val0 - v102 = call abi_encode_26(v92, v100, v101) - v103 = get_local __ptr { { ptr, u64, u64 } }, buffer___0, !293 - mem_copy_val v103, v101 - v104 = get_local __ptr { { ptr, u64, u64 } }, buffer___0, !295 - v105 = get_local __ptr { { ptr, u64, u64 } }, __tmp_block_arg - mem_copy_val v105, v104 - br encode_20_abi_encode_21_abi_encode_22_abi_encode_25_block5(v105), !296 + v2509v1 = get_local __ptr { u64, ( u64 | u64 ) }, __matched_value_10, !282 + v604v1 = const u64 1 + v605v1 = const u64 0 + v2510v1 = get_elem_ptr v2509v1, __ptr u64, v604v1, v605v1, !283 + v2511v1 = load v2510v1, !284 + v2513v1 = get_local __ptr { { ptr, u64, u64 } }, buffer_1, !286 + v2801v1 = get_local __ptr { { ptr, u64, u64 } }, __tmp_arg + mem_copy_val v2801v1, v2513v1 + v2849v1 = get_local __ptr { { ptr, u64, u64 } }, __ret_val + v668v1 = const u64 0, !287 + v2850v1 = call abi_encode_26(v668v1, v2801v1, v2849v1) + v2516v1 = get_local __ptr { { ptr, u64, u64 } }, buffer__1, !289 + mem_copy_val v2516v1, v2849v1 + v2519v1 = get_local __ptr { { ptr, u64, u64 } }, buffer__1, !291 + v2804v1 = get_local __ptr { { ptr, u64, u64 } }, __tmp_arg0 + mem_copy_val v2804v1, v2519v1 + v2852v1 = get_local __ptr { { ptr, u64, u64 } }, __ret_val0 + v2853v1 = call abi_encode_26(v2511v1, v2804v1, v2852v1) + v2522v1 = get_local __ptr { { ptr, u64, u64 } }, buffer___0, !293 + mem_copy_val v2522v1, v2852v1 + v2524v1 = get_local __ptr { { ptr, u64, u64 } }, buffer___0, !295 + v2795v1 = get_local __ptr { { ptr, u64, u64 } }, __tmp_block_arg + mem_copy_val v2795v1, v2524v1 + br encode_20_abi_encode_21_abi_encode_22_abi_encode_25_block5(v2795v1), !296 encode_20_abi_encode_21_abi_encode_22_abi_encode_25_block1(): - v106 = get_local __ptr { u64, ( u64 | u64 ) }, __matched_value_10, !297 - v107 = const u64 0 - v108 = get_elem_ptr v106, __ptr u64, v107, !298 - v109 = load v108, !299 - v110 = const u64 1, !267 - v111 = cmp eq v109 v110, !302 - cbr v111, encode_20_abi_encode_21_abi_encode_22_abi_encode_25_block2(), encode_20_abi_encode_21_abi_encode_22_abi_encode_25_block3(), !303 + v2479v1 = get_local __ptr { u64, ( u64 | u64 ) }, __matched_value_10, !297 + v684v1 = const u64 0 + v2480v1 = get_elem_ptr v2479v1, __ptr u64, v684v1, !298 + v2481v1 = load v2480v1, !299 + v687v1 = const u64 1, !267 + v2486v1 = cmp eq v2481v1 v687v1, !302 + cbr v2486v1, encode_20_abi_encode_21_abi_encode_22_abi_encode_25_block2(), encode_20_abi_encode_21_abi_encode_22_abi_encode_25_block3(), !303 encode_20_abi_encode_21_abi_encode_22_abi_encode_25_block2(): - v112 = get_local __ptr { u64, ( u64 | u64 ) }, __matched_value_10, !304 - v113 = const u64 1 - v114 = const u64 1 - v115 = get_elem_ptr v112, __ptr u64, v113, v114, !305 - v116 = load v115, !306 - v117 = get_local __ptr { { ptr, u64, u64 } }, buffer_1, !308 - v118 = get_local __ptr { { ptr, u64, u64 } }, __tmp_arg1 - mem_copy_val v118, v117 - v119 = get_local __ptr { { ptr, u64, u64 } }, __ret_val1 - v120 = const u64 1, !309 - v121 = call abi_encode_26(v120, v118, v119) - v122 = get_local __ptr { { ptr, u64, u64 } }, buffer____, !311 - mem_copy_val v122, v119 - v123 = get_local __ptr { { ptr, u64, u64 } }, buffer____, !313 - v124 = get_local __ptr { { ptr, u64, u64 } }, __tmp_arg2 - mem_copy_val v124, v123 - v125 = get_local __ptr { { ptr, u64, u64 } }, __ret_val2 - v126 = call abi_encode_26(v116, v124, v125) - v127 = get_local __ptr { { ptr, u64, u64 } }, buffer_____, !315 - mem_copy_val v127, v125 - v128 = get_local __ptr { { ptr, u64, u64 } }, buffer_____, !317 - v129 = get_local __ptr { { ptr, u64, u64 } }, __tmp_block_arg - mem_copy_val v129, v128 - br encode_20_abi_encode_21_abi_encode_22_abi_encode_25_block5(v129), !318 + v2490v1 = get_local __ptr { u64, ( u64 | u64 ) }, __matched_value_10, !304 + v690v1 = const u64 1 + v691v1 = const u64 1 + v2491v1 = get_elem_ptr v2490v1, __ptr u64, v690v1, v691v1, !305 + v2492v1 = load v2491v1, !306 + v2494v1 = get_local __ptr { { ptr, u64, u64 } }, buffer_1, !308 + v2807v1 = get_local __ptr { { ptr, u64, u64 } }, __tmp_arg1 + mem_copy_val v2807v1, v2494v1 + v2855v1 = get_local __ptr { { ptr, u64, u64 } }, __ret_val1 + v696v1 = const u64 1, !309 + v2856v1 = call abi_encode_26(v696v1, v2807v1, v2855v1) + v2497v1 = get_local __ptr { { ptr, u64, u64 } }, buffer____, !311 + mem_copy_val v2497v1, v2855v1 + v2500v1 = get_local __ptr { { ptr, u64, u64 } }, buffer____, !313 + v2810v1 = get_local __ptr { { ptr, u64, u64 } }, __tmp_arg2 + mem_copy_val v2810v1, v2500v1 + v2858v1 = get_local __ptr { { ptr, u64, u64 } }, __ret_val2 + v2859v1 = call abi_encode_26(v2492v1, v2810v1, v2858v1) + v2503v1 = get_local __ptr { { ptr, u64, u64 } }, buffer_____, !315 + mem_copy_val v2503v1, v2858v1 + v2505v1 = get_local __ptr { { ptr, u64, u64 } }, buffer_____, !317 + v2797v1 = get_local __ptr { { ptr, u64, u64 } }, __tmp_block_arg + mem_copy_val v2797v1, v2505v1 + br encode_20_abi_encode_21_abi_encode_22_abi_encode_25_block5(v2797v1), !318 encode_20_abi_encode_21_abi_encode_22_abi_encode_25_block3(): - v130 = const u64 14757395258967588866, !269 - revert v130, !319 + v711v1 = const u64 14757395258967588866, !269 + revert v711v1, !319 - encode_20_abi_encode_21_abi_encode_22_abi_encode_25_block5(v131: __ptr { { ptr, u64, u64 } }): - v132 = get_local __ptr { { ptr, u64, u64 } }, buffer______, !321 - mem_copy_val v132, v131 - v133 = get_local __ptr { { ptr, u64, u64 } }, buffer______, !323 - v134 = get_local __ptr { { ptr, u64, u64 } }, buffer___, !325 - mem_copy_val v134, v133 - v135 = get_local __ptr { { ptr, u64, u64 } }, buffer___, !327 - v136 = get_local __ptr { { ptr, u64, u64 } }, buffer__, !329 - mem_copy_val v136, v135 - v137 = const u64 1, !330 - v138 = add v11, v137, !333 - br encode_20_abi_encode_21_while(v138), !334 + encode_20_abi_encode_21_abi_encode_22_abi_encode_25_block5(v2793v1: __ptr { { ptr, u64, u64 } }): + v2527v1 = get_local __ptr { { ptr, u64, u64 } }, buffer______, !321 + mem_copy_val v2527v1, v2793v1 + v2529v1 = get_local __ptr { { ptr, u64, u64 } }, buffer______, !323 + v2532v1 = get_local __ptr { { ptr, u64, u64 } }, buffer___, !325 + mem_copy_val v2532v1, v2529v1 + v2534v1 = get_local __ptr { { ptr, u64, u64 } }, buffer___, !327 + v2537v1 = get_local __ptr { { ptr, u64, u64 } }, buffer__, !329 + mem_copy_val v2537v1, v2534v1 + v750v1 = const u64 1, !330 + v2544v1 = add v2301v1, v750v1, !333 + br encode_20_abi_encode_21_while(v2544v1), !334 encode_20_abi_encode_21_end_while(): - v139 = get_local __ptr { { ptr, u64, u64 } }, buffer__, !336 - v140 = get_local __ptr { { ptr, u64, u64 } }, buffer, !338 - mem_copy_val v140, v139 - v141 = get_local __ptr { { ptr, u64, u64 } }, buffer, !340 - v142 = get_local __ptr { { ptr, u64, u64 } }, self_3, !343 - mem_copy_val v142, v141 - v143 = get_local __ptr { { ptr, u64, u64 } }, self_3, !345 - v144 = const u64 0 - v145 = get_elem_ptr v143, __ptr { ptr, u64, u64 }, v144, !346 - v146 = asm(buffer: v145) -> __ptr { ptr, u64, u64 } buffer { + v2351v1 = get_local __ptr { { ptr, u64, u64 } }, buffer__, !336 + v2354v1 = get_local __ptr { { ptr, u64, u64 } }, buffer, !338 + mem_copy_val v2354v1, v2351v1 + v2356v1 = get_local __ptr { { ptr, u64, u64 } }, buffer, !340 + v2358v1 = get_local __ptr { { ptr, u64, u64 } }, self_3, !343 + mem_copy_val v2358v1, v2356v1 + v2360v1 = get_local __ptr { { ptr, u64, u64 } }, self_3, !345 + v793v1 = const u64 0 + v2361v1 = get_elem_ptr v2360v1, __ptr { ptr, u64, u64 }, v793v1, !346 + v2881v1 = asm(buffer: v2361v1) -> __ptr { ptr, u64, u64 } buffer { } - v147 = get_local __ptr { ptr, u64, u64 }, __aggr_memcpy_01 - mem_copy_val v147, v146 - v148 = get_local __ptr { ptr, u64, u64 }, __anon_01, !347 - mem_copy_val v148, v147 - v149 = const u64 0 - v150 = get_elem_ptr v148, __ptr ptr, v149, !348 - v151 = const u64 2 - v152 = get_elem_ptr v148, __ptr u64, v151, !349 - v153 = get_local __ptr { ptr, u64 }, __anon_100, !350 - v154 = const u64 0 - v155 = get_elem_ptr v153, __ptr ptr, v154, !351 - mem_copy_val v155, v150 - v156 = const u64 1 - v157 = get_elem_ptr v153, __ptr u64, v156, !352 - mem_copy_val v157, v152 - v158 = asm(s: v153) -> __ptr slice s { + v2960v1 = get_local __ptr { ptr, u64, u64 }, __aggr_memcpy_01 + mem_copy_val v2960v1, v2881v1 + v2364v1 = get_local __ptr { ptr, u64, u64 }, __anon_01, !347 + mem_copy_val v2364v1, v2960v1 + v799v1 = const u64 0 + v2366v1 = get_elem_ptr v2364v1, __ptr ptr, v799v1, !348 + v805v1 = const u64 2 + v2370v1 = get_elem_ptr v2364v1, __ptr u64, v805v1, !349 + v2372v1 = get_local __ptr { ptr, u64 }, __anon_100, !350 + v809v1 = const u64 0 + v2373v1 = get_elem_ptr v2372v1, __ptr ptr, v809v1, !351 + mem_copy_val v2373v1, v2366v1 + v812v1 = const u64 1 + v2375v1 = get_elem_ptr v2372v1, __ptr u64, v812v1, !352 + mem_copy_val v2375v1, v2370v1 + v2883v1 = asm(s: v2372v1) -> __ptr slice s { } - v159 = get_local __ptr slice, __aggr_memcpy_02 - mem_copy_val v159, v158 - v160 = get_local __ptr slice, __log_arg - mem_copy_val v160, v159 - v161 = const u64 3647243719605075626 - log __ptr slice v160, v161 - v162 = get_local __ptr [{ { string<3> }, { u64, ( u64 | u64 ) } }; 2], ops_, !353 - v163 = const u64 0, !354 - v164 = get_elem_ptr v162, __ptr { { string<3> }, { u64, ( u64 | u64 ) } }, v163, !355 - v165 = const u64 0 - v166 = get_elem_ptr v164, __ptr { string<3> }, v165, !356 - v167 = const u64 0 - v168 = get_elem_ptr v166, __ptr string<3>, v167, !213 - v169 = get_global __ptr string<3>, __const_global - v170 = cast_ptr v169 to ptr, !357 - v171 = get_local __ptr { ptr, u64 }, __anon_0, !357 - v172 = const u64 0 - v173 = get_elem_ptr v171, __ptr ptr, v172 - store v170 to v173, !357 - v174 = const u64 1 - v175 = get_elem_ptr v171, __ptr u64, v174 - v176 = const u64 3 - store v176 to v175, !357 - v177 = get_local __ptr slice, __anon_1, !357 - mem_copy_bytes v177, v171, 16 - v178 = get_local __ptr string<3>, __tmp_arg3 - mem_copy_val v178, v168 - v179 = get_local __ptr slice, __tmp_arg4 - mem_copy_val v179, v177 - v180 = call eq_str_3_32(v178, v179) - v181 = const bool false, !359 - v182 = cmp eq v180 v181, !365 - cbr v182, assert_29_block0(), assert_29_block1(), !366 + v2965v1 = get_local __ptr slice, __aggr_memcpy_02 + mem_copy_val v2965v1, v2883v1 + v2874v1 = get_local __ptr slice, __log_arg + mem_copy_val v2874v1, v2965v1 + v828v1 = const u64 3647243719605075626 + log __ptr slice v2874v1, v828v1 + v908v1 = get_local __ptr [{ { string<3> }, { u64, ( u64 | u64 ) } }; 2], ops_, !353 + v909v1 = const u64 0, !354 + v910v1 = get_elem_ptr v908v1, __ptr { { string<3> }, { u64, ( u64 | u64 ) } }, v909v1, !355 + v911v1 = const u64 0 + v912v1 = get_elem_ptr v910v1, __ptr { string<3> }, v911v1, !356 + v913v1 = const u64 0 + v914v1 = get_elem_ptr v912v1, __ptr string<3>, v913v1, !213 + v917v1 = get_global __ptr string<3>, __const_global + v918v1 = cast_ptr v917v1 to ptr, !357 + v920v1 = get_local __ptr { ptr, u64 }, __anon_0, !357 + v921v1 = const u64 0 + v922v1 = get_elem_ptr v920v1, __ptr ptr, v921v1 + store v918v1 to v922v1, !357 + v924v1 = const u64 1 + v925v1 = get_elem_ptr v920v1, __ptr u64, v924v1 + v919v1 = const u64 3 + store v919v1 to v925v1, !357 + v927v1 = get_local __ptr slice, __anon_1, !357 + mem_copy_bytes v927v1, v920v1, 16 + v2817v1 = get_local __ptr string<3>, __tmp_arg3 + mem_copy_val v2817v1, v914v1 + v2819v1 = get_local __ptr slice, __tmp_arg4 + mem_copy_val v2819v1, v927v1 + v2821v1 = call eq_str_3_32(v2817v1, v2819v1) + v838v1 = const bool false, !359 + v931v3 = cmp eq v2821v1 v838v1, !365 + cbr v931v3, assert_29_block0(), assert_29_block1(), !366 assert_29_block0(): - v183 = const u64 18446744073709486084 - revert v183, !371 + v1107v1 = const u64 18446744073709486084 + revert v1107v1, !371 assert_29_block1(): - v184 = get_local __ptr [{ { string<3> }, { u64, ( u64 | u64 ) } }; 2], ops_, !372 - v185 = const u64 0, !373 - v186 = get_elem_ptr v184, __ptr { { string<3> }, { u64, ( u64 | u64 ) } }, v185, !374 - v187 = const u64 1 - v188 = get_elem_ptr v186, __ptr { u64, ( u64 | u64 ) }, v187, !375 - v189 = get_local __ptr { u64, ( u64 | u64 ) }, __matched_value_1, !376 - mem_copy_val v189, v188 - v190 = get_local __ptr { u64, ( u64 | u64 ) }, __matched_value_1, !377 - v191 = const u64 0 - v192 = get_elem_ptr v190, __ptr u64, v191, !377 - v193 = load v192 - v194 = const u64 0, !377 - v195 = cmp eq v193 v194, !380 - cbr v195, block0(), block1(), !378 + v932v1 = get_local __ptr [{ { string<3> }, { u64, ( u64 | u64 ) } }; 2], ops_, !372 + v933v1 = const u64 0, !373 + v934v1 = get_elem_ptr v932v1, __ptr { { string<3> }, { u64, ( u64 | u64 ) } }, v933v1, !374 + v935v1 = const u64 1 + v936v1 = get_elem_ptr v934v1, __ptr { u64, ( u64 | u64 ) }, v935v1, !375 + v938v1 = get_local __ptr { u64, ( u64 | u64 ) }, __matched_value_1, !376 + mem_copy_val v938v1, v936v1 + v940v1 = get_local __ptr { u64, ( u64 | u64 ) }, __matched_value_1, !377 + v941v1 = const u64 0 + v942v1 = get_elem_ptr v940v1, __ptr u64, v941v1, !377 + v943v1 = load v942v1 + v944v1 = const u64 0, !377 + v2568v1 = cmp eq v943v1 v944v1, !380 + cbr v2568v1, block0(), block1(), !378 block0(): - v196 = get_local __ptr { u64, ( u64 | u64 ) }, __matched_value_1, !377 - v197 = const u64 1 - v198 = const u64 0 - v199 = get_elem_ptr v196, __ptr u64, v197, v198 - v200 = load v199 - v201 = const u64 1338, !381 - v202 = cmp eq v200 v201, !384 - v203 = cmp eq v202 v181, !387 - cbr v203, assert_29_block015(), assert_29_block116(), !388 + v946v1 = get_local __ptr { u64, ( u64 | u64 ) }, __matched_value_1, !377 + v947v1 = const u64 1 + v948v1 = const u64 0 + v949v1 = get_elem_ptr v946v1, __ptr u64, v947v1, v948v1 + v950v1 = load v949v1 + v961v1 = const u64 1338, !381 + v2577v1 = cmp eq v950v1 v961v1, !384 + v963v3 = cmp eq v2577v1 v838v1, !387 + cbr v963v3, assert_29_block015(), assert_29_block116(), !388 assert_29_block015(): - revert v183, !389 + revert v1107v1, !389 assert_29_block116(): - v204 = get_local __ptr [{ { string<3> }, { u64, ( u64 | u64 ) } }; 2], ops_, !390 - v205 = const u64 1, !391 - v206 = get_elem_ptr v204, __ptr { { string<3> }, { u64, ( u64 | u64 ) } }, v205, !392 - v207 = const u64 0 - v208 = get_elem_ptr v206, __ptr { string<3> }, v207, !393 - v209 = const u64 0 - v210 = get_elem_ptr v208, __ptr string<3>, v209, !213 - v211 = get_global __ptr string<3>, __const_global0 - v212 = cast_ptr v211 to ptr, !394 - v213 = get_local __ptr { ptr, u64 }, __anon_2, !394 - v214 = const u64 0 - v215 = get_elem_ptr v213, __ptr ptr, v214 - store v212 to v215, !394 - v216 = const u64 1 - v217 = get_elem_ptr v213, __ptr u64, v216 - v218 = const u64 3 - store v218 to v217, !394 - v219 = get_local __ptr slice, __anon_3, !394 - mem_copy_bytes v219, v213, 16 - v220 = get_local __ptr string<3>, __tmp_arg5 - mem_copy_val v220, v210 - v221 = get_local __ptr slice, __tmp_arg6 - mem_copy_val v221, v219 - v222 = call eq_str_3_32(v220, v221) - v223 = cmp eq v222 v181, !397 - cbr v223, assert_29_block018(), assert_29_block119(), !398 + v964v1 = get_local __ptr [{ { string<3> }, { u64, ( u64 | u64 ) } }; 2], ops_, !390 + v965v1 = const u64 1, !391 + v966v1 = get_elem_ptr v964v1, __ptr { { string<3> }, { u64, ( u64 | u64 ) } }, v965v1, !392 + v967v1 = const u64 0 + v968v1 = get_elem_ptr v966v1, __ptr { string<3> }, v967v1, !393 + v969v1 = const u64 0 + v970v1 = get_elem_ptr v968v1, __ptr string<3>, v969v1, !213 + v973v1 = get_global __ptr string<3>, __const_global0 + v974v1 = cast_ptr v973v1 to ptr, !394 + v976v1 = get_local __ptr { ptr, u64 }, __anon_2, !394 + v977v1 = const u64 0 + v978v1 = get_elem_ptr v976v1, __ptr ptr, v977v1 + store v974v1 to v978v1, !394 + v980v1 = const u64 1 + v981v1 = get_elem_ptr v976v1, __ptr u64, v980v1 + v975v1 = const u64 3 + store v975v1 to v981v1, !394 + v983v1 = get_local __ptr slice, __anon_3, !394 + mem_copy_bytes v983v1, v976v1, 16 + v2822v1 = get_local __ptr string<3>, __tmp_arg5 + mem_copy_val v2822v1, v970v1 + v2824v1 = get_local __ptr slice, __tmp_arg6 + mem_copy_val v2824v1, v983v1 + v2826v1 = call eq_str_3_32(v2822v1, v2824v1) + v987v3 = cmp eq v2826v1 v838v1, !397 + cbr v987v3, assert_29_block018(), assert_29_block119(), !398 assert_29_block018(): - revert v183, !399 + revert v1107v1, !399 assert_29_block119(): - v224 = get_local __ptr [{ { string<3> }, { u64, ( u64 | u64 ) } }; 2], ops_, !400 - v225 = const u64 1, !401 - v226 = get_elem_ptr v224, __ptr { { string<3> }, { u64, ( u64 | u64 ) } }, v225, !402 - v227 = const u64 1 - v228 = get_elem_ptr v226, __ptr { u64, ( u64 | u64 ) }, v227, !403 - v229 = get_local __ptr { u64, ( u64 | u64 ) }, __matched_value_2, !404 - mem_copy_val v229, v228 - v230 = get_local __ptr { u64, ( u64 | u64 ) }, __matched_value_2, !405 - v231 = const u64 0 - v232 = get_elem_ptr v230, __ptr u64, v231, !405 - v233 = load v232 - v234 = const u64 1, !405 - v235 = cmp eq v233 v234, !408 - cbr v235, block3(), block4(), !406 + v988v1 = get_local __ptr [{ { string<3> }, { u64, ( u64 | u64 ) } }; 2], ops_, !400 + v989v1 = const u64 1, !401 + v990v1 = get_elem_ptr v988v1, __ptr { { string<3> }, { u64, ( u64 | u64 ) } }, v989v1, !402 + v991v1 = const u64 1 + v992v1 = get_elem_ptr v990v1, __ptr { u64, ( u64 | u64 ) }, v991v1, !403 + v994v1 = get_local __ptr { u64, ( u64 | u64 ) }, __matched_value_2, !404 + mem_copy_val v994v1, v992v1 + v996v1 = get_local __ptr { u64, ( u64 | u64 ) }, __matched_value_2, !405 + v997v1 = const u64 0 + v998v1 = get_elem_ptr v996v1, __ptr u64, v997v1, !405 + v999v1 = load v998v1 + v1000v1 = const u64 1, !405 + v2583v1 = cmp eq v999v1 v1000v1, !408 + cbr v2583v1, block3(), block4(), !406 block1(): - v236 = const u64 1, !409 - revert v236, !412 + v955v1 = const u64 1, !409 + revert v955v1, !412 block3(): - v237 = get_local __ptr { u64, ( u64 | u64 ) }, __matched_value_2, !405 - v238 = const u64 1 - v239 = const u64 1 - v240 = get_elem_ptr v237, __ptr u64, v238, v239 - v241 = load v240 - v242 = const u64 1, !413 - v243 = cmp eq v241 v242, !416 - v244 = cmp eq v243 v181, !419 - cbr v244, assert_29_block021(), assert_29_block122(), !420 + v1002v1 = get_local __ptr { u64, ( u64 | u64 ) }, __matched_value_2, !405 + v1003v1 = const u64 1 + v1004v1 = const u64 1 + v1005v1 = get_elem_ptr v1002v1, __ptr u64, v1003v1, v1004v1 + v1006v1 = load v1005v1 + v1017v1 = const u64 1, !413 + v2592v1 = cmp eq v1006v1 v1017v1, !416 + v1019v3 = cmp eq v2592v1 v838v1, !419 + cbr v1019v3, assert_29_block021(), assert_29_block122(), !420 assert_29_block021(): - revert v183, !421 + revert v1107v1, !421 assert_29_block122(): - v245 = get_local __ptr { u64 }, __anon_4, !422 - v246 = const u64 0 - v247 = get_elem_ptr v245, __ptr u64, v246 - v248 = const u64 1, !423 - store v248 to v247, !422 - mem_copy_val __ret_value, v245 - v249 = const unit () - ret () v249 + v1021v1 = get_local __ptr { u64 }, __anon_4, !422 + v1022v1 = const u64 0 + v1023v1 = get_elem_ptr v1021v1, __ptr u64, v1022v1 + v1020v1 = const u64 1, !423 + store v1020v1 to v1023v1, !422 + mem_copy_val __ret_value, v1021v1 + v2840v1 = const unit () + ret () v2840v1 block4(): - v250 = const u64 2, !424 - revert v250, !427 + v1011v1 = const u64 2, !424 + revert v1011v1, !427 } pub fn abi_encode_26(self !428: u64, buffer: __ptr { { ptr, u64, u64 } }, __ret_value: __ptr { { ptr, u64, u64 } }) -> (), !431 { @@ -685,66 +685,66 @@ script { local { { ptr, u64, u64 } } buffer_ entry(self: u64, buffer: __ptr { { ptr, u64, u64 } }, __ret_value: __ptr { { ptr, u64, u64 } }): - v0 = get_local __ptr { { ptr, u64, u64 } }, buffer_ - mem_copy_val v0, buffer - v1 = get_local __ptr { { ptr, u64, u64 } }, buffer_, !432 - v2 = const u64 0 - v3 = get_elem_ptr v1, __ptr { ptr, u64, u64 }, v2, !223 - v4 = asm(buffer: v3) -> __ptr { ptr, u64, u64 } buffer { + v614v1 = get_local __ptr { { ptr, u64, u64 } }, buffer_ + mem_copy_val v614v1, buffer + v616v1 = get_local __ptr { { ptr, u64, u64 } }, buffer_, !432 + v617v1 = const u64 0 + v618v1 = get_elem_ptr v616v1, __ptr { ptr, u64, u64 }, v617v1, !223 + v2885v1 = asm(buffer: v618v1) -> __ptr { ptr, u64, u64 } buffer { } - v5 = get_local __ptr { ptr, u64, u64 }, __aggr_memcpy_0 - mem_copy_val v5, v4 - v6 = get_local __ptr { ptr, u64, u64 }, __anon_0 - mem_copy_val v6, v5 - v7 = const u64 0 - v8 = get_elem_ptr v6, __ptr ptr, v7 - v9 = load v8 - v10 = const u64 1 - v11 = get_elem_ptr v6, __ptr u64, v10 - v12 = load v11 - v13 = const u64 2 - v14 = get_elem_ptr v6, __ptr u64, v13 - v15 = load v14 - v16 = const u64 8 - v17 = add v15, v16 - v18 = cmp gt v17 v12 - cbr v18, block1(), block0(v9, v12) + v2976v1 = get_local __ptr { ptr, u64, u64 }, __aggr_memcpy_0 + mem_copy_val v2976v1, v2885v1 + v621v1 = get_local __ptr { ptr, u64, u64 }, __anon_0 + mem_copy_val v621v1, v2976v1 + v623v1 = const u64 0 + v624v1 = get_elem_ptr v621v1, __ptr ptr, v623v1 + v625v1 = load v624v1 + v626v1 = const u64 1 + v627v1 = get_elem_ptr v621v1, __ptr u64, v626v1 + v628v1 = load v627v1 + v629v1 = const u64 2 + v630v1 = get_elem_ptr v621v1, __ptr u64, v629v1 + v631v1 = load v630v1 + v634v1 = const u64 8 + v637v1 = add v631v1, v634v1 + v638v1 = cmp gt v637v1 v628v1 + cbr v638v1, block1(), block0(v625v1, v628v1) - block0(v19: ptr, v20: u64): - v21 = add v19, v15 - v22 = cast_ptr v21 to __ptr u64 - store self to v22 - v23 = get_local __ptr { ptr, u64, u64 }, __anon_1 - v24 = const u64 0 - v25 = get_elem_ptr v23, __ptr ptr, v24 - store v19 to v25 - v26 = const u64 1 - v27 = get_elem_ptr v23, __ptr u64, v26 - store v20 to v27 - v28 = const u64 2 - v29 = get_elem_ptr v23, __ptr u64, v28 - store v17 to v29 - v30 = asm(buffer: v23) -> __ptr { ptr, u64, u64 } buffer { + block0(v635v1: ptr, v636v1: u64): + v646v1 = add v635v1, v631v1 + v647v1 = cast_ptr v646v1 to __ptr u64 + store self to v647v1 + v651v1 = get_local __ptr { ptr, u64, u64 }, __anon_1 + v652v1 = const u64 0 + v653v1 = get_elem_ptr v651v1, __ptr ptr, v652v1 + store v635v1 to v653v1 + v655v1 = const u64 1 + v656v1 = get_elem_ptr v651v1, __ptr u64, v655v1 + store v636v1 to v656v1 + v658v1 = const u64 2 + v659v1 = get_elem_ptr v651v1, __ptr u64, v658v1 + store v637v1 to v659v1 + v2887v1 = asm(buffer: v651v1) -> __ptr { ptr, u64, u64 } buffer { } - v31 = get_local __ptr { ptr, u64, u64 }, __aggr_memcpy_00 - mem_copy_val v31, v30 - v32 = get_local __ptr { { ptr, u64, u64 } }, __anon_2, !433 - v33 = const u64 0 - v34 = get_elem_ptr v32, __ptr { ptr, u64, u64 }, v33 - mem_copy_val v34, v31 - mem_copy_val __ret_value, v32 - v35 = const unit () - ret () v35 + v2979v1 = get_local __ptr { ptr, u64, u64 }, __aggr_memcpy_00 + mem_copy_val v2979v1, v2887v1 + v662v1 = get_local __ptr { { ptr, u64, u64 } }, __anon_2, !433 + v663v1 = const u64 0 + v664v1 = get_elem_ptr v662v1, __ptr { ptr, u64, u64 }, v663v1 + mem_copy_val v664v1, v2979v1 + mem_copy_val __ret_value, v662v1 + v2847v1 = const unit () + ret () v2847v1 block1(): - v36 = const u64 2 - v37 = mul v12, v36 - v38 = add v37, v16 - v39 = asm(new_cap: v38, old_ptr: v9, len: v15) -> __ptr u8 hp { + v640v1 = const u64 2 + v641v1 = mul v628v1, v640v1 + v642v1 = add v641v1, v634v1 + v643v1 = asm(new_cap: v642v1, old_ptr: v625v1, len: v631v1) -> __ptr u8 hp { aloc new_cap mcp hp old_ptr len } - br block0(v39, v38) + br block0(v643v1, v642v1) } pub fn new_27(__ret_value: __ptr { { ptr, u64, u64 } }) -> (), !436 { @@ -753,32 +753,32 @@ script { local { { ptr, u64, u64 } } __anon_1 entry(__ret_value: __ptr { { ptr, u64, u64 } }): - v0 = const u64 1024 - v1 = asm(cap: v0) -> ptr hp { + v765v1 = const u64 1024 + v766v1 = asm(cap: v765v1) -> ptr hp { aloc cap } - v2 = get_local __ptr { ptr, u64, u64 }, __anon_0 - v3 = const u64 0 - v4 = get_elem_ptr v2, __ptr ptr, v3 - store v1 to v4 - v5 = const u64 1 - v6 = get_elem_ptr v2, __ptr u64, v5 - store v0 to v6 - v7 = const u64 2 - v8 = get_elem_ptr v2, __ptr u64, v7 - v9 = const u64 0 - store v9 to v8 - v10 = asm(buffer: v2) -> __ptr { ptr, u64, u64 } buffer { + v768v1 = get_local __ptr { ptr, u64, u64 }, __anon_0 + v769v1 = const u64 0 + v770v1 = get_elem_ptr v768v1, __ptr ptr, v769v1 + store v766v1 to v770v1 + v772v1 = const u64 1 + v773v1 = get_elem_ptr v768v1, __ptr u64, v772v1 + store v765v1 to v773v1 + v775v1 = const u64 2 + v776v1 = get_elem_ptr v768v1, __ptr u64, v775v1 + v767v1 = const u64 0 + store v767v1 to v776v1 + v2889v1 = asm(buffer: v768v1) -> __ptr { ptr, u64, u64 } buffer { } - v11 = get_local __ptr { ptr, u64, u64 }, __aggr_memcpy_0 - mem_copy_val v11, v10 - v12 = get_local __ptr { { ptr, u64, u64 } }, __anon_1, !437 - v13 = const u64 0 - v14 = get_elem_ptr v12, __ptr { ptr, u64, u64 }, v13 - mem_copy_val v14, v11 - mem_copy_val __ret_value, v12 - v15 = const unit () - ret () v15 + v2983v1 = get_local __ptr { ptr, u64, u64 }, __aggr_memcpy_0 + mem_copy_val v2983v1, v2889v1 + v779v1 = get_local __ptr { { ptr, u64, u64 } }, __anon_1, !437 + v780v1 = const u64 0 + v781v1 = get_elem_ptr v779v1, __ptr { ptr, u64, u64 }, v780v1 + mem_copy_val v781v1, v2983v1 + mem_copy_val __ret_value, v779v1 + v2863v1 = const unit () + ret () v2863v1 } fn eq_str_3_32(a: __ptr string<3>, b: __ptr slice) -> bool, !440 { @@ -787,36 +787,36 @@ script { local slice self_ entry(a: __ptr string<3>, b: __ptr slice): - v0 = get_local __ptr string<3>, a_ - mem_copy_val v0, a - v1 = get_local __ptr slice, self_, !443 - mem_copy_val v1, b - v2 = get_local __ptr slice, self_, !446 - v3 = asm(s: v2) -> __ptr { ptr, u64 } s { + v865v1 = get_local __ptr string<3>, a_ + mem_copy_val v865v1, a + v898v3 = get_local __ptr slice, self_, !443 + mem_copy_val v898v3, b + v2274v1 = get_local __ptr slice, self_, !446 + v2891v1 = asm(s: v2274v1) -> __ptr { ptr, u64 } s { } - v4 = const u64 0 - v5 = get_elem_ptr v3, __ptr ptr, v4 - v6 = load v5 - v7 = const u64 1 - v8 = get_elem_ptr v3, __ptr u64, v7 - v9 = load v8 - v10 = get_local __ptr { ptr, u64 }, __tuple_1_, !448 - v11 = const u64 0 - v12 = get_elem_ptr v10, __ptr ptr, v11 - store v6 to v12 - v13 = const u64 1 - v14 = get_elem_ptr v10, __ptr u64, v13 - store v9 to v14 - v15 = get_local __ptr { ptr, u64 }, __tuple_1_, !449 - v16 = const u64 0 - v17 = get_elem_ptr v15, __ptr ptr, v16, !450 - v18 = load v17, !443 - v19 = get_local __ptr string<3>, a_, !451 - v20 = const u64 3, !452 - v21 = asm(a: v19, b: v18, len: v20, r) -> bool r, !453 { + v2993v1 = const u64 0 + v2994v1 = get_elem_ptr v2891v1, __ptr ptr, v2993v1 + v2995v1 = load v2994v1 + v2996v1 = const u64 1 + v2997v1 = get_elem_ptr v2891v1, __ptr u64, v2996v1 + v2998v1 = load v2997v1 + v2281v1 = get_local __ptr { ptr, u64 }, __tuple_1_, !448 + v3015v1 = const u64 0 + v3016v1 = get_elem_ptr v2281v1, __ptr ptr, v3015v1 + store v2995v1 to v3016v1 + v3018v1 = const u64 1 + v3019v1 = get_elem_ptr v2281v1, __ptr u64, v3018v1 + store v2998v1 to v3019v1 + v2283v1 = get_local __ptr { ptr, u64 }, __tuple_1_, !449 + v882v1 = const u64 0 + v2284v1 = get_elem_ptr v2283v1, __ptr ptr, v882v1, !450 + v2285v1 = load v2284v1, !443 + v901v1 = get_local __ptr string<3>, a_, !451 + v905v1 = const u64 3, !452 + v906v1 = asm(a: v901v1, b: v2285v1, len: v905v1, r) -> bool r, !453 { meq r a b len, !454 } - ret bool v21 + ret bool v906v1 } } diff --git a/test/src/e2e_vm_tests/test_programs/should_pass/language/panic_expression/panic_const_eval_string_slices_not_in_bytecode/snapshot.toml b/test/src/e2e_vm_tests/test_programs/should_pass/language/panic_expression/panic_const_eval_string_slices_not_in_bytecode/snapshot.toml index 0461c74ccf0..a7fc29a76c6 100644 --- a/test/src/e2e_vm_tests/test_programs/should_pass/language/panic_expression/panic_const_eval_string_slices_not_in_bytecode/snapshot.toml +++ b/test/src/e2e_vm_tests/test_programs/should_pass/language/panic_expression/panic_const_eval_string_slices_not_in_bytecode/snapshot.toml @@ -1,3 +1,3 @@ cmds = [ - "forc build --path {root} --ir initial | regex ' (v1 = call call|v0 = const|v1 = const|v2 = const|v3 = const|v2 = and|v4 = or|revert)'" + "forc build --path {root} --ir initial | regex ' (v[0-9a-zA-Z_]+ = call call|v[0-9a-zA-Z_]+ = const|v[0-9a-zA-Z_]+ = and|v[0-9a-zA-Z_]+ = or|revert)'" ] diff --git a/test/src/e2e_vm_tests/test_programs/should_pass/language/panic_expression/panic_const_eval_string_slices_not_in_bytecode/stdout.snap b/test/src/e2e_vm_tests/test_programs/should_pass/language/panic_expression/panic_const_eval_string_slices_not_in_bytecode/stdout.snap index d277d768682..e052aea4d69 100644 --- a/test/src/e2e_vm_tests/test_programs/should_pass/language/panic_expression/panic_const_eval_string_slices_not_in_bytecode/stdout.snap +++ b/test/src/e2e_vm_tests/test_programs/should_pass/language/panic_expression/panic_const_eval_string_slices_not_in_bytecode/stdout.snap @@ -1,15 +1,15 @@ --- source: test/src/snapshot/mod.rs --- -> forc build --path test/src/e2e_vm_tests/test_programs/should_pass/language/panic_expression/panic_const_eval_string_slices_not_in_bytecode --ir initial | regex ' (v1 = call call|v0 = const|v1 = const|v2 = const|v3 = const|v2 = and|v4 = or|revert)' - v2 = const u64 0, !8 - v3 = const u64 0, !9 - v0 = const u64 1 - v1 = call call_return_const_str_0_1(v0), !17 - v2 = const u64 9259400833873739776 - revert v2, !18 - v1 = const u64 36028797018963967 - v2 = and __backtrace, v1, !22 - v3 = const u64 9223372036854775808 - v4 = or v3, v2, !22 - revert v4, !22 +> forc build --path test/src/e2e_vm_tests/test_programs/should_pass/language/panic_expression/panic_const_eval_string_slices_not_in_bytecode --ir initial | regex ' (v[0-9a-zA-Z_]+ = call call|v[0-9a-zA-Z_]+ = const|v[0-9a-zA-Z_]+ = and|v[0-9a-zA-Z_]+ = or|revert)' + v32v1 = const u64 0, !8 + v33v1 = const u64 0, !9 + v24v1 = const u64 1 + v25v1 = call call_return_const_str_0_1(v24v1), !17 + v26v1 = const u64 9259400833873739776 + revert v26v1, !18 + v19v1 = const u64 36028797018963967 + v20v1 = and __backtrace, v19v1, !22 + v18v1 = const u64 9223372036854775808 + v21v1 = or v18v1, v20v1, !22 + revert v21v1, !22 diff --git a/test/src/ir_generation/mod.rs b/test/src/ir_generation/mod.rs index 3dc3eca1f22..dbbbbce9a00 100644 --- a/test/src/ir_generation/mod.rs +++ b/test/src/ir_generation/mod.rs @@ -94,7 +94,7 @@ impl Checker { .then(|| { filecheck::CheckerBuilder::new() .text( - "regex: VAL=\\bv\\d+\\b\n\ + "regex: VAL=\\bv\\d+v\\d+\\b\n\ regex: ID=[_[:alpha:]][_0-9[:alpha:]]*\n\ regex: MD=!\\d+\n", ) @@ -487,9 +487,12 @@ pub(super) async fn run( let parsed_ir = sway_ir::parser::parse(&ir_output, engines.se(), experimental, backtrace) .unwrap_or_else(|e| panic!("{}: {e}\n{ir_output}", path.display())); let parsed_ir_output = sway_ir::printer::to_string(&parsed_ir); - if ir_output != parsed_ir_output { + let parsed_ir_2 = sway_ir::parser::parse(&parsed_ir_output, engines.se(), experimental, backtrace) + .unwrap_or_else(|e| panic!("{}: {e}\n{parsed_ir_output}", path.display())); + let parsed_ir_output_2 = sway_ir::printer::to_string(&parsed_ir_2); + if parsed_ir_output_2 != parsed_ir_output { println!("Deserialized IR:"); - tracing::error!("{}", prettydiff::diff_lines(&ir_output, &parsed_ir_output)); + tracing::error!("{}", prettydiff::diff_lines(&parsed_ir_output, &parsed_ir_output_2)); panic!("{} failed IR (de)serialization.", path.display()); } diff --git a/test/src/ir_generation/tests/addr_of.sw b/test/src/ir_generation/tests/addr_of.sw index d01de992452..c299c6d8b62 100644 --- a/test/src/ir_generation/tests/addr_of.sw +++ b/test/src/ir_generation/tests/addr_of.sw @@ -5,10 +5,10 @@ fn main() { let _ = __addr_of(a); } -// check: v0 = get_local __ptr b256, a, -// check: v1 = const b256 0x0000000000000000000000000000000000000000000000000000000000000001, -// check: store v1 to v0, -// check: v2 = get_local __ptr b256, a, -// check: v3 = cast_ptr v2 to ptr, -// check: v4 = get_local __ptr ptr, _, -// check: store v3 to v4, +// check: $(v0=$VAL) = get_local __ptr b256, a, +// check: $(v1=$VAL) = const b256 0x0000000000000000000000000000000000000000000000000000000000000001, +// check: store $v1 to $v0, +// check: $(v2=$VAL) = get_local __ptr b256, a, +// check: $(v3=$VAL) = cast_ptr $v2 to ptr, +// check: $(v4=$VAL) = get_local __ptr ptr, _, +// check: store $v3 to $v4, diff --git a/test/src/ir_generation/tests/array_simple.sw b/test/src/ir_generation/tests/array_simple.sw index 00892e4bc7f..2c50780f64e 100644 --- a/test/src/ir_generation/tests/array_simple.sw +++ b/test/src/ir_generation/tests/array_simple.sw @@ -15,6 +15,6 @@ fn main() -> bool { // check: $(var_val=$VAL) = get_local __ptr [bool; 3], a // check: $(idx_val=$VAL) = const u64 1 -// check: $(ptr_val=$VAL) = get_elem_ptr v12, __ptr bool +// check: $(ptr_val=$VAL) = get_elem_ptr $var_val, __ptr bool // check: $(ret_val=$VAL) = load $ptr_val // check: ret bool $ret_val diff --git a/test/src/ir_generation/tests/enum_struct.sw b/test/src/ir_generation/tests/enum_struct.sw index 7a60b5f3a60..463e142b1d7 100644 --- a/test/src/ir_generation/tests/enum_struct.sw +++ b/test/src/ir_generation/tests/enum_struct.sw @@ -26,7 +26,7 @@ fn main() { // check: $(idx_0=$VAL) = const u64 0 // check: $(tag_ptr=$VAL) = get_elem_ptr $temp_ptr_0, __ptr u64, $idx_0 // check: $(tag_1=$VAL) = const u64 1 -// check: store v3 to $tag_ptr +// check: store $tag_1 to $tag_ptr // check: $(temp_ptr_1=$VAL) = get_local __ptr { b256, bool, u64 }, $(=__anon_\d+) // check: $(idx_0=$VAL) = const u64 0 diff --git a/test/src/ir_generation/tests/global_constants_usage.sw b/test/src/ir_generation/tests/global_constants_usage.sw index 93c75aaa773..d54b0c35fd8 100644 --- a/test/src/ir_generation/tests/global_constants_usage.sw +++ b/test/src/ir_generation/tests/global_constants_usage.sw @@ -17,7 +17,7 @@ fn poke(_t: T) { } // ::check-ir-optimized:: // pass: o1 -// check: v0 = get_global __ptr b256, test_lib::ADDRESS -// nextln: v1 = get_local __ptr b256, __tmp_arg -// nextln: mem_copy_val v1, v0 -// nextln: v2 = call poke_0(v1) +// check: $(v0=$VAL) = get_global __ptr b256, test_lib::ADDRESS +// nextln: $(v1=$VAL) = get_local __ptr b256, __tmp_arg +// nextln: mem_copy_val $v1, $v0 +// nextln: $(v2=$VAL) = call poke_0($v1) diff --git a/test/src/ir_generation/tests/shadowed_locals.sw b/test/src/ir_generation/tests/shadowed_locals.sw index 09abf8524c3..550284e7b53 100644 --- a/test/src/ir_generation/tests/shadowed_locals.sw +++ b/test/src/ir_generation/tests/shadowed_locals.sw @@ -22,12 +22,13 @@ fn main() -> u64 { // check: $ID($(int_val=$VAL): // check: $(a__var=$VAL) = get_local __ptr u64, a_ // check: store $int_val to $a__var - +// check: $(a_ptr=$VAL) = get_local __ptr u64, a_ +// check: $(a_loaded=$VAL) = load $a_ptr // check: $(struct_undef=$VAL) = get_local __ptr { u64 }, $ID // check: $(idx_val=$VAL) = const u64 0 // check: $(a_ptr=$VAL) = get_elem_ptr $struct_undef, __ptr u64, $idx_val -// check: store v9 to $a_ptr +// check: store $a_loaded to $a_ptr // check: $(struct_set=$VAL) = load $struct_undef // check: $(a___var=$VAL) = get_local __ptr { u64 }, a__ diff --git a/test/src/ir_generation/tests/size_of_val.sw b/test/src/ir_generation/tests/size_of_val.sw index 03a58c5199a..c2a1af3e195 100644 --- a/test/src/ir_generation/tests/size_of_val.sw +++ b/test/src/ir_generation/tests/size_of_val.sw @@ -4,6 +4,6 @@ fn main() { let _ = __size_of_val(1); } -// check: v0 = get_local __ptr u64, _, -// check: v1 = const u64 8 -// check: store v1 to v0, +// check: $(v0=$VAL) = get_local __ptr u64, _, +// check: $(v1=$VAL) = const u64 8 +// check: store $v1 to $v0, diff --git a/test/src/ir_generation/tests/state_load_word.sw b/test/src/ir_generation/tests/state_load_word.sw index b06cfc62b66..24493346abc 100644 --- a/test/src/ir_generation/tests/state_load_word.sw +++ b/test/src/ir_generation/tests/state_load_word.sw @@ -6,9 +6,9 @@ fn main() { ); } -// check: v0 = get_local __ptr b256, key_for_storage, -// check: v1 = const b256 0x0000000000000000000000000000000000000000000000000000000000000001, -// check: store v1 to v0, -// check: v2 = state_load_word key v0, -// check: v3 = get_local __ptr u64, _, -// check: store v2 to v3, +// check: $(v0=$VAL) = get_local __ptr b256, key_for_storage, +// check: $(v1=$VAL) = const b256 0x0000000000000000000000000000000000000000000000000000000000000001, +// check: store $v1 to $v0, +// check: $(v2=$VAL) = state_load_word key $v0, +// check: $(v3=$VAL) = get_local __ptr u64, _, +// check: store $v2 to $v3, diff --git a/test/src/ir_generation/tests/u256.sw b/test/src/ir_generation/tests/u256.sw index 78286da5a1c..d7c847fc5e7 100644 --- a/test/src/ir_generation/tests/u256.sw +++ b/test/src/ir_generation/tests/u256.sw @@ -7,6 +7,7 @@ fn main() -> u256 { // ::check-ir:: // check: entry fn main() -> u256 -// check: v0 = const u256 0x0000000000000000000000000000000000000000000000000000000000000001, -// check: v1 = const u256 0x0000000000000000000000000000000000000000000000000000000000000002, -// check: ret u256 v2 \ No newline at end of file +// check: $(v0=$VAL) = const u256 0x0000000000000000000000000000000000000000000000000000000000000001, +// check: $(v1=$VAL) = const u256 0x0000000000000000000000000000000000000000000000000000000000000002, +// check: $(v2=$VAL) = call add_0($v0, $v1) +// check: ret u256 $v2 \ No newline at end of file