summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/s2wasm.h6
-rw-r--r--test/dot_s/alias.wast4
-rw-r--r--test/dot_s/asm_const.wast6
-rw-r--r--test/dot_s/basics.wast6
-rw-r--r--test/dot_s/bcp-1.wast26
-rw-r--r--test/dot_s/exit.wast6
-rw-r--r--test/dot_s/fix_em_ehsjlj_names.wast14
-rw-r--r--test/dot_s/indirect-import.wast86
-rw-r--r--test/dot_s/local_align.wast6
-rw-r--r--test/dot_s/memops.wast54
-rw-r--r--test/dot_s/symbolic-offset.wast8
-rw-r--r--test/dot_s/text_before_type.wast4
-rw-r--r--test/llvm_autogenerated/byval.wast216
-rw-r--r--test/llvm_autogenerated/call.wast22
-rw-r--r--test/llvm_autogenerated/cfg-stackify.wast540
-rw-r--r--test/llvm_autogenerated/dead-vreg.wast8
-rw-r--r--test/llvm_autogenerated/i128.wast1382
-rw-r--r--test/llvm_autogenerated/i32-load-store-alignment.wast80
-rw-r--r--test/llvm_autogenerated/i64-load-store-alignment.wast120
-rw-r--r--test/llvm_autogenerated/irreducible-cfg.wast100
-rw-r--r--test/llvm_autogenerated/legalize.wast3176
-rw-r--r--test/llvm_autogenerated/load-store-i1.wast24
-rw-r--r--test/llvm_autogenerated/mem-intrinsics.wast42
-rw-r--r--test/llvm_autogenerated/offset.wast230
-rw-r--r--test/llvm_autogenerated/reg-stackify.wast178
-rw-r--r--test/llvm_autogenerated/return-int32.wast16
-rw-r--r--test/llvm_autogenerated/return-void.wast16
-rw-r--r--test/llvm_autogenerated/store-trunc.wast40
-rw-r--r--test/llvm_autogenerated/store.wast32
-rw-r--r--test/llvm_autogenerated/switch.wast48
-rw-r--r--test/llvm_autogenerated/unreachable.wast4
-rw-r--r--test/llvm_autogenerated/userstack.wast362
-rw-r--r--test/llvm_autogenerated/varargs.wast184
33 files changed, 3077 insertions, 3969 deletions
diff --git a/src/s2wasm.h b/src/s2wasm.h
index 5b7cd1fa4..383ff1e36 100644
--- a/src/s2wasm.h
+++ b/src/s2wasm.h
@@ -745,7 +745,11 @@ class S2WasmBuilder {
};
auto setOutput = [&](Expression* curr, Name assign) {
if (assign.isNull() || assign.str[0] == 'd') { // drop
- addToBlock(builder.makeDrop(curr));
+ auto* add = curr;
+ if (isConcreteWasmType(curr->type)) {
+ add = builder.makeDrop(curr);
+ }
+ addToBlock(add);
} else if (assign.str[0] == 'p') { // push
push(curr);
} else { // set to a local
diff --git a/test/dot_s/alias.wast b/test/dot_s/alias.wast
index af613b4ea..b9c98b661 100644
--- a/test/dot_s/alias.wast
+++ b/test/dot_s/alias.wast
@@ -21,9 +21,7 @@
)
)
(func $__needs_exit (result i32)
- (drop
- (call $__exit)
- )
+ (call $__exit)
(return
(i32.const 1)
)
diff --git a/test/dot_s/asm_const.wast b/test/dot_s/asm_const.wast
index 5e84d771e..b5d2aa949 100644
--- a/test/dot_s/asm_const.wast
+++ b/test/dot_s/asm_const.wast
@@ -6,10 +6,8 @@
(export "memory" (memory $0))
(export "main" (func $main))
(func $main (result i32)
- (drop
- (call $emscripten_asm_const_vi
- (i32.const 0)
- )
+ (call $emscripten_asm_const_vi
+ (i32.const 0)
)
(return
(i32.const 0)
diff --git a/test/dot_s/basics.wast b/test/dot_s/basics.wast
index 77c1e1ab3..cb945abba 100644
--- a/test/dot_s/basics.wast
+++ b/test/dot_s/basics.wast
@@ -13,10 +13,8 @@
(table 2 2 anyfunc)
(elem (i32.const 0) $__wasm_nullptr $main)
(func $main (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
- (drop
- (call $puts
- (i32.const 16)
- )
+ (call $puts
+ (i32.const 16)
)
(block $label$0
(block $label$1
diff --git a/test/dot_s/bcp-1.wast b/test/dot_s/bcp-1.wast
index 89fc2807f..b6223707f 100644
--- a/test/dot_s/bcp-1.wast
+++ b/test/dot_s/bcp-1.wast
@@ -287,36 +287,24 @@
(i32.const 0)
)
)
- (drop
- (call $exit
- (get_local $0)
- )
+ (call $exit
+ (get_local $0)
)
(unreachable)
)
- (drop
- (call $abort)
- )
- (unreachable)
- )
- (drop
(call $abort)
+ (unreachable)
)
- (unreachable)
- )
- (drop
(call $abort)
+ (unreachable)
)
- (unreachable)
- )
- (drop
(call $abort)
+ (unreachable)
)
- (unreachable)
- )
- (drop
(call $abort)
+ (unreachable)
)
+ (call $abort)
(unreachable)
)
(func $__wasm_nullptr (type $FUNCSIG$v)
diff --git a/test/dot_s/exit.wast b/test/dot_s/exit.wast
index a6abcbdf0..a45fb5453 100644
--- a/test/dot_s/exit.wast
+++ b/test/dot_s/exit.wast
@@ -6,10 +6,8 @@
(export "main" (func $main))
(func $main (result i32)
(local $0 i32)
- (drop
- (call $exit
- (i32.const 0)
- )
+ (call $exit
+ (i32.const 0)
)
(unreachable)
)
diff --git a/test/dot_s/fix_em_ehsjlj_names.wast b/test/dot_s/fix_em_ehsjlj_names.wast
index 912716524..2ce1603d9 100644
--- a/test/dot_s/fix_em_ehsjlj_names.wast
+++ b/test/dot_s/fix_em_ehsjlj_names.wast
@@ -37,10 +37,8 @@
(local $1 i32)
(local $2 i32)
(local $3 i32)
- (drop
- (call $invoke_v
- (i32.const 1)
- )
+ (call $invoke_v
+ (i32.const 1)
)
(drop
(call $invoke_iiii
@@ -70,11 +68,9 @@
)
)
)
- (drop
- (call $emscripten_longjmp
- (i32.const 5)
- (i32.const 6)
- )
+ (call $emscripten_longjmp
+ (i32.const 5)
+ (i32.const 6)
)
(i32.const 0)
)
diff --git a/test/dot_s/indirect-import.wast b/test/dot_s/indirect-import.wast
index ff1550a12..b93059da3 100644
--- a/test/dot_s/indirect-import.wast
+++ b/test/dot_s/indirect-import.wast
@@ -22,50 +22,36 @@
(func $bar (result i32)
(local $0 i32)
(local $1 i32)
- (drop
- (i32.store offset=4
- (i32.const 0)
- (tee_local $1
- (i32.sub
- (i32.load offset=4
- (i32.const 0)
- )
- (i32.const 32)
+ (i32.store offset=4
+ (i32.const 0)
+ (tee_local $1
+ (i32.sub
+ (i32.load offset=4
+ (i32.const 0)
)
+ (i32.const 32)
)
)
)
- (drop
- (i32.store offset=28
- (get_local $1)
- (i32.const 1)
- )
- )
- (drop
- (i32.store offset=24
- (get_local $1)
- (i32.const 2)
- )
+ (i32.store offset=28
+ (get_local $1)
+ (i32.const 1)
)
- (drop
- (call $extern_vj
- (i64.const 1)
- )
+ (i32.store offset=24
+ (get_local $1)
+ (i32.const 2)
)
- (drop
- (i32.store offset=20
- (get_local $1)
- (i32.const 3)
- )
+ (call $extern_vj
+ (i64.const 1)
)
- (drop
- (call $extern_v)
+ (i32.store offset=20
+ (get_local $1)
+ (i32.const 3)
)
- (drop
- (i32.store offset=16
- (get_local $1)
- (i32.const 4)
- )
+ (call $extern_v)
+ (i32.store offset=16
+ (get_local $1)
+ (i32.const 4)
)
(drop
(call $extern_ijidf
@@ -75,30 +61,24 @@
(f32.const 4)
)
)
- (drop
- (i32.store offset=12
- (get_local $1)
- (i32.const 5)
- )
+ (i32.store offset=12
+ (get_local $1)
+ (i32.const 5)
)
- (drop
- (i32.store offset=8
- (get_local $1)
- (i32.const 6)
- )
+ (i32.store offset=8
+ (get_local $1)
+ (i32.const 6)
)
(set_local $0
(i32.load offset=28
(get_local $1)
)
)
- (drop
- (i32.store offset=4
- (i32.const 0)
- (i32.add
- (get_local $1)
- (i32.const 32)
- )
+ (i32.store offset=4
+ (i32.const 0)
+ (i32.add
+ (get_local $1)
+ (i32.const 32)
)
)
(get_local $0)
diff --git a/test/dot_s/local_align.wast b/test/dot_s/local_align.wast
index 05363615c..5304dd5e4 100644
--- a/test/dot_s/local_align.wast
+++ b/test/dot_s/local_align.wast
@@ -5,10 +5,8 @@
(func $foo (param $0 i32)
)
(func $main (result i32)
- (drop
- (call $foo
- (i32.const 16)
- )
+ (call $foo
+ (i32.const 16)
)
(i32.const 0)
)
diff --git a/test/dot_s/memops.wast b/test/dot_s/memops.wast
index fc6d21fa8..a254e7779 100644
--- a/test/dot_s/memops.wast
+++ b/test/dot_s/memops.wast
@@ -6,16 +6,12 @@
(export "memory" (memory $0))
(export "main" (func $main))
(func $_Z6reporti (param $0 i32)
- (drop
- (i32.store
- (i32.const 8)
- (get_local $0)
- )
+ (i32.store
+ (i32.const 8)
+ (get_local $0)
)
- (drop
- (call $emscripten_asm_const_vi
- (i32.const 0)
- )
+ (call $emscripten_asm_const_vi
+ (i32.const 0)
)
(return)
)
@@ -53,11 +49,9 @@
(set_local $8
(i32.const 0)
)
- (drop
- (i32.store
- (get_local $8)
- (get_local $12)
- )
+ (i32.store
+ (get_local $8)
+ (get_local $12)
)
(set_local $1
(i32.const 0)
@@ -84,16 +78,14 @@
(get_local $10)
)
)
- (drop
- (i32.store8
- (i32.add
- (get_local $10)
- (get_local $4)
- )
- (i32.add
- (get_local $6)
- (get_local $4)
- )
+ (i32.store8
+ (i32.add
+ (get_local $10)
+ (get_local $4)
+ )
+ (i32.add
+ (get_local $6)
+ (get_local $4)
)
)
(set_local $2
@@ -190,10 +182,8 @@
)
)
)
- (drop
- (call $_Z6reporti
- (get_local $6)
- )
+ (call $_Z6reporti
+ (get_local $6)
)
(set_local $9
(i32.const 1048576)
@@ -207,11 +197,9 @@
(set_local $9
(i32.const 0)
)
- (drop
- (i32.store
- (get_local $9)
- (get_local $12)
- )
+ (i32.store
+ (get_local $9)
+ (get_local $12)
)
(return
(i32.const 0)
diff --git a/test/dot_s/symbolic-offset.wast b/test/dot_s/symbolic-offset.wast
index 462b7971a..cd2205cee 100644
--- a/test/dot_s/symbolic-offset.wast
+++ b/test/dot_s/symbolic-offset.wast
@@ -4,11 +4,9 @@
(export "memory" (memory $0))
(export "f" (func $f))
(func $f (param $0 i32) (param $1 i32)
- (drop
- (i32.store offset=16
- (get_local $0)
- (get_local $1)
- )
+ (i32.store offset=16
+ (get_local $0)
+ (get_local $1)
)
(return)
)
diff --git a/test/dot_s/text_before_type.wast b/test/dot_s/text_before_type.wast
index d80360b21..8537b83da 100644
--- a/test/dot_s/text_before_type.wast
+++ b/test/dot_s/text_before_type.wast
@@ -3,9 +3,7 @@
(export "memory" (memory $0))
(export "main" (func $main))
(func $main (result i32)
- (drop
- (call $foo)
- )
+ (call $foo)
(i32.const 0)
)
(func $foo
diff --git a/test/llvm_autogenerated/byval.wast b/test/llvm_autogenerated/byval.wast
index 9549ef683..d3673093b 100644
--- a/test/llvm_autogenerated/byval.wast
+++ b/test/llvm_autogenerated/byval.wast
@@ -21,200 +21,162 @@
(export "big_byval" (func $big_byval))
(func $byval_arg (param $0 i32)
(local $1 i32)
- (drop
- (i32.store offset=4
- (i32.const 0)
- (tee_local $1
- (i32.sub
- (i32.load offset=4
- (i32.const 0)
- )
- (i32.const 16)
+ (i32.store offset=4
+ (i32.const 0)
+ (tee_local $1
+ (i32.sub
+ (i32.load offset=4
+ (i32.const 0)
)
+ (i32.const 16)
)
)
)
- (drop
- (i32.store offset=12
- (get_local $1)
- (i32.load
- (get_local $0)
- )
+ (i32.store offset=12
+ (get_local $1)
+ (i32.load
+ (get_local $0)
)
)
- (drop
- (call $ext_byval_func
- (i32.add
- (get_local $1)
- (i32.const 12)
- )
+ (call $ext_byval_func
+ (i32.add
+ (get_local $1)
+ (i32.const 12)
)
)
- (drop
- (i32.store offset=4
- (i32.const 0)
- (i32.add
- (get_local $1)
- (i32.const 16)
- )
+ (i32.store offset=4
+ (i32.const 0)
+ (i32.add
+ (get_local $1)
+ (i32.const 16)
)
)
(return)
)
(func $byval_arg_align8 (param $0 i32)
(local $1 i32)
- (drop
- (i32.store offset=4
- (i32.const 0)
- (tee_local $1
- (i32.sub
- (i32.load offset=4
- (i32.const 0)
- )
- (i32.const 16)
+ (i32.store offset=4
+ (i32.const 0)
+ (tee_local $1
+ (i32.sub
+ (i32.load offset=4
+ (i32.const 0)
)
+ (i32.const 16)
)
)
)
- (drop
- (i32.store offset=8
- (get_local $1)
- (i32.load
- (get_local $0)
- )
+ (i32.store offset=8
+ (get_local $1)
+ (i32.load
+ (get_local $0)
)
)
- (drop
- (call $ext_byval_func_align8
- (i32.add
- (get_local $1)
- (i32.const 8)
- )
+ (call $ext_byval_func_align8
+ (i32.add
+ (get_local $1)
+ (i32.const 8)
)
)
- (drop
- (i32.store offset=4
- (i32.const 0)
- (i32.add
- (get_local $1)
- (i32.const 16)
- )
+ (i32.store offset=4
+ (i32.const 0)
+ (i32.add
+ (get_local $1)
+ (i32.const 16)
)
)
(return)
)
(func $byval_arg_double (param $0 i32)
(local $1 i32)
- (drop
- (i32.store offset=4
- (i32.const 0)
- (tee_local $1
- (i32.sub
- (i32.load offset=4
- (i32.const 0)
- )
- (i32.const 16)
+ (i32.store offset=4
+ (i32.const 0)
+ (tee_local $1
+ (i32.sub
+ (i32.load offset=4
+ (i32.const 0)
)
+ (i32.const 16)
)
)
)
- (drop
- (i64.store
+ (i64.store
+ (i32.add
+ (get_local $1)
+ (i32.const 8)
+ )
+ (i64.load
(i32.add
- (get_local $1)
+ (get_local $0)
(i32.const 8)
)
- (i64.load
- (i32.add
- (get_local $0)
- (i32.const 8)
- )
- )
)
)
- (drop
- (i64.store
- (get_local $1)
- (i64.load
- (get_local $0)
- )
+ (i64.store
+ (get_local $1)
+ (i64.load
+ (get_local $0)
)
)
- (drop
- (call $ext_byval_func_alignedstruct
- (get_local $1)
- )
+ (call $ext_byval_func_alignedstruct
+ (get_local $1)
)
- (drop
- (i32.store offset=4
- (i32.const 0)
- (i32.add
- (get_local $1)
- (i32.const 16)
- )
+ (i32.store offset=4
+ (i32.const 0)
+ (i32.add
+ (get_local $1)
+ (i32.const 16)
)
)
(return)
)
(func $byval_param (param $0 i32)
- (drop
- (call $ext_func
- (get_local $0)
- )
+ (call $ext_func
+ (get_local $0)
)
(return)
)
(func $byval_empty_caller (param $0 i32)
- (drop
- (call $ext_byval_func_empty
- (get_local $0)
- )
+ (call $ext_byval_func_empty
+ (get_local $0)
)
(return)
)
(func $byval_empty_callee (param $0 i32)
- (drop
- (call $ext_func_empty
- (get_local $0)
- )
+ (call $ext_func_empty
+ (get_local $0)
)
(return)
)
(func $big_byval (param $0 i32)
(local $1 i32)
- (drop
- (i32.store offset=4
- (i32.const 0)
- (tee_local $1
- (i32.sub
- (i32.load offset=4
- (i32.const 0)
- )
- (i32.const 131072)
- )
- )
- )
- )
- (drop
- (call $big_byval_callee
- (tee_local $0
- (call $memcpy
- (get_local $1)
- (get_local $0)
- (i32.const 131072)
+ (i32.store offset=4
+ (i32.const 0)
+ (tee_local $1
+ (i32.sub
+ (i32.load offset=4
+ (i32.const 0)
)
+ (i32.const 131072)
)
)
)
- (drop
- (i32.store offset=4
- (i32.const 0)
- (i32.add
+ (call $big_byval_callee
+ (tee_local $0
+ (call $memcpy
+ (get_local $1)
(get_local $0)
(i32.const 131072)
)
)
)
+ (i32.store offset=4
+ (i32.const 0)
+ (i32.add
+ (get_local $0)
+ (i32.const 131072)
+ )
+ )
(return)
)
)
diff --git a/test/llvm_autogenerated/call.wast b/test/llvm_autogenerated/call.wast
index 9b547f132..b597dacfd 100644
--- a/test/llvm_autogenerated/call.wast
+++ b/test/llvm_autogenerated/call.wast
@@ -53,9 +53,7 @@
)
)
(func $call_void_nullary
- (drop
- (call $void_nullary)
- )
+ (call $void_nullary)
(return)
)
(func $call_i32_unary (param $0 i32) (result i32)
@@ -74,10 +72,8 @@
)
)
(func $call_indirect_void (param $0 i32)
- (drop
- (call_indirect $FUNCSIG$v
- (get_local $0)
- )
+ (call_indirect $FUNCSIG$v
+ (get_local $0)
)
(return)
)
@@ -89,21 +85,15 @@
)
)
(func $tail_call_void_nullary
- (drop
- (call $void_nullary)
- )
+ (call $void_nullary)
(return)
)
(func $fastcc_tail_call_void_nullary
- (drop
- (call $void_nullary)
- )
+ (call $void_nullary)
(return)
)
(func $coldcc_tail_call_void_nullary
- (drop
- (call $void_nullary)
- )
+ (call $void_nullary)
(return)
)
(func $__wasm_nullptr (type $FUNCSIG$v)
diff --git a/test/llvm_autogenerated/cfg-stackify.wast b/test/llvm_autogenerated/cfg-stackify.wast
index 87d8c430d..e0decab7c 100644
--- a/test/llvm_autogenerated/cfg-stackify.wast
+++ b/test/llvm_autogenerated/cfg-stackify.wast
@@ -53,9 +53,7 @@
(i32.const 1)
)
)
- (drop
- (call $something)
- )
+ (call $something)
(br $label$0)
)
)
@@ -80,9 +78,7 @@
(i32.const 1)
)
)
- (drop
- (call $something)
- )
+ (call $something)
(br $label$0)
)
)
@@ -98,15 +94,13 @@
)
(block $label$2
(loop $label$1
- (drop
- (f64.store
- (get_local $0)
- (f64.mul
- (f64.load
- (get_local $0)
- )
- (f64.const 3.2)
+ (f64.store
+ (get_local $0)
+ (f64.mul
+ (f64.load
+ (get_local $0)
)
+ (f64.const 3.2)
)
)
(set_local $0
@@ -129,11 +123,9 @@
(return)
)
(func $doublediamond (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
- (drop
- (i32.store
- (get_local $2)
- (i32.const 0)
- )
+ (i32.store
+ (get_local $2)
+ (i32.const 0)
)
(block $label$0
(block $label$1
@@ -143,84 +135,66 @@
(get_local $0)
)
)
- (drop
- (i32.store
- (get_local $2)
- (i32.const 2)
- )
+ (i32.store
+ (get_local $2)
+ (i32.const 2)
)
(br_if $label$1
(i32.eqz
(get_local $1)
)
)
- (drop
- (i32.store
- (get_local $2)
- (i32.const 4)
- )
- )
- (br $label$0)
- )
- (drop
(i32.store
(get_local $2)
- (i32.const 1)
+ (i32.const 4)
)
+ (br $label$0)
)
- (br $label$0)
- )
- (drop
(i32.store
(get_local $2)
- (i32.const 3)
+ (i32.const 1)
)
+ (br $label$0)
)
- )
- (drop
(i32.store
(get_local $2)
- (i32.const 5)
+ (i32.const 3)
)
)
+ (i32.store
+ (get_local $2)
+ (i32.const 5)
+ )
(return
(i32.const 0)
)
)
(func $triangle (param $0 i32) (param $1 i32) (result i32)
- (drop
- (i32.store
- (get_local $0)
- (i32.const 0)
- )
+ (i32.store
+ (get_local $0)
+ (i32.const 0)
)
(block $label$0
(br_if $label$0
(get_local $1)
)
- (drop
- (i32.store
- (get_local $0)
- (i32.const 1)
- )
- )
- )
- (drop
(i32.store
(get_local $0)
- (i32.const 2)
+ (i32.const 1)
)
)
+ (i32.store
+ (get_local $0)
+ (i32.const 2)
+ )
(return
(i32.const 0)
)
)
(func $diamond (param $0 i32) (param $1 i32) (result i32)
- (drop
- (i32.store
- (get_local $0)
- (i32.const 0)
- )
+ (i32.store
+ (get_local $0)
+ (i32.const 0)
)
(block $label$0
(block $label$1
@@ -229,75 +203,59 @@
(get_local $1)
)
)
- (drop
- (i32.store
- (get_local $0)
- (i32.const 2)
- )
- )
- (br $label$0)
- )
- (drop
(i32.store
(get_local $0)
- (i32.const 1)
+ (i32.const 2)
)
+ (br $label$0)
)
- )
- (drop
(i32.store
(get_local $0)
- (i32.const 3)
+ (i32.const 1)
)
)
+ (i32.store
+ (get_local $0)
+ (i32.const 3)
+ )
(return
(i32.const 0)
)
)
(func $single_block (param $0 i32) (result i32)
- (drop
- (i32.store
- (get_local $0)
- (i32.const 0)
- )
+ (i32.store
+ (get_local $0)
+ (i32.const 0)
)
(return
(i32.const 0)
)
)
(func $minimal_loop (param $0 i32)
- (drop
- (i32.store
- (get_local $0)
- (i32.const 0)
- )
+ (i32.store
+ (get_local $0)
+ (i32.const 0)
)
(block $label$1
(loop $label$0
- (drop
- (i32.store
- (get_local $0)
- (i32.const 1)
- )
+ (i32.store
+ (get_local $0)
+ (i32.const 1)
)
(br $label$0)
)
)
)
(func $simple_loop (param $0 i32) (param $1 i32) (result i32)
- (drop
- (i32.store
- (get_local $0)
- (i32.const 0)
- )
+ (i32.store
+ (get_local $0)
+ (i32.const 0)
)
(block $label$1
(loop $label$0
- (drop
- (i32.store
- (get_local $0)
- (i32.const 1)
- )
+ (i32.store
+ (get_local $0)
+ (i32.const 1)
)
(br_if $label$0
(i32.eqz
@@ -306,67 +264,53 @@
)
)
)
- (drop
- (i32.store
- (get_local $0)
- (i32.const 2)
- )
+ (i32.store
+ (get_local $0)
+ (i32.const 2)
)
(return
(i32.const 0)
)
)
(func $doubletriangle (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
- (drop
- (i32.store
- (get_local $2)
- (i32.const 0)
- )
+ (i32.store
+ (get_local $2)
+ (i32.const 0)
)
(block $label$0
(br_if $label$0
(get_local $0)
)
- (drop
- (i32.store
- (get_local $2)
- (i32.const 2)
- )
+ (i32.store
+ (get_local $2)
+ (i32.const 2)
)
(block $label$1
(br_if $label$1
(get_local $1)
)
- (drop
- (i32.store
- (get_local $2)
- (i32.const 3)
- )
- )
- )
- (drop
(i32.store
(get_local $2)
- (i32.const 4)
+ (i32.const 3)
)
)
- )
- (drop
(i32.store
(get_local $2)
- (i32.const 5)
+ (i32.const 4)
)
)
+ (i32.store
+ (get_local $2)
+ (i32.const 5)
+ )
(return
(i32.const 0)
)
)
(func $ifelse_earlyexits (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
- (drop
- (i32.store
- (get_local $2)
- (i32.const 0)
- )
+ (i32.store
+ (get_local $2)
+ (i32.const 0)
)
(block $label$0
(block $label$1
@@ -375,36 +319,28 @@
(get_local $0)
)
)
- (drop
- (i32.store
- (get_local $2)
- (i32.const 2)
- )
+ (i32.store
+ (get_local $2)
+ (i32.const 2)
)
(br_if $label$0
(get_local $1)
)
- (drop
- (i32.store
- (get_local $2)
- (i32.const 3)
- )
- )
- (br $label$0)
- )
- (drop
(i32.store
(get_local $2)
- (i32.const 1)
+ (i32.const 3)
)
+ (br $label$0)
)
- )
- (drop
(i32.store
(get_local $2)
- (i32.const 4)
+ (i32.const 1)
)
)
+ (i32.store
+ (get_local $2)
+ (i32.const 4)
+ )
(return
(i32.const 0)
)
@@ -412,11 +348,9 @@
(func $doublediamond_in_a_loop (param $0 i32) (param $1 i32) (param $2 i32)
(block $label$1
(loop $label$0
- (drop
- (i32.store
- (get_local $2)
- (i32.const 0)
- )
+ (i32.store
+ (get_local $2)
+ (i32.const 0)
)
(block $label$2
(br_if $label$2
@@ -424,11 +358,9 @@
(get_local $0)
)
)
- (drop
- (i32.store
- (get_local $2)
- (i32.const 2)
- )
+ (i32.store
+ (get_local $2)
+ (i32.const 2)
)
(block $label$3
(br_if $label$3
@@ -436,45 +368,33 @@
(get_local $1)
)
)
- (drop
- (i32.store
- (get_local $2)
- (i32.const 4)
- )
- )
- (drop
- (i32.store
- (get_local $2)
- (i32.const 5)
- )
- )
- (br $label$0)
- )
- (drop
(i32.store
(get_local $2)
- (i32.const 3)
+ (i32.const 4)
)
- )
- (drop
(i32.store
(get_local $2)
(i32.const 5)
)
+ (br $label$0)
)
- (br $label$0)
- )
- (drop
(i32.store
(get_local $2)
- (i32.const 1)
+ (i32.const 3)
)
- )
- (drop
(i32.store
(get_local $2)
(i32.const 5)
)
+ (br $label$0)
+ )
+ (i32.store
+ (get_local $2)
+ (i32.const 1)
+ )
+ (i32.store
+ (get_local $2)
+ (i32.const 5)
)
(br $label$0)
)
@@ -511,9 +431,7 @@
)
(unreachable)
)
- (drop
- (call $bar)
- )
+ (call $bar)
(br $label$1)
)
)
@@ -576,41 +494,33 @@
(block $label$0
(block $label$2
(loop $label$1
- (drop
- (i32.store
- (i32.const 0)
- (i32.const 0)
- )
+ (i32.store
+ (i32.const 0)
+ (i32.const 0)
)
(br_if $label$0
(i32.eqz
(get_local $0)
)
)
- (drop
- (i32.store
- (i32.const 0)
- (i32.const 1)
- )
+ (i32.store
+ (i32.const 0)
+ (i32.const 1)
)
(br_if $label$1
(get_local $1)
)
)
)
- (drop
- (i32.store
- (i32.const 0)
- (i32.const 3)
- )
- )
- (return)
- )
- (drop
(i32.store
(i32.const 0)
- (i32.const 2)
+ (i32.const 3)
)
+ (return)
+ )
+ (i32.store
+ (i32.const 0)
+ (i32.const 2)
)
(return)
)
@@ -626,22 +536,18 @@
(block $label$1
(block $label$3
(loop $label$2
- (drop
- (i32.store
- (i32.const 0)
- (i32.const 0)
- )
+ (i32.store
+ (i32.const 0)
+ (i32.const 0)
)
(br_if $label$0
(i32.eqz
(get_local $2)
)
)
- (drop
- (i32.store
- (i32.const 0)
- (i32.const 1)
- )
+ (i32.store
+ (i32.const 0)
+ (i32.const 1)
)
(br_if $label$1
(i32.eqz
@@ -653,46 +559,36 @@
)
)
)
- (drop
- (i32.store
- (i32.const 0)
- (i32.const 1)
- )
+ (i32.store
+ (i32.const 0)
+ (i32.const 1)
)
(br_if $label$2
(get_local $0)
)
)
)
- (drop
- (i32.store
- (i32.const 0)
- (i32.const 2)
- )
- )
- (return)
- )
- (drop
(i32.store
(i32.const 0)
- (i32.const 3)
+ (i32.const 2)
)
+ (return)
)
- )
- (drop
(i32.store
(i32.const 0)
- (i32.const 4)
+ (i32.const 3)
)
)
+ (i32.store
+ (i32.const 0)
+ (i32.const 4)
+ )
(return)
)
(func $test7 (param $0 i32) (param $1 i32)
- (drop
- (i32.store
- (i32.const 0)
- (i32.const 0)
- )
+ (i32.store
+ (i32.const 0)
+ (i32.const 0)
)
(set_local $0
(i32.and
@@ -703,11 +599,9 @@
(block $label$0
(block $label$2
(loop $label$1
- (drop
- (i32.store
- (i32.const 0)
- (i32.const 1)
- )
+ (i32.store
+ (i32.const 0)
+ (i32.const 1)
)
(block $label$3
(br_if $label$3
@@ -715,11 +609,9 @@
(get_local $0)
)
)
- (drop
- (i32.store
- (i32.const 0)
- (i32.const 3)
- )
+ (i32.store
+ (i32.const 0)
+ (i32.const 3)
)
(br_if $label$1
(i32.and
@@ -729,11 +621,9 @@
)
(br $label$0)
)
- (drop
- (i32.store
- (i32.const 0)
- (i32.const 2)
- )
+ (i32.store
+ (i32.const 0)
+ (i32.const 2)
)
(br_if $label$1
(i32.and
@@ -743,19 +633,15 @@
)
)
)
- (drop
- (i32.store
- (i32.const 0)
- (i32.const 4)
- )
- )
- (unreachable)
- )
- (drop
(i32.store
(i32.const 0)
- (i32.const 5)
+ (i32.const 4)
)
+ (unreachable)
+ )
+ (i32.store
+ (i32.const 0)
+ (i32.const 5)
)
(unreachable)
)
@@ -770,19 +656,15 @@
)
)
(func $test9
- (drop
- (i32.store
- (i32.const 0)
- (i32.const 0)
- )
+ (i32.store
+ (i32.const 0)
+ (i32.const 0)
)
(block $label$1
(loop $label$0
- (drop
- (i32.store
- (i32.const 0)
- (i32.const 1)
- )
+ (i32.store
+ (i32.const 0)
+ (i32.const 1)
)
(br_if $label$1
(i32.eqz
@@ -794,11 +676,9 @@
)
(block $label$3
(loop $label$2
- (drop
- (i32.store
- (i32.const 0)
- (i32.const 2)
- )
+ (i32.store
+ (i32.const 0)
+ (i32.const 2)
)
(block $label$4
(br_if $label$4
@@ -809,11 +689,9 @@
)
)
)
- (drop
- (i32.store
- (i32.const 0)
- (i32.const 3)
- )
+ (i32.store
+ (i32.const 0)
+ (i32.const 3)
)
(br_if $label$2
(i32.and
@@ -823,11 +701,9 @@
)
(br $label$0)
)
- (drop
- (i32.store
- (i32.const 0)
- (i32.const 4)
- )
+ (i32.store
+ (i32.const 0)
+ (i32.const 4)
)
(br_if $label$2
(i32.and
@@ -840,11 +716,9 @@
)
)
)
- (drop
- (i32.store
- (i32.const 0)
- (i32.const 5)
- )
+ (i32.store
+ (i32.const 0)
+ (i32.const 5)
)
(return)
)
@@ -916,50 +790,40 @@
)
)
(func $test11
- (drop
- (i32.store
- (i32.const 0)
- (i32.const 0)
- )
+ (i32.store
+ (i32.const 0)
+ (i32.const 0)
)
(block $label$0
(block $label$1
(br_if $label$1
(i32.const 0)
)
- (drop
- (i32.store
- (i32.const 0)
- (i32.const 1)
- )
+ (i32.store
+ (i32.const 0)
+ (i32.const 1)
)
(block $label$2
(br_if $label$2
(i32.const 0)
)
- (drop
- (i32.store
- (i32.const 0)
- (i32.const 2)
- )
- )
- (br_if $label$0
+ (i32.store
(i32.const 0)
+ (i32.const 2)
)
- )
- (drop
- (i32.store
+ (br_if $label$0
(i32.const 0)
- (i32.const 3)
)
)
- (return)
- )
- (drop
(i32.store
(i32.const 0)
- (i32.const 4)
+ (i32.const 3)
)
+ (return)
+ )
+ (i32.store
+ (i32.const 0)
+ (i32.const 4)
)
(block $label$3
(br_if $label$3
@@ -967,36 +831,28 @@
(i32.const 0)
)
)
- (drop
- (i32.store
- (i32.const 0)
- (i32.const 8)
- )
- )
- (return)
- )
- (drop
(i32.store
(i32.const 0)
- (i32.const 5)
+ (i32.const 8)
)
+ (return)
)
- (br_if $label$0
+ (i32.store
(i32.const 0)
+ (i32.const 5)
)
- (drop
- (i32.store
- (i32.const 0)
- (i32.const 6)
- )
+ (br_if $label$0
+ (i32.const 0)
)
- (return)
- )
- (drop
(i32.store
(i32.const 0)
- (i32.const 7)
+ (i32.const 6)
)
+ (return)
+ )
+ (i32.store
+ (i32.const 0)
+ (i32.const 7)
)
(return)
)
@@ -1119,9 +975,7 @@
(i32.const 1)
)
)
- (drop
- (call $test15_callee1)
- )
+ (call $test15_callee1)
(br $label$0)
)
(set_local $0
@@ -1156,9 +1010,7 @@
(get_local $1)
)
)
- (drop
- (call $test15_callee0)
- )
+ (call $test15_callee0)
(return)
)
(return)
diff --git a/test/llvm_autogenerated/dead-vreg.wast b/test/llvm_autogenerated/dead-vreg.wast
index d2b85220f..73cba6b93 100644
--- a/test/llvm_autogenerated/dead-vreg.wast
+++ b/test/llvm_autogenerated/dead-vreg.wast
@@ -49,11 +49,9 @@
)
(block $label$5
(loop $label$4
- (drop
- (i32.store
- (get_local $7)
- (get_local $6)
- )
+ (i32.store
+ (get_local $7)
+ (get_local $6)
)
(set_local $6
(i32.add
diff --git a/test/llvm_autogenerated/i128.wast b/test/llvm_autogenerated/i128.wast
index 570947567..f3bf045ef 100644
--- a/test/llvm_autogenerated/i128.wast
+++ b/test/llvm_autogenerated/i128.wast
@@ -37,72 +37,64 @@
(export "masked_rotr" (func $masked_rotr))
(func $add128 (param $0 i32) (param $1 i64) (param $2 i64) (param $3 i64) (param $4 i64)
(local $5 i64)
- (drop
- (i64.store
- (get_local $0)
- (tee_local $5
- (i64.add
- (get_local $1)
- (get_local $3)
- )
+ (i64.store
+ (get_local $0)
+ (tee_local $5
+ (i64.add
+ (get_local $1)
+ (get_local $3)
)
)
)
- (drop
- (i64.store
- (i32.add
- (get_local $0)
- (i32.const 8)
- )
+ (i64.store
+ (i32.add
+ (get_local $0)
+ (i32.const 8)
+ )
+ (i64.add
(i64.add
- (i64.add
- (get_local $2)
- (get_local $4)
- )
- (select
- (i64.const 1)
- (i64.extend_u/i32
- (i64.lt_u
- (get_local $5)
- (get_local $1)
- )
- )
+ (get_local $2)
+ (get_local $4)
+ )
+ (select
+ (i64.const 1)
+ (i64.extend_u/i32
(i64.lt_u
(get_local $5)
- (get_local $3)
+ (get_local $1)
)
)
+ (i64.lt_u
+ (get_local $5)
+ (get_local $3)
+ )
)
)
)
(return)
)
(func $sub128 (param $0 i32) (param $1 i64) (param $2 i64) (param $3 i64) (param $4 i64)
- (drop
- (i64.store
- (get_local $0)
- (i64.sub
- (get_local $1)
- (get_local $3)
- )
+ (i64.store
+ (get_local $0)
+ (i64.sub
+ (get_local $1)
+ (get_local $3)
)
)
- (drop
- (i64.store
- (i32.add
- (get_local $0)
- (i32.const 8)
- )
+ (i64.store
+ (i32.add
+ (get_local $0)
+ (i32.const 8)
+ )
+ (i64.sub
(i64.sub
- (i64.sub
- (get_local $2)
- (get_local $4)
- )
- (i64.extend_u/i32
- (i64.lt_u
- (get_local $1)
- (get_local $3)
- )
+ (get_local $2)
+ (get_local $4)
+ )
+ (i64.extend_u/i32
+ (i64.lt_u
+ (get_local $1)
+ (get_local $3)
)
)
)
@@ -111,683 +103,571 @@
)
(func $mul128 (param $0 i32) (param $1 i64) (param $2 i64) (param $3 i64) (param $4 i64)
(local $5 i32)
- (drop
- (i32.store offset=4
- (i32.const 0)
- (tee_local $5
- (i32.sub
- (i32.load offset=4
- (i32.const 0)
- )
- (i32.const 16)
+ (i32.store offset=4
+ (i32.const 0)
+ (tee_local $5
+ (i32.sub
+ (i32.load offset=4
+ (i32.const 0)
)
+ (i32.const 16)
)
)
)
- (drop
- (call $__multi3
- (get_local $5)
- (get_local $1)
- (get_local $2)
- (get_local $3)
- (get_local $4)
- )
+ (call $__multi3
+ (get_local $5)
+ (get_local $1)
+ (get_local $2)
+ (get_local $3)
+ (get_local $4)
)
- (drop
- (i64.store
+ (i64.store
+ (i32.add
+ (get_local $0)
+ (i32.const 8)
+ )
+ (i64.load
(i32.add
- (get_local $0)
+ (get_local $5)
(i32.const 8)
)
- (i64.load
- (i32.add
- (get_local $5)
- (i32.const 8)
- )
- )
)
)
- (drop
- (i64.store
- (get_local $0)
- (i64.load
- (get_local $5)
- )
+ (i64.store
+ (get_local $0)
+ (i64.load
+ (get_local $5)
)
)
- (drop
- (i32.store offset=4
- (i32.const 0)
- (i32.add
- (get_local $5)
- (i32.const 16)
- )
+ (i32.store offset=4
+ (i32.const 0)
+ (i32.add
+ (get_local $5)
+ (i32.const 16)
)
)
(return)
)
(func $sdiv128 (param $0 i32) (param $1 i64) (param $2 i64) (param $3 i64) (param $4 i64)
(local $5 i32)
- (drop
- (i32.store offset=4
- (i32.const 0)
- (tee_local $5
- (i32.sub
- (i32.load offset=4
- (i32.const 0)
- )
- (i32.const 16)
+ (i32.store offset=4
+ (i32.const 0)
+ (tee_local $5
+ (i32.sub
+ (i32.load offset=4
+ (i32.const 0)
)
+ (i32.const 16)
)
)
)
- (drop
- (call $__divti3
- (get_local $5)
- (get_local $1)
- (get_local $2)
- (get_local $3)
- (get_local $4)
- )
+ (call $__divti3
+ (get_local $5)
+ (get_local $1)
+ (get_local $2)
+ (get_local $3)
+ (get_local $4)
)
- (drop
- (i64.store
+ (i64.store
+ (i32.add
+ (get_local $0)
+ (i32.const 8)
+ )
+ (i64.load
(i32.add
- (get_local $0)
+ (get_local $5)
(i32.const 8)
)
- (i64.load
- (i32.add
- (get_local $5)
- (i32.const 8)
- )
- )
)
)
- (drop
- (i64.store
- (get_local $0)
- (i64.load
- (get_local $5)
- )
+ (i64.store
+ (get_local $0)
+ (i64.load
+ (get_local $5)
)
)
- (drop
- (i32.store offset=4
- (i32.const 0)
- (i32.add
- (get_local $5)
- (i32.const 16)
- )
+ (i32.store offset=4
+ (i32.const 0)
+ (i32.add
+ (get_local $5)
+ (i32.const 16)
)
)
(return)
)
(func $udiv128 (param $0 i32) (param $1 i64) (param $2 i64) (param $3 i64) (param $4 i64)
(local $5 i32)
- (drop
- (i32.store offset=4
- (i32.const 0)
- (tee_local $5
- (i32.sub
- (i32.load offset=4
- (i32.const 0)
- )
- (i32.const 16)
+ (i32.store offset=4
+ (i32.const 0)
+ (tee_local $5
+ (i32.sub
+ (i32.load offset=4
+ (i32.const 0)
)
+ (i32.const 16)
)
)
)
- (drop
- (call $__udivti3
- (get_local $5)
- (get_local $1)
- (get_local $2)
- (get_local $3)
- (get_local $4)
- )
+ (call $__udivti3
+ (get_local $5)
+ (get_local $1)
+ (get_local $2)
+ (get_local $3)
+ (get_local $4)
)
- (drop
- (i64.store
+ (i64.store
+ (i32.add
+ (get_local $0)
+ (i32.const 8)
+ )
+ (i64.load
(i32.add
- (get_local $0)
+ (get_local $5)
(i32.const 8)
)
- (i64.load
- (i32.add
- (get_local $5)
- (i32.const 8)
- )
- )
)
)
- (drop
- (i64.store
- (get_local $0)
- (i64.load
- (get_local $5)
- )
+ (i64.store
+ (get_local $0)
+ (i64.load
+ (get_local $5)
)
)
- (drop
- (i32.store offset=4
- (i32.const 0)
- (i32.add
- (get_local $5)
- (i32.const 16)
- )
+ (i32.store offset=4
+ (i32.const 0)
+ (i32.add
+ (get_local $5)
+ (i32.const 16)
)
)
(return)
)
(func $srem128 (param $0 i32) (param $1 i64) (param $2 i64) (param $3 i64) (param $4 i64)
(local $5 i32)
- (drop
- (i32.store offset=4
- (i32.const 0)
- (tee_local $5
- (i32.sub
- (i32.load offset=4
- (i32.const 0)
- )
- (i32.const 16)
+ (i32.store offset=4
+ (i32.const 0)
+ (tee_local $5
+ (i32.sub
+ (i32.load offset=4
+ (i32.const 0)
)
+ (i32.const 16)
)
)
)
- (drop
- (call $__modti3
- (get_local $5)
- (get_local $1)
- (get_local $2)
- (get_local $3)
- (get_local $4)
- )
+ (call $__modti3
+ (get_local $5)
+ (get_local $1)
+ (get_local $2)
+ (get_local $3)
+ (get_local $4)
)
- (drop
- (i64.store
+ (i64.store
+ (i32.add
+ (get_local $0)
+ (i32.const 8)
+ )
+ (i64.load
(i32.add
- (get_local $0)
+ (get_local $5)
(i32.const 8)
)
- (i64.load
- (i32.add
- (get_local $5)
- (i32.const 8)
- )
- )
)
)
- (drop
- (i64.store
- (get_local $0)
- (i64.load
- (get_local $5)
- )
+ (i64.store
+ (get_local $0)
+ (i64.load
+ (get_local $5)
)
)
- (drop
- (i32.store offset=4
- (i32.const 0)
- (i32.add
- (get_local $5)
- (i32.const 16)
- )
+ (i32.store offset=4
+ (i32.const 0)
+ (i32.add
+ (get_local $5)
+ (i32.const 16)
)
)
(return)
)
(func $urem128 (param $0 i32) (param $1 i64) (param $2 i64) (param $3 i64) (param $4 i64)
(local $5 i32)
- (drop
- (i32.store offset=4
- (i32.const 0)
- (tee_local $5
- (i32.sub
- (i32.load offset=4
- (i32.const 0)
- )
- (i32.const 16)
+ (i32.store offset=4
+ (i32.const 0)
+ (tee_local $5
+ (i32.sub
+ (i32.load offset=4
+ (i32.const 0)
)
+ (i32.const 16)
)
)
)
- (drop
- (call $__umodti3
- (get_local $5)
- (get_local $1)
- (get_local $2)
- (get_local $3)
- (get_local $4)
- )
+ (call $__umodti3
+ (get_local $5)
+ (get_local $1)
+ (get_local $2)
+ (get_local $3)
+ (get_local $4)
)
- (drop
- (i64.store
+ (i64.store
+ (i32.add
+ (get_local $0)
+ (i32.const 8)
+ )
+ (i64.load
(i32.add
- (get_local $0)
+ (get_local $5)
(i32.const 8)
)
- (i64.load
- (i32.add
- (get_local $5)
- (i32.const 8)
- )
- )
)
)
- (drop
- (i64.store
- (get_local $0)
- (i64.load
- (get_local $5)
- )
+ (i64.store
+ (get_local $0)
+ (i64.load
+ (get_local $5)
)
)
- (drop
- (i32.store offset=4
- (i32.const 0)
- (i32.add
- (get_local $5)
- (i32.const 16)
- )
+ (i32.store offset=4
+ (i32.const 0)
+ (i32.add
+ (get_local $5)
+ (i32.const 16)
)
)
(return)
)
(func $and128 (param $0 i32) (param $1 i64) (param $2 i64) (param $3 i64) (param $4 i64)
- (drop
- (i64.store
- (i32.add
- (get_local $0)
- (i32.const 8)
- )
- (i64.and
- (get_local $2)
- (get_local $4)
- )
+ (i64.store
+ (i32.add
+ (get_local $0)
+ (i32.const 8)
+ )
+ (i64.and
+ (get_local $2)
+ (get_local $4)
)
)
- (drop
- (i64.store
- (get_local $0)
- (i64.and
- (get_local $1)
- (get_local $3)
- )
+ (i64.store
+ (get_local $0)
+ (i64.and
+ (get_local $1)
+ (get_local $3)
)
)
(return)
)
(func $or128 (param $0 i32) (param $1 i64) (param $2 i64) (param $3 i64) (param $4 i64)
- (drop
- (i64.store
- (i32.add
- (get_local $0)
- (i32.const 8)
- )
- (i64.or
- (get_local $2)
- (get_local $4)
- )
+ (i64.store
+ (i32.add
+ (get_local $0)
+ (i32.const 8)
+ )
+ (i64.or
+ (get_local $2)
+ (get_local $4)
)
)
- (drop
- (i64.store
- (get_local $0)
- (i64.or
- (get_local $1)
- (get_local $3)
- )
+ (i64.store
+ (get_local $0)
+ (i64.or
+ (get_local $1)
+ (get_local $3)
)
)
(return)
)
(func $xor128 (param $0 i32) (param $1 i64) (param $2 i64) (param $3 i64) (param $4 i64)
- (drop
- (i64.store
- (i32.add
- (get_local $0)
- (i32.const 8)
- )
- (i64.xor
- (get_local $2)
- (get_local $4)
- )
+ (i64.store
+ (i32.add
+ (get_local $0)
+ (i32.const 8)
+ )
+ (i64.xor
+ (get_local $2)
+ (get_local $4)
)
)
- (drop
- (i64.store
- (get_local $0)
- (i64.xor
- (get_local $1)
- (get_local $3)
- )
+ (i64.store
+ (get_local $0)
+ (i64.xor
+ (get_local $1)
+ (get_local $3)
)
)
(return)
)
(func $shl128 (param $0 i32) (param $1 i64) (param $2 i64) (param $3 i64) (param $4 i64)
(local $5 i32)
- (drop
- (i32.store offset=4
- (i32.const 0)
- (tee_local $5
- (i32.sub
- (i32.load offset=4
- (i32.const 0)
- )
- (i32.const 16)
+ (i32.store offset=4
+ (i32.const 0)
+ (tee_local $5
+ (i32.sub
+ (i32.load offset=4
+ (i32.const 0)
)
+ (i32.const 16)
)
)
)
- (drop
- (call $__ashlti3
- (get_local $5)
- (get_local $1)
- (get_local $2)
- (i32.wrap/i64
- (get_local $3)
- )
+ (call $__ashlti3
+ (get_local $5)
+ (get_local $1)
+ (get_local $2)
+ (i32.wrap/i64
+ (get_local $3)
)
)
- (drop
- (i64.store
+ (i64.store
+ (i32.add
+ (get_local $0)
+ (i32.const 8)
+ )
+ (i64.load
(i32.add
- (get_local $0)
+ (get_local $5)
(i32.const 8)
)
- (i64.load
- (i32.add
- (get_local $5)
- (i32.const 8)
- )
- )
)
)
- (drop
- (i64.store
- (get_local $0)
- (i64.load
- (get_local $5)
- )
+ (i64.store
+ (get_local $0)
+ (i64.load
+ (get_local $5)
)
)
- (drop
- (i32.store offset=4
- (i32.const 0)
- (i32.add
- (get_local $5)
- (i32.const 16)
- )
+ (i32.store offset=4
+ (i32.const 0)
+ (i32.add
+ (get_local $5)
+ (i32.const 16)
)
)
(return)
)
(func $shr128 (param $0 i32) (param $1 i64) (param $2 i64) (param $3 i64) (param $4 i64)
(local $5 i32)
- (drop
- (i32.store offset=4
- (i32.const 0)
- (tee_local $5
- (i32.sub
- (i32.load offset=4
- (i32.const 0)
- )
- (i32.const 16)
+ (i32.store offset=4
+ (i32.const 0)
+ (tee_local $5
+ (i32.sub
+ (i32.load offset=4
+ (i32.const 0)
)
+ (i32.const 16)
)
)
)
- (drop
- (call $__lshrti3
- (get_local $5)
- (get_local $1)
- (get_local $2)
- (i32.wrap/i64
- (get_local $3)
- )
+ (call $__lshrti3
+ (get_local $5)
+ (get_local $1)
+ (get_local $2)
+ (i32.wrap/i64
+ (get_local $3)
)
)
- (drop
- (i64.store
+ (i64.store
+ (i32.add
+ (get_local $0)
+ (i32.const 8)
+ )
+ (i64.load
(i32.add
- (get_local $0)
+ (get_local $5)
(i32.const 8)
)
- (i64.load
- (i32.add
- (get_local $5)
- (i32.const 8)
- )
- )
)
)
- (drop
- (i64.store
- (get_local $0)
- (i64.load
- (get_local $5)
- )
+ (i64.store
+ (get_local $0)
+ (i64.load
+ (get_local $5)
)
)
- (drop
- (i32.store offset=4
- (i32.const 0)
- (i32.add
- (get_local $5)
- (i32.const 16)
- )
+ (i32.store offset=4
+ (i32.const 0)
+ (i32.add
+ (get_local $5)
+ (i32.const 16)
)
)
(return)
)
(func $sar128 (param $0 i32) (param $1 i64) (param $2 i64) (param $3 i64) (param $4 i64)
(local $5 i32)
- (drop
- (i32.store offset=4
- (i32.const 0)
- (tee_local $5
- (i32.sub
- (i32.load offset=4
- (i32.const 0)
- )
- (i32.const 16)
+ (i32.store offset=4
+ (i32.const 0)
+ (tee_local $5
+ (i32.sub
+ (i32.load offset=4
+ (i32.const 0)
)
+ (i32.const 16)
)
)
)
- (drop
- (call $__ashrti3
- (get_local $5)
- (get_local $1)
- (get_local $2)
- (i32.wrap/i64
- (get_local $3)
- )
+ (call $__ashrti3
+ (get_local $5)
+ (get_local $1)
+ (get_local $2)
+ (i32.wrap/i64
+ (get_local $3)
)
)
- (drop
- (i64.store
+ (i64.store
+ (i32.add
+ (get_local $0)
+ (i32.const 8)
+ )
+ (i64.load
(i32.add
- (get_local $0)
+ (get_local $5)
(i32.const 8)
)
- (i64.load
- (i32.add
- (get_local $5)
- (i32.const 8)
- )
- )
)
)
- (drop
- (i64.store
- (get_local $0)
- (i64.load
- (get_local $5)
- )
+ (i64.store
+ (get_local $0)
+ (i64.load
+ (get_local $5)
)
)
- (drop
- (i32.store offset=4
- (i32.const 0)
- (i32.add
- (get_local $5)
- (i32.const 16)
- )
+ (i32.store offset=4
+ (i32.const 0)
+ (i32.add
+ (get_local $5)
+ (i32.const 16)
)
)
(return)
)
(func $clz128 (param $0 i32) (param $1 i64) (param $2 i64)
- (drop
- (i64.store
- (i32.add
- (get_local $0)
- (i32.const 8)
- )
- (i64.const 0)
+ (i64.store
+ (i32.add
+ (get_local $0)
+ (i32.const 8)
)
+ (i64.const 0)
)
- (drop
- (i64.store
- (get_local $0)
- (select
+ (i64.store
+ (get_local $0)
+ (select
+ (i64.clz
+ (get_local $2)
+ )
+ (i64.add
(i64.clz
- (get_local $2)
- )
- (i64.add
- (i64.clz
- (get_local $1)
- )
- (i64.const 64)
- )
- (i64.ne
- (get_local $2)
- (i64.const 0)
+ (get_local $1)
)
+ (i64.const 64)
+ )
+ (i64.ne
+ (get_local $2)
+ (i64.const 0)
)
)
)
(return)
)
(func $clz128_zero_undef (param $0 i32) (param $1 i64) (param $2 i64)
- (drop
- (i64.store
- (i32.add
- (get_local $0)
- (i32.const 8)
- )
- (i64.const 0)
+ (i64.store
+ (i32.add
+ (get_local $0)
+ (i32.const 8)
)
+ (i64.const 0)
)
- (drop
- (i64.store
- (get_local $0)
- (select
+ (i64.store
+ (get_local $0)
+ (select
+ (i64.clz
+ (get_local $2)
+ )
+ (i64.add
(i64.clz
- (get_local $2)
- )
- (i64.add
- (i64.clz
- (get_local $1)
- )
- (i64.const 64)
- )
- (i64.ne
- (get_local $2)
- (i64.const 0)
+ (get_local $1)
)
+ (i64.const 64)
+ )
+ (i64.ne
+ (get_local $2)
+ (i64.const 0)
)
)
)
(return)
)
(func $ctz128 (param $0 i32) (param $1 i64) (param $2 i64)
- (drop
- (i64.store
- (i32.add
- (get_local $0)
- (i32.const 8)
- )
- (i64.const 0)
+ (i64.store
+ (i32.add
+ (get_local $0)
+ (i32.const 8)
)
+ (i64.const 0)
)
- (drop
- (i64.store
- (get_local $0)
- (select
+ (i64.store
+ (get_local $0)
+ (select
+ (i64.ctz
+ (get_local $1)
+ )
+ (i64.add
(i64.ctz
- (get_local $1)
- )
- (i64.add
- (i64.ctz
- (get_local $2)
- )
- (i64.const 64)
- )
- (i64.ne
- (get_local $1)
- (i64.const 0)
+ (get_local $2)
)
+ (i64.const 64)
+ )
+ (i64.ne
+ (get_local $1)
+ (i64.const 0)
)
)
)
(return)
)
(func $ctz128_zero_undef (param $0 i32) (param $1 i64) (param $2 i64)
- (drop
- (i64.store
- (i32.add
- (get_local $0)
- (i32.const 8)
- )
- (i64.const 0)
+ (i64.store
+ (i32.add
+ (get_local $0)
+ (i32.const 8)
)
+ (i64.const 0)
)
- (drop
- (i64.store
- (get_local $0)
- (select
+ (i64.store
+ (get_local $0)
+ (select
+ (i64.ctz
+ (get_local $1)
+ )
+ (i64.add
(i64.ctz
- (get_local $1)
- )
- (i64.add
- (i64.ctz
- (get_local $2)
- )
- (i64.const 64)
- )
- (i64.ne
- (get_local $1)
- (i64.const 0)
+ (get_local $2)
)
+ (i64.const 64)
+ )
+ (i64.ne
+ (get_local $1)
+ (i64.const 0)
)
)
)
(return)
)
(func $popcnt128 (param $0 i32) (param $1 i64) (param $2 i64)
- (drop
- (i64.store
- (i32.add
- (get_local $0)
- (i32.const 8)
- )
- (i64.const 0)
+ (i64.store
+ (i32.add
+ (get_local $0)
+ (i32.const 8)
)
+ (i64.const 0)
)
- (drop
- (i64.store
- (get_local $0)
- (i64.add
- (i64.popcnt
- (get_local $1)
- )
- (i64.popcnt
- (get_local $2)
- )
+ (i64.store
+ (get_local $0)
+ (i64.add
+ (i64.popcnt
+ (get_local $1)
+ )
+ (i64.popcnt
+ (get_local $2)
)
)
)
@@ -805,370 +685,322 @@
)
(func $rotl (param $0 i32) (param $1 i64) (param $2 i64) (param $3 i64) (param $4 i64)
(local $5 i32)
- (drop
- (i32.store offset=4
- (i32.const 0)
- (tee_local $5
- (i32.sub
- (i32.load offset=4
- (i32.const 0)
- )
- (i32.const 32)
+ (i32.store offset=4
+ (i32.const 0)
+ (tee_local $5
+ (i32.sub
+ (i32.load offset=4
+ (i32.const 0)
)
+ (i32.const 32)
)
)
)
- (drop
- (call $__ashlti3
- (i32.add
- (get_local $5)
- (i32.const 16)
- )
- (get_local $1)
- (get_local $2)
- (i32.wrap/i64
- (get_local $3)
- )
+ (call $__ashlti3
+ (i32.add
+ (get_local $5)
+ (i32.const 16)
+ )
+ (get_local $1)
+ (get_local $2)
+ (i32.wrap/i64
+ (get_local $3)
)
)
- (drop
- (call $__lshrti3
- (get_local $5)
- (get_local $1)
- (get_local $2)
- (i32.wrap/i64
- (i64.sub
- (i64.const 128)
- (get_local $3)
- )
+ (call $__lshrti3
+ (get_local $5)
+ (get_local $1)
+ (get_local $2)
+ (i32.wrap/i64
+ (i64.sub
+ (i64.const 128)
+ (get_local $3)
)
)
)
- (drop
- (i64.store
- (i32.add
- (get_local $0)
- (i32.const 8)
- )
- (i64.or
- (i64.load
- (i32.add
- (i32.add
- (get_local $5)
- (i32.const 16)
- )
- (i32.const 8)
- )
- )
- (i64.load
+ (i64.store
+ (i32.add
+ (get_local $0)
+ (i32.const 8)
+ )
+ (i64.or
+ (i64.load
+ (i32.add
(i32.add
(get_local $5)
- (i32.const 8)
+ (i32.const 16)
)
+ (i32.const 8)
)
)
- )
- )
- (drop
- (i64.store
- (get_local $0)
- (i64.or
- (i64.load offset=16
- (get_local $5)
- )
- (i64.load
+ (i64.load
+ (i32.add
(get_local $5)
+ (i32.const 8)
)
)
)
)
- (drop
- (i32.store offset=4
- (i32.const 0)
- (i32.add
+ (i64.store
+ (get_local $0)
+ (i64.or
+ (i64.load offset=16
+ (get_local $5)
+ )
+ (i64.load
(get_local $5)
- (i32.const 32)
)
)
)
+ (i32.store offset=4
+ (i32.const 0)
+ (i32.add
+ (get_local $5)
+ (i32.const 32)
+ )
+ )
(return)
)
(func $masked_rotl (param $0 i32) (param $1 i64) (param $2 i64) (param $3 i64) (param $4 i64)
(local $5 i32)
- (drop
- (i32.store offset=4
- (i32.const 0)
- (tee_local $5
- (i32.sub
- (i32.load offset=4
- (i32.const 0)
- )
- (i32.const 32)
- )
- )
- )
- )
- (drop
- (call $__ashlti3
- (i32.add
- (get_local $5)
- (i32.const 16)
- )
- (get_local $1)
- (get_local $2)
- (i32.wrap/i64
- (tee_local $3
- (i64.and
- (get_local $3)
- (i64.const 127)
- )
+ (i32.store offset=4
+ (i32.const 0)
+ (tee_local $5
+ (i32.sub
+ (i32.load offset=4
+ (i32.const 0)
)
+ (i32.const 32)
)
)
)
- (drop
- (call $__lshrti3
+ (call $__ashlti3
+ (i32.add
(get_local $5)
- (get_local $1)
- (get_local $2)
- (i32.wrap/i64
- (i64.sub
- (i64.const 128)
+ (i32.const 16)
+ )
+ (get_local $1)
+ (get_local $2)
+ (i32.wrap/i64
+ (tee_local $3
+ (i64.and
(get_local $3)
+ (i64.const 127)
)
)
)
)
- (drop
- (i64.store
- (i32.add
- (get_local $0)
- (i32.const 8)
+ (call $__lshrti3
+ (get_local $5)
+ (get_local $1)
+ (get_local $2)
+ (i32.wrap/i64
+ (i64.sub
+ (i64.const 128)
+ (get_local $3)
)
- (i64.or
- (i64.load
- (i32.add
- (i32.add
- (get_local $5)
- (i32.const 16)
- )
- (i32.const 8)
- )
- )
- (i64.load
+ )
+ )
+ (i64.store
+ (i32.add
+ (get_local $0)
+ (i32.const 8)
+ )
+ (i64.or
+ (i64.load
+ (i32.add
(i32.add
(get_local $5)
- (i32.const 8)
+ (i32.const 16)
)
+ (i32.const 8)
)
)
- )
- )
- (drop
- (i64.store
- (get_local $0)
- (i64.or
- (i64.load offset=16
- (get_local $5)
- )
- (i64.load
+ (i64.load
+ (i32.add
(get_local $5)
+ (i32.const 8)
)
)
)
)
- (drop
- (i32.store offset=4
- (i32.const 0)
- (i32.add
+ (i64.store
+ (get_local $0)
+ (i64.or
+ (i64.load offset=16
(get_local $5)
- (i32.const 32)
)
+ (i64.load
+ (get_local $5)
+ )
+ )
+ )
+ (i32.store offset=4
+ (i32.const 0)
+ (i32.add
+ (get_local $5)
+ (i32.const 32)
)
)
(return)
)
(func $rotr (param $0 i32) (param $1 i64) (param $2 i64) (param $3 i64) (param $4 i64)
(local $5 i32)
- (drop
- (i32.store offset=4
- (i32.const 0)
- (tee_local $5
- (i32.sub
- (i32.load offset=4
- (i32.const 0)
- )
- (i32.const 32)
+ (i32.store offset=4
+ (i32.const 0)
+ (tee_local $5
+ (i32.sub
+ (i32.load offset=4
+ (i32.const 0)
)
+ (i32.const 32)
)
)
)
- (drop
- (call $__lshrti3
- (i32.add
- (get_local $5)
- (i32.const 16)
- )
- (get_local $1)
- (get_local $2)
- (i32.wrap/i64
- (get_local $3)
- )
+ (call $__lshrti3
+ (i32.add
+ (get_local $5)
+ (i32.const 16)
+ )
+ (get_local $1)
+ (get_local $2)
+ (i32.wrap/i64
+ (get_local $3)
)
)
- (drop
- (call $__ashlti3
- (get_local $5)
- (get_local $1)
- (get_local $2)
- (i32.wrap/i64
- (i64.sub
- (i64.const 128)
- (get_local $3)
- )
+ (call $__ashlti3
+ (get_local $5)
+ (get_local $1)
+ (get_local $2)
+ (i32.wrap/i64
+ (i64.sub
+ (i64.const 128)
+ (get_local $3)
)
)
)
- (drop
- (i64.store
- (i32.add
- (get_local $0)
- (i32.const 8)
- )
- (i64.or
- (i64.load
- (i32.add
- (i32.add
- (get_local $5)
- (i32.const 16)
- )
- (i32.const 8)
- )
- )
- (i64.load
+ (i64.store
+ (i32.add
+ (get_local $0)
+ (i32.const 8)
+ )
+ (i64.or
+ (i64.load
+ (i32.add
(i32.add
(get_local $5)
- (i32.const 8)
+ (i32.const 16)
)
+ (i32.const 8)
)
)
- )
- )
- (drop
- (i64.store
- (get_local $0)
- (i64.or
- (i64.load offset=16
- (get_local $5)
- )
- (i64.load
+ (i64.load
+ (i32.add
(get_local $5)
+ (i32.const 8)
)
)
)
)
- (drop
- (i32.store offset=4
- (i32.const 0)
- (i32.add
+ (i64.store
+ (get_local $0)
+ (i64.or
+ (i64.load offset=16
+ (get_local $5)
+ )
+ (i64.load
(get_local $5)
- (i32.const 32)
)
)
)
+ (i32.store offset=4
+ (i32.const 0)
+ (i32.add
+ (get_local $5)
+ (i32.const 32)
+ )
+ )
(return)
)
(func $masked_rotr (param $0 i32) (param $1 i64) (param $2 i64) (param $3 i64) (param $4 i64)
(local $5 i32)
- (drop
- (i32.store offset=4
- (i32.const 0)
- (tee_local $5
- (i32.sub
- (i32.load offset=4
- (i32.const 0)
- )
- (i32.const 32)
- )
- )
- )
- )
- (drop
- (call $__lshrti3
- (i32.add
- (get_local $5)
- (i32.const 16)
- )
- (get_local $1)
- (get_local $2)
- (i32.wrap/i64
- (tee_local $3
- (i64.and
- (get_local $3)
- (i64.const 127)
- )
+ (i32.store offset=4
+ (i32.const 0)
+ (tee_local $5
+ (i32.sub
+ (i32.load offset=4
+ (i32.const 0)
)
+ (i32.const 32)
)
)
)
- (drop
- (call $__ashlti3
+ (call $__lshrti3
+ (i32.add
(get_local $5)
- (get_local $1)
- (get_local $2)
- (i32.wrap/i64
- (i64.sub
- (i64.const 128)
+ (i32.const 16)
+ )
+ (get_local $1)
+ (get_local $2)
+ (i32.wrap/i64
+ (tee_local $3
+ (i64.and
(get_local $3)
+ (i64.const 127)
)
)
)
)
- (drop
- (i64.store
- (i32.add
- (get_local $0)
- (i32.const 8)
+ (call $__ashlti3
+ (get_local $5)
+ (get_local $1)
+ (get_local $2)
+ (i32.wrap/i64
+ (i64.sub
+ (i64.const 128)
+ (get_local $3)
)
- (i64.or
- (i64.load
- (i32.add
- (i32.add
- (get_local $5)
- (i32.const 16)
- )
- (i32.const 8)
- )
- )
- (i64.load
+ )
+ )
+ (i64.store
+ (i32.add
+ (get_local $0)
+ (i32.const 8)
+ )
+ (i64.or
+ (i64.load
+ (i32.add
(i32.add
(get_local $5)
- (i32.const 8)
+ (i32.const 16)
)
+ (i32.const 8)
)
)
- )
- )
- (drop
- (i64.store
- (get_local $0)
- (i64.or
- (i64.load offset=16
- (get_local $5)
- )
- (i64.load
+ (i64.load
+ (i32.add
(get_local $5)
+ (i32.const 8)
)
)
)
)
- (drop
- (i32.store offset=4
- (i32.const 0)
- (i32.add
+ (i64.store
+ (get_local $0)
+ (i64.or
+ (i64.load offset=16
(get_local $5)
- (i32.const 32)
)
+ (i64.load
+ (get_local $5)
+ )
+ )
+ )
+ (i32.store offset=4
+ (i32.const 0)
+ (i32.add
+ (get_local $5)
+ (i32.const 32)
)
)
(return)
diff --git a/test/llvm_autogenerated/i32-load-store-alignment.wast b/test/llvm_autogenerated/i32-load-store-alignment.wast
index e111b7110..eb22b9e8a 100644
--- a/test/llvm_autogenerated/i32-load-store-alignment.wast
+++ b/test/llvm_autogenerated/i32-load-store-alignment.wast
@@ -93,92 +93,72 @@
)
)
(func $sti32_a1 (param $0 i32) (param $1 i32)
- (drop
- (i32.store align=1
- (get_local $0)
- (get_local $1)
- )
+ (i32.store align=1
+ (get_local $0)
+ (get_local $1)
)
(return)
)
(func $sti32_a2 (param $0 i32) (param $1 i32)
- (drop
- (i32.store align=2
- (get_local $0)
- (get_local $1)
- )
+ (i32.store align=2
+ (get_local $0)
+ (get_local $1)
)
(return)
)
(func $sti32_a4 (param $0 i32) (param $1 i32)
- (drop
- (i32.store
- (get_local $0)
- (get_local $1)
- )
+ (i32.store
+ (get_local $0)
+ (get_local $1)
)
(return)
)
(func $sti32 (param $0 i32) (param $1 i32)
- (drop
- (i32.store
- (get_local $0)
- (get_local $1)
- )
+ (i32.store
+ (get_local $0)
+ (get_local $1)
)
(return)
)
(func $sti32_a8 (param $0 i32) (param $1 i32)
- (drop
- (i32.store
- (get_local $0)
- (get_local $1)
- )
+ (i32.store
+ (get_local $0)
+ (get_local $1)
)
(return)
)
(func $sti8_a1 (param $0 i32) (param $1 i32)
- (drop
- (i32.store8
- (get_local $0)
- (get_local $1)
- )
+ (i32.store8
+ (get_local $0)
+ (get_local $1)
)
(return)
)
(func $sti8_a2 (param $0 i32) (param $1 i32)
- (drop
- (i32.store8
- (get_local $0)
- (get_local $1)
- )
+ (i32.store8
+ (get_local $0)
+ (get_local $1)
)
(return)
)
(func $sti16_a1 (param $0 i32) (param $1 i32)
- (drop
- (i32.store16 align=1
- (get_local $0)
- (get_local $1)
- )
+ (i32.store16 align=1
+ (get_local $0)
+ (get_local $1)
)
(return)
)
(func $sti16_a2 (param $0 i32) (param $1 i32)
- (drop
- (i32.store16
- (get_local $0)
- (get_local $1)
- )
+ (i32.store16
+ (get_local $0)
+ (get_local $1)
)
(return)
)
(func $sti16_a4 (param $0 i32) (param $1 i32)
- (drop
- (i32.store16
- (get_local $0)
- (get_local $1)
- )
+ (i32.store16
+ (get_local $0)
+ (get_local $1)
)
(return)
)
diff --git a/test/llvm_autogenerated/i64-load-store-alignment.wast b/test/llvm_autogenerated/i64-load-store-alignment.wast
index 40987cba8..b820c436e 100644
--- a/test/llvm_autogenerated/i64-load-store-alignment.wast
+++ b/test/llvm_autogenerated/i64-load-store-alignment.wast
@@ -138,137 +138,107 @@
)
)
(func $sti64_a1 (param $0 i32) (param $1 i64)
- (drop
- (i64.store align=1
- (get_local $0)
- (get_local $1)
- )
+ (i64.store align=1
+ (get_local $0)
+ (get_local $1)
)
(return)
)
(func $sti64_a2 (param $0 i32) (param $1 i64)
- (drop
- (i64.store align=2
- (get_local $0)
- (get_local $1)
- )
+ (i64.store align=2
+ (get_local $0)
+ (get_local $1)
)
(return)
)
(func $sti64_a4 (param $0 i32) (param $1 i64)
- (drop
- (i64.store align=4
- (get_local $0)
- (get_local $1)
- )
+ (i64.store align=4
+ (get_local $0)
+ (get_local $1)
)
(return)
)
(func $sti64_a8 (param $0 i32) (param $1 i64)
- (drop
- (i64.store
- (get_local $0)
- (get_local $1)
- )
+ (i64.store
+ (get_local $0)
+ (get_local $1)
)
(return)
)
(func $sti64 (param $0 i32) (param $1 i64)
- (drop
- (i64.store
- (get_local $0)
- (get_local $1)
- )
+ (i64.store
+ (get_local $0)
+ (get_local $1)
)
(return)
)
(func $sti64_a16 (param $0 i32) (param $1 i64)
- (drop
- (i64.store
- (get_local $0)
- (get_local $1)
- )
+ (i64.store
+ (get_local $0)
+ (get_local $1)
)
(return)
)
(func $sti8_a1 (param $0 i32) (param $1 i64)
- (drop
- (i64.store8
- (get_local $0)
- (get_local $1)
- )
+ (i64.store8
+ (get_local $0)
+ (get_local $1)
)
(return)
)
(func $sti8_a2 (param $0 i32) (param $1 i64)
- (drop
- (i64.store8
- (get_local $0)
- (get_local $1)
- )
+ (i64.store8
+ (get_local $0)
+ (get_local $1)
)
(return)
)
(func $sti16_a1 (param $0 i32) (param $1 i64)
- (drop
- (i64.store16 align=1
- (get_local $0)
- (get_local $1)
- )
+ (i64.store16 align=1
+ (get_local $0)
+ (get_local $1)
)
(return)
)
(func $sti16_a2 (param $0 i32) (param $1 i64)
- (drop
- (i64.store16
- (get_local $0)
- (get_local $1)
- )
+ (i64.store16
+ (get_local $0)
+ (get_local $1)
)
(return)
)
(func $sti16_a4 (param $0 i32) (param $1 i64)
- (drop
- (i64.store16
- (get_local $0)
- (get_local $1)
- )
+ (i64.store16
+ (get_local $0)
+ (get_local $1)
)
(return)
)
(func $sti32_a1 (param $0 i32) (param $1 i64)
- (drop
- (i64.store align=1
- (get_local $0)
- (get_local $1)
- )
+ (i64.store align=1
+ (get_local $0)
+ (get_local $1)
)
(return)
)
(func $sti32_a2 (param $0 i32) (param $1 i64)
- (drop
- (i64.store align=2
- (get_local $0)
- (get_local $1)
- )
+ (i64.store align=2
+ (get_local $0)
+ (get_local $1)
)
(return)
)
(func $sti32_a4 (param $0 i32) (param $1 i64)
- (drop
- (i64.store
- (get_local $0)
- (get_local $1)
- )
+ (i64.store
+ (get_local $0)
+ (get_local $1)
)
(return)
)
(func $sti32_a8 (param $0 i32) (param $1 i64)
- (drop
- (i64.store
- (get_local $0)
- (get_local $1)
- )
+ (i64.store
+ (get_local $0)
+ (get_local $1)
)
(return)
)
diff --git a/test/llvm_autogenerated/irreducible-cfg.wast b/test/llvm_autogenerated/irreducible-cfg.wast
index c1816bf3e..5eb100784 100644
--- a/test/llvm_autogenerated/irreducible-cfg.wast
+++ b/test/llvm_autogenerated/irreducible-cfg.wast
@@ -61,24 +61,22 @@
)
(br $label$2)
)
- (drop
- (f64.store align=4
- (tee_local $2
- (i32.add
- (get_local $0)
- (i32.shl
- (get_local $5)
- (i32.const 3)
- )
+ (f64.store align=4
+ (tee_local $2
+ (i32.add
+ (get_local $0)
+ (i32.shl
+ (get_local $5)
+ (i32.const 3)
)
)
- (tee_local $4
- (f64.mul
- (f64.load align=4
- (get_local $2)
- )
- (f64.const 2.3)
+ )
+ (tee_local $4
+ (f64.mul
+ (f64.load align=4
+ (get_local $2)
)
+ (f64.const 2.3)
)
)
)
@@ -87,20 +85,18 @@
)
(br $label$2)
)
- (drop
- (f64.store align=4
- (i32.add
- (get_local $0)
- (i32.shl
- (get_local $5)
- (i32.const 3)
- )
- )
- (f64.add
- (get_local $4)
- (f64.const 1.3)
+ (f64.store align=4
+ (i32.add
+ (get_local $0)
+ (i32.shl
+ (get_local $5)
+ (i32.const 3)
)
)
+ (f64.add
+ (get_local $4)
+ (f64.const 1.3)
+ )
)
(set_local $5
(i32.add
@@ -183,24 +179,22 @@
)
(br $label$2)
)
- (drop
- (f64.store align=4
- (tee_local $2
- (i32.add
- (get_local $0)
- (i32.shl
- (get_local $5)
- (i32.const 3)
- )
+ (f64.store align=4
+ (tee_local $2
+ (i32.add
+ (get_local $0)
+ (i32.shl
+ (get_local $5)
+ (i32.const 3)
)
)
- (tee_local $4
- (f64.mul
- (f64.load align=4
- (get_local $2)
- )
- (f64.const 2.3)
+ )
+ (tee_local $4
+ (f64.mul
+ (f64.load align=4
+ (get_local $2)
)
+ (f64.const 2.3)
)
)
)
@@ -228,20 +222,18 @@
)
(br $label$2)
)
- (drop
- (f64.store align=4
- (i32.add
- (get_local $0)
- (i32.shl
- (get_local $5)
- (i32.const 3)
- )
- )
- (f64.add
- (get_local $4)
- (f64.const 1.3)
+ (f64.store align=4
+ (i32.add
+ (get_local $0)
+ (i32.shl
+ (get_local $5)
+ (i32.const 3)
)
)
+ (f64.add
+ (get_local $4)
+ (f64.const 1.3)
+ )
)
(set_local $5
(i32.add
diff --git a/test/llvm_autogenerated/legalize.wast b/test/llvm_autogenerated/legalize.wast
index 4c32851ed..af9a5b617 100644
--- a/test/llvm_autogenerated/legalize.wast
+++ b/test/llvm_autogenerated/legalize.wast
@@ -83,1342 +83,1145 @@
(local $50 i32)
(local $51 i32)
(local $52 i32)
- (drop
- (i32.store offset=4
- (i32.const 0)
- (tee_local $52
- (i32.sub
- (i32.load offset=4
- (i32.const 0)
- )
- (i32.const 1024)
+ (i32.store offset=4
+ (i32.const 0)
+ (tee_local $52
+ (i32.sub
+ (i32.load offset=4
+ (i32.const 0)
)
+ (i32.const 1024)
)
)
)
- (drop
- (call $__ashlti3
- (i32.add
- (get_local $52)
- (i32.const 512)
- )
- (get_local $1)
- (get_local $2)
- (tee_local $33
- (i32.wrap/i64
- (get_local $17)
- )
+ (call $__ashlti3
+ (i32.add
+ (get_local $52)
+ (i32.const 512)
+ )
+ (get_local $1)
+ (get_local $2)
+ (tee_local $33
+ (i32.wrap/i64
+ (get_local $17)
)
)
)
- (drop
- (call $__ashlti3
- (i32.add
- (get_local $52)
- (i32.const 528)
- )
- (get_local $3)
- (get_local $4)
- (get_local $33)
+ (call $__ashlti3
+ (i32.add
+ (get_local $52)
+ (i32.const 528)
)
+ (get_local $3)
+ (get_local $4)
+ (get_local $33)
)
- (drop
- (call $__lshrti3
- (i32.add
- (get_local $52)
- (i32.const 544)
- )
- (get_local $1)
- (get_local $2)
- (tee_local $41
- (i32.sub
- (i32.const 128)
- (get_local $33)
- )
+ (call $__lshrti3
+ (i32.add
+ (get_local $52)
+ (i32.const 544)
+ )
+ (get_local $1)
+ (get_local $2)
+ (tee_local $41
+ (i32.sub
+ (i32.const 128)
+ (get_local $33)
)
)
)
- (drop
- (call $__ashlti3
+ (call $__ashlti3
+ (i32.add
+ (get_local $52)
+ (i32.const 560)
+ )
+ (get_local $1)
+ (get_local $2)
+ (tee_local $42
(i32.add
- (get_local $52)
- (i32.const 560)
- )
- (get_local $1)
- (get_local $2)
- (tee_local $42
- (i32.add
- (get_local $33)
- (i32.const -128)
- )
+ (get_local $33)
+ (i32.const -128)
)
)
)
- (drop
- (call $__lshrti3
- (i32.add
- (get_local $52)
- (i32.const 736)
- )
- (get_local $1)
- (get_local $2)
- (tee_local $43
- (i32.sub
- (i32.const 384)
- (get_local $33)
- )
+ (call $__lshrti3
+ (i32.add
+ (get_local $52)
+ (i32.const 736)
+ )
+ (get_local $1)
+ (get_local $2)
+ (tee_local $43
+ (i32.sub
+ (i32.const 384)
+ (get_local $33)
)
)
)
- (drop
- (call $__ashlti3
+ (call $__ashlti3
+ (i32.add
+ (get_local $52)
+ (i32.const 720)
+ )
+ (get_local $3)
+ (get_local $4)
+ (tee_local $34
(i32.add
- (get_local $52)
- (i32.const 720)
- )
- (get_local $3)
- (get_local $4)
- (tee_local $34
- (i32.add
- (get_local $33)
- (i32.const -256)
- )
+ (get_local $33)
+ (i32.const -256)
)
)
)
- (drop
- (call $__ashlti3
+ (call $__ashlti3
+ (i32.add
+ (get_local $52)
+ (i32.const 752)
+ )
+ (get_local $1)
+ (get_local $2)
+ (tee_local $39
(i32.add
- (get_local $52)
- (i32.const 752)
- )
- (get_local $1)
- (get_local $2)
- (tee_local $39
- (i32.add
- (get_local $33)
- (i32.const -384)
- )
+ (get_local $33)
+ (i32.const -384)
)
)
)
- (drop
- (call $__ashlti3
- (i32.add
- (get_local $52)
- (i32.const 592)
- )
- (get_local $7)
- (get_local $8)
- (get_local $33)
+ (call $__ashlti3
+ (i32.add
+ (get_local $52)
+ (i32.const 592)
)
+ (get_local $7)
+ (get_local $8)
+ (get_local $33)
)
- (drop
- (call $__lshrti3
- (i32.add
- (get_local $52)
- (i32.const 608)
- )
- (get_local $5)
- (get_local $6)
- (get_local $41)
+ (call $__lshrti3
+ (i32.add
+ (get_local $52)
+ (i32.const 608)
)
+ (get_local $5)
+ (get_local $6)
+ (get_local $41)
)
- (drop
- (call $__ashlti3
- (i32.add
- (get_local $52)
- (i32.const 624)
- )
- (get_local $5)
- (get_local $6)
- (get_local $42)
+ (call $__ashlti3
+ (i32.add
+ (get_local $52)
+ (i32.const 624)
)
+ (get_local $5)
+ (get_local $6)
+ (get_local $42)
)
- (drop
- (call $__lshrti3
- (i32.add
- (get_local $52)
- (i32.const 688)
- )
- (get_local $3)
- (get_local $4)
- (tee_local $35
- (i32.sub
- (i32.const 256)
- (get_local $33)
- )
+ (call $__lshrti3
+ (i32.add
+ (get_local $52)
+ (i32.const 688)
+ )
+ (get_local $3)
+ (get_local $4)
+ (tee_local $35
+ (i32.sub
+ (i32.const 256)
+ (get_local $33)
)
)
)
- (drop
- (call $__lshrti3
- (i32.add
- (get_local $52)
- (i32.const 640)
- )
- (get_local $1)
- (get_local $2)
- (get_local $35)
+ (call $__lshrti3
+ (i32.add
+ (get_local $52)
+ (i32.const 640)
)
+ (get_local $1)
+ (get_local $2)
+ (get_local $35)
)
- (drop
- (call $__ashlti3
- (i32.add
- (get_local $52)
- (i32.const 656)
- )
- (get_local $3)
- (get_local $4)
- (tee_local $50
- (i32.sub
- (i32.const 128)
- (get_local $35)
- )
+ (call $__ashlti3
+ (i32.add
+ (get_local $52)
+ (i32.const 656)
+ )
+ (get_local $3)
+ (get_local $4)
+ (tee_local $50
+ (i32.sub
+ (i32.const 128)
+ (get_local $35)
)
)
)
- (drop
- (call $__lshrti3
- (i32.add
- (get_local $52)
- (i32.const 672)
- )
- (get_local $3)
- (get_local $4)
- (get_local $41)
+ (call $__lshrti3
+ (i32.add
+ (get_local $52)
+ (i32.const 672)
)
+ (get_local $3)
+ (get_local $4)
+ (get_local $41)
)
- (drop
- (call $__ashlti3
- (i32.add
- (get_local $52)
- (i32.const 576)
- )
- (get_local $5)
- (get_local $6)
- (get_local $33)
+ (call $__ashlti3
+ (i32.add
+ (get_local $52)
+ (i32.const 576)
)
+ (get_local $5)
+ (get_local $6)
+ (get_local $33)
)
- (drop
- (call $__ashlti3
- (i32.add
- (get_local $52)
- (i32.const 704)
- )
- (get_local $1)
- (get_local $2)
- (get_local $34)
+ (call $__ashlti3
+ (i32.add
+ (get_local $52)
+ (i32.const 704)
+ )
+ (get_local $1)
+ (get_local $2)
+ (get_local $34)
+ )
+ (call $__lshrti3
+ (i32.add
+ (get_local $52)
+ (i32.const 480)
+ )
+ (get_local $1)
+ (get_local $2)
+ (i32.sub
+ (i32.const 896)
+ (get_local $33)
)
)
- (drop
- (call $__lshrti3
+ (call $__ashlti3
+ (i32.add
+ (get_local $52)
+ (i32.const 464)
+ )
+ (get_local $3)
+ (get_local $4)
+ (tee_local $36
(i32.add
- (get_local $52)
- (i32.const 480)
- )
- (get_local $1)
- (get_local $2)
- (i32.sub
- (i32.const 896)
(get_local $33)
+ (i32.const -768)
)
)
)
- (drop
- (call $__ashlti3
- (i32.add
- (get_local $52)
- (i32.const 464)
- )
- (get_local $3)
- (get_local $4)
- (tee_local $36
- (i32.add
- (get_local $33)
- (i32.const -768)
- )
- )
+ (call $__ashlti3
+ (i32.add
+ (get_local $52)
+ (i32.const 496)
+ )
+ (get_local $1)
+ (get_local $2)
+ (i32.add
+ (get_local $33)
+ (i32.const -896)
)
)
- (drop
- (call $__ashlti3
- (i32.add
- (get_local $52)
- (i32.const 496)
- )
- (get_local $1)
- (get_local $2)
- (i32.add
+ (call $__lshrti3
+ (i32.add
+ (get_local $52)
+ (i32.const 352)
+ )
+ (get_local $5)
+ (get_local $6)
+ (tee_local $45
+ (i32.sub
+ (i32.const 640)
(get_local $33)
- (i32.const -896)
)
)
)
- (drop
- (call $__lshrti3
+ (call $__ashlti3
+ (i32.add
+ (get_local $52)
+ (i32.const 336)
+ )
+ (get_local $7)
+ (get_local $8)
+ (tee_local $37
(i32.add
- (get_local $52)
- (i32.const 352)
- )
- (get_local $5)
- (get_local $6)
- (tee_local $45
- (i32.sub
- (i32.const 640)
- (get_local $33)
- )
+ (get_local $33)
+ (i32.const -512)
)
)
)
- (drop
- (call $__ashlti3
+ (call $__ashlti3
+ (i32.add
+ (get_local $52)
+ (i32.const 368)
+ )
+ (get_local $5)
+ (get_local $6)
+ (tee_local $51
(i32.add
- (get_local $52)
- (i32.const 336)
- )
- (get_local $7)
- (get_local $8)
- (tee_local $37
- (i32.add
- (get_local $33)
- (i32.const -512)
- )
+ (get_local $33)
+ (i32.const -640)
)
)
)
- (drop
- (call $__ashlti3
- (i32.add
- (get_local $52)
- (i32.const 368)
- )
- (get_local $5)
- (get_local $6)
- (tee_local $51
- (i32.add
- (get_local $33)
- (i32.const -640)
- )
+ (call $__lshrti3
+ (i32.add
+ (get_local $52)
+ (i32.const 432)
+ )
+ (get_local $3)
+ (get_local $4)
+ (tee_local $38
+ (i32.sub
+ (i32.const 768)
+ (get_local $33)
)
)
)
- (drop
- (call $__lshrti3
- (i32.add
- (get_local $52)
- (i32.const 432)
- )
- (get_local $3)
- (get_local $4)
- (tee_local $38
- (i32.sub
- (i32.const 768)
- (get_local $33)
- )
- )
+ (call $__lshrti3
+ (i32.add
+ (get_local $52)
+ (i32.const 864)
)
+ (get_local $9)
+ (get_local $10)
+ (get_local $43)
)
- (drop
- (call $__lshrti3
- (i32.add
- (get_local $52)
- (i32.const 864)
- )
- (get_local $9)
- (get_local $10)
- (get_local $43)
+ (call $__ashlti3
+ (i32.add
+ (get_local $52)
+ (i32.const 848)
)
+ (get_local $11)
+ (get_local $12)
+ (get_local $34)
)
- (drop
- (call $__ashlti3
- (i32.add
- (get_local $52)
- (i32.const 848)
- )
- (get_local $11)
- (get_local $12)
- (get_local $34)
+ (call $__ashlti3
+ (i32.add
+ (get_local $52)
+ (i32.const 880)
)
+ (get_local $9)
+ (get_local $10)
+ (get_local $39)
)
- (drop
- (call $__ashlti3
- (i32.add
- (get_local $52)
- (i32.const 880)
- )
- (get_local $9)
- (get_local $10)
- (get_local $39)
+ (call $__ashlti3
+ (i32.add
+ (get_local $52)
+ (i32.const 1008)
)
+ (get_local $15)
+ (get_local $16)
+ (get_local $33)
)
- (drop
- (call $__ashlti3
- (i32.add
- (get_local $52)
- (i32.const 1008)
- )
- (get_local $15)
- (get_local $16)
- (get_local $33)
+ (call $__lshrti3
+ (i32.add
+ (get_local $52)
+ (i32.const 960)
)
+ (get_local $13)
+ (get_local $14)
+ (get_local $41)
)
- (drop
- (call $__lshrti3
- (i32.add
- (get_local $52)
- (i32.const 960)
- )
- (get_local $13)
- (get_local $14)
- (get_local $41)
+ (call $__ashlti3
+ (i32.add
+ (get_local $52)
+ (i32.const 976)
)
+ (get_local $13)
+ (get_local $14)
+ (get_local $42)
)
- (drop
- (call $__ashlti3
- (i32.add
- (get_local $52)
- (i32.const 976)
- )
- (get_local $13)
- (get_local $14)
- (get_local $42)
+ (call $__lshrti3
+ (i32.add
+ (get_local $52)
+ (i32.const 816)
)
+ (get_local $11)
+ (get_local $12)
+ (get_local $35)
)
- (drop
- (call $__lshrti3
- (i32.add
- (get_local $52)
- (i32.const 816)
+ (call $__lshrti3
+ (i32.add
+ (get_local $52)
+ (i32.const 240)
+ )
+ (get_local $7)
+ (get_local $8)
+ (tee_local $39
+ (i32.sub
+ (i32.const 512)
+ (get_local $33)
)
- (get_local $11)
- (get_local $12)
- (get_local $35)
)
)
- (drop
- (call $__lshrti3
- (i32.add
- (get_local $52)
- (i32.const 240)
- )
- (get_local $7)
- (get_local $8)
- (tee_local $39
- (i32.sub
- (i32.const 512)
- (get_local $33)
- )
- )
+ (call $__lshrti3
+ (i32.add
+ (get_local $52)
+ (i32.const 192)
)
+ (get_local $5)
+ (get_local $6)
+ (get_local $39)
)
- (drop
- (call $__lshrti3
- (i32.add
- (get_local $52)
- (i32.const 192)
+ (call $__ashlti3
+ (i32.add
+ (get_local $52)
+ (i32.const 208)
+ )
+ (get_local $7)
+ (get_local $8)
+ (tee_local $44
+ (i32.sub
+ (i32.const 128)
+ (get_local $39)
)
- (get_local $5)
- (get_local $6)
- (get_local $39)
)
)
- (drop
- (call $__ashlti3
- (i32.add
- (get_local $52)
- (i32.const 208)
- )
- (get_local $7)
- (get_local $8)
- (tee_local $44
- (i32.sub
- (i32.const 128)
- (get_local $39)
- )
- )
+ (call $__lshrti3
+ (i32.add
+ (get_local $52)
+ (i32.const 224)
)
+ (get_local $7)
+ (get_local $8)
+ (get_local $43)
)
- (drop
- (call $__lshrti3
- (i32.add
- (get_local $52)
- (i32.const 224)
- )
- (get_local $7)
- (get_local $8)
- (get_local $43)
+ (call $__lshrti3
+ (i32.add
+ (get_local $52)
+ (i32.const 768)
)
+ (get_local $9)
+ (get_local $10)
+ (get_local $35)
)
- (drop
- (call $__lshrti3
- (i32.add
- (get_local $52)
- (i32.const 768)
- )
- (get_local $9)
- (get_local $10)
- (get_local $35)
+ (call $__ashlti3
+ (i32.add
+ (get_local $52)
+ (i32.const 784)
)
+ (get_local $11)
+ (get_local $12)
+ (get_local $50)
)
- (drop
- (call $__ashlti3
- (i32.add
- (get_local $52)
- (i32.const 784)
- )
- (get_local $11)
- (get_local $12)
- (get_local $50)
+ (call $__lshrti3
+ (i32.add
+ (get_local $52)
+ (i32.const 800)
)
+ (get_local $11)
+ (get_local $12)
+ (get_local $41)
)
- (drop
- (call $__lshrti3
- (i32.add
- (get_local $52)
- (i32.const 800)
- )
- (get_local $11)
- (get_local $12)
- (get_local $41)
+ (call $__ashlti3
+ (i32.add
+ (get_local $52)
+ (i32.const 992)
)
+ (get_local $13)
+ (get_local $14)
+ (get_local $33)
)
- (drop
- (call $__ashlti3
- (i32.add
- (get_local $52)
- (i32.const 992)
- )
- (get_local $13)
- (get_local $14)
- (get_local $33)
+ (call $__ashlti3
+ (i32.add
+ (get_local $52)
+ (i32.const 832)
)
+ (get_local $9)
+ (get_local $10)
+ (get_local $34)
)
- (drop
- (call $__ashlti3
- (i32.add
- (get_local $52)
- (i32.const 832)
- )
- (get_local $9)
- (get_local $10)
- (get_local $34)
+ (call $__lshrti3
+ (i32.add
+ (get_local $52)
+ (i32.const 384)
)
+ (get_local $1)
+ (get_local $2)
+ (get_local $38)
)
- (drop
- (call $__lshrti3
- (i32.add
- (get_local $52)
- (i32.const 384)
- )
- (get_local $1)
- (get_local $2)
+ (call $__ashlti3
+ (i32.add
+ (get_local $52)
+ (i32.const 400)
+ )
+ (get_local $3)
+ (get_local $4)
+ (i32.sub
+ (i32.const 128)
(get_local $38)
)
)
- (drop
- (call $__ashlti3
- (i32.add
- (get_local $52)
- (i32.const 400)
- )
- (get_local $3)
- (get_local $4)
- (i32.sub
- (i32.const 128)
- (get_local $38)
- )
+ (call $__lshrti3
+ (i32.add
+ (get_local $52)
+ (i32.const 416)
)
+ (get_local $3)
+ (get_local $4)
+ (get_local $45)
)
- (drop
- (call $__lshrti3
- (i32.add
- (get_local $52)
- (i32.const 416)
- )
- (get_local $3)
- (get_local $4)
- (get_local $45)
+ (call $__ashlti3
+ (i32.add
+ (get_local $52)
+ (i32.const 320)
)
+ (get_local $5)
+ (get_local $6)
+ (get_local $37)
)
- (drop
- (call $__ashlti3
- (i32.add
- (get_local $52)
- (i32.const 320)
- )
- (get_local $5)
- (get_local $6)
- (get_local $37)
+ (call $__ashlti3
+ (i32.add
+ (get_local $52)
+ (i32.const 448)
)
+ (get_local $1)
+ (get_local $2)
+ (get_local $36)
)
- (drop
- (call $__ashlti3
- (i32.add
- (get_local $52)
- (i32.const 448)
- )
- (get_local $1)
- (get_local $2)
- (get_local $36)
+ (call $__lshrti3
+ (i32.add
+ (get_local $52)
+ (i32.const 128)
)
+ (get_local $5)
+ (get_local $6)
+ (get_local $35)
)
- (drop
- (call $__lshrti3
- (i32.add
- (get_local $52)
- (i32.const 128)
- )
- (get_local $5)
- (get_local $6)
- (get_local $35)
+ (call $__ashlti3
+ (i32.add
+ (get_local $52)
+ (i32.const 144)
)
- )
- (drop
- (call $__ashlti3
- (i32.add
- (get_local $52)
- (i32.const 144)
- )
- (get_local $7)
- (get_local $8)
- (i32.sub
- (i32.const 384)
- (get_local $39)
- )
+ (get_local $7)
+ (get_local $8)
+ (i32.sub
+ (i32.const 384)
+ (get_local $39)
)
)
- (drop
- (call $__lshrti3
- (i32.add
- (get_local $52)
- (i32.const 160)
- )
- (get_local $7)
- (get_local $8)
- (get_local $41)
+ (call $__lshrti3
+ (i32.add
+ (get_local $52)
+ (i32.const 160)
)
+ (get_local $7)
+ (get_local $8)
+ (get_local $41)
)
- (drop
- (call $__lshrti3
+ (call $__lshrti3
+ (get_local $52)
+ (get_local $1)
+ (get_local $2)
+ (get_local $39)
+ )
+ (call $__ashlti3
+ (i32.add
(get_local $52)
- (get_local $1)
- (get_local $2)
- (get_local $39)
+ (i32.const 16)
)
+ (get_local $3)
+ (get_local $4)
+ (get_local $44)
)
- (drop
- (call $__ashlti3
- (i32.add
- (get_local $52)
- (i32.const 16)
- )
- (get_local $3)
- (get_local $4)
- (get_local $44)
+ (call $__lshrti3
+ (i32.add
+ (get_local $52)
+ (i32.const 32)
)
+ (get_local $3)
+ (get_local $4)
+ (get_local $43)
)
- (drop
- (call $__lshrti3
- (i32.add
- (get_local $52)
- (i32.const 32)
+ (call $__ashlti3
+ (i32.add
+ (get_local $52)
+ (i32.const 64)
+ )
+ (get_local $5)
+ (get_local $6)
+ (tee_local $40
+ (i32.sub
+ (i32.const 256)
+ (get_local $39)
)
- (get_local $3)
- (get_local $4)
- (get_local $43)
)
)
- (drop
- (call $__ashlti3
- (i32.add
- (get_local $52)
- (i32.const 64)
- )
- (get_local $5)
- (get_local $6)
- (tee_local $40
- (i32.sub
- (i32.const 256)
- (get_local $39)
- )
- )
+ (call $__ashlti3
+ (i32.add
+ (get_local $52)
+ (i32.const 896)
)
+ (get_local $9)
+ (get_local $10)
+ (get_local $33)
)
- (drop
- (call $__ashlti3
- (i32.add
- (get_local $52)
- (i32.const 896)
- )
- (get_local $9)
- (get_local $10)
- (get_local $33)
+ (call $__ashlti3
+ (i32.add
+ (get_local $52)
+ (i32.const 256)
)
+ (get_local $1)
+ (get_local $2)
+ (get_local $37)
)
- (drop
- (call $__ashlti3
- (i32.add
- (get_local $52)
- (i32.const 256)
- )
- (get_local $1)
- (get_local $2)
- (get_local $37)
+ (call $__ashlti3
+ (i32.add
+ (get_local $52)
+ (i32.const 912)
)
+ (get_local $11)
+ (get_local $12)
+ (get_local $33)
)
- (drop
- (call $__ashlti3
- (i32.add
- (get_local $52)
- (i32.const 912)
- )
- (get_local $11)
- (get_local $12)
- (get_local $33)
+ (call $__lshrti3
+ (i32.add
+ (get_local $52)
+ (i32.const 928)
)
+ (get_local $9)
+ (get_local $10)
+ (get_local $41)
)
- (drop
- (call $__lshrti3
- (i32.add
- (get_local $52)
- (i32.const 928)
- )
- (get_local $9)
- (get_local $10)
- (get_local $41)
+ (call $__ashlti3
+ (i32.add
+ (get_local $52)
+ (i32.const 944)
)
+ (get_local $9)
+ (get_local $10)
+ (get_local $42)
)
- (drop
- (call $__ashlti3
- (i32.add
- (get_local $52)
- (i32.const 944)
- )
- (get_local $9)
- (get_local $10)
- (get_local $42)
+ (call $__ashlti3
+ (i32.add
+ (get_local $52)
+ (i32.const 80)
)
+ (get_local $7)
+ (get_local $8)
+ (get_local $40)
)
- (drop
- (call $__ashlti3
- (i32.add
- (get_local $52)
- (i32.const 80)
- )
- (get_local $7)
- (get_local $8)
+ (call $__lshrti3
+ (i32.add
+ (get_local $52)
+ (i32.const 96)
+ )
+ (get_local $5)
+ (get_local $6)
+ (i32.sub
+ (i32.const 128)
(get_local $40)
)
)
- (drop
- (call $__lshrti3
- (i32.add
- (get_local $52)
- (i32.const 96)
- )
- (get_local $5)
- (get_local $6)
- (i32.sub
- (i32.const 128)
- (get_local $40)
- )
+ (call $__ashlti3
+ (i32.add
+ (get_local $52)
+ (i32.const 112)
)
+ (get_local $5)
+ (get_local $6)
+ (get_local $44)
)
- (drop
- (call $__ashlti3
- (i32.add
- (get_local $52)
- (i32.const 112)
- )
- (get_local $5)
- (get_local $6)
- (get_local $44)
+ (call $__lshrti3
+ (i32.add
+ (get_local $52)
+ (i32.const 48)
)
+ (get_local $3)
+ (get_local $4)
+ (get_local $39)
)
- (drop
- (call $__lshrti3
- (i32.add
- (get_local $52)
- (i32.const 48)
- )
- (get_local $3)
- (get_local $4)
- (get_local $39)
+ (call $__lshrti3
+ (i32.add
+ (get_local $52)
+ (i32.const 176)
)
+ (get_local $7)
+ (get_local $8)
+ (get_local $35)
)
- (drop
- (call $__lshrti3
- (i32.add
- (get_local $52)
- (i32.const 176)
- )
- (get_local $7)
- (get_local $8)
- (get_local $35)
+ (call $__lshrti3
+ (i32.add
+ (get_local $52)
+ (i32.const 288)
)
+ (get_local $1)
+ (get_local $2)
+ (get_local $45)
)
- (drop
- (call $__lshrti3
- (i32.add
- (get_local $52)
- (i32.const 288)
- )
- (get_local $1)
- (get_local $2)
- (get_local $45)
+ (call $__ashlti3
+ (i32.add
+ (get_local $52)
+ (i32.const 272)
)
+ (get_local $3)
+ (get_local $4)
+ (get_local $37)
)
- (drop
- (call $__ashlti3
- (i32.add
- (get_local $52)
- (i32.const 272)
- )
- (get_local $3)
- (get_local $4)
- (get_local $37)
+ (call $__ashlti3
+ (i32.add
+ (get_local $52)
+ (i32.const 304)
)
+ (get_local $1)
+ (get_local $2)
+ (get_local $51)
)
- (drop
- (call $__ashlti3
- (i32.add
- (get_local $52)
- (i32.const 304)
- )
- (get_local $1)
- (get_local $2)
- (get_local $51)
+ (i64.store
+ (i32.add
+ (get_local $0)
+ (i32.const 8)
)
- )
- (drop
- (i64.store
- (i32.add
- (get_local $0)
- (i32.const 8)
- )
+ (select
(select
(select
- (select
- (i64.load
+ (i64.load
+ (i32.add
(i32.add
- (i32.add
- (get_local $52)
- (i32.const 512)
- )
- (i32.const 8)
- )
- )
- (i64.const 0)
- (tee_local $41
- (i32.lt_u
- (get_local $33)
- (i32.const 128)
+ (get_local $52)
+ (i32.const 512)
)
+ (i32.const 8)
)
)
(i64.const 0)
- (tee_local $42
+ (tee_local $41
(i32.lt_u
(get_local $33)
- (i32.const 256)
+ (i32.const 128)
)
)
)
(i64.const 0)
- (tee_local $43
+ (tee_local $42
(i32.lt_u
(get_local $33)
- (i32.const 512)
+ (i32.const 256)
)
)
)
+ (i64.const 0)
+ (tee_local $43
+ (i32.lt_u
+ (get_local $33)
+ (i32.const 512)
+ )
+ )
)
)
- (drop
- (i64.store
- (get_local $0)
+ (i64.store
+ (get_local $0)
+ (select
(select
(select
- (select
- (i64.load offset=512
- (get_local $52)
- )
- (i64.const 0)
- (get_local $41)
+ (i64.load offset=512
+ (get_local $52)
)
(i64.const 0)
- (get_local $42)
+ (get_local $41)
)
(i64.const 0)
- (get_local $43)
+ (get_local $42)
)
+ (i64.const 0)
+ (get_local $43)
)
)
- (drop
- (i64.store
- (i32.add
- (get_local $0)
- (i32.const 24)
- )
+ (i64.store
+ (i32.add
+ (get_local $0)
+ (i32.const 24)
+ )
+ (select
(select
(select
(select
- (select
- (i64.or
- (i64.load
- (i32.add
- (i32.add
- (get_local $52)
- (i32.const 528)
- )
- (i32.const 8)
- )
- )
- (i64.load
+ (i64.or
+ (i64.load
+ (i32.add
(i32.add
- (i32.add
- (get_local $52)
- (i32.const 544)
- )
- (i32.const 8)
+ (get_local $52)
+ (i32.const 528)
)
+ (i32.const 8)
)
)
(i64.load
(i32.add
(i32.add
(get_local $52)
- (i32.const 560)
+ (i32.const 544)
)
(i32.const 8)
)
)
- (get_local $41)
)
- (get_local $4)
- (get_local $33)
+ (i64.load
+ (i32.add
+ (i32.add
+ (get_local $52)
+ (i32.const 560)
+ )
+ (i32.const 8)
+ )
+ )
+ (get_local $41)
)
- (i64.const 0)
- (get_local $42)
+ (get_local $4)
+ (get_local $33)
)
(i64.const 0)
- (get_local $43)
+ (get_local $42)
)
+ (i64.const 0)
+ (get_local $43)
)
)
- (drop
- (i64.store
- (i32.add
- (get_local $0)
- (i32.const 16)
- )
+ (i64.store
+ (i32.add
+ (get_local $0)
+ (i32.const 16)
+ )
+ (select
(select
(select
(select
- (select
- (i64.or
- (i64.load offset=528
- (get_local $52)
- )
- (i64.load offset=544
- (get_local $52)
- )
+ (i64.or
+ (i64.load offset=528
+ (get_local $52)
)
- (i64.load offset=560
+ (i64.load offset=544
(get_local $52)
)
- (get_local $41)
)
- (get_local $3)
- (get_local $33)
+ (i64.load offset=560
+ (get_local $52)
+ )
+ (get_local $41)
)
- (i64.const 0)
- (get_local $42)
+ (get_local $3)
+ (get_local $33)
)
(i64.const 0)
- (get_local $43)
+ (get_local $42)
)
+ (i64.const 0)
+ (get_local $43)
)
)
- (drop
- (i64.store
- (i32.add
- (get_local $0)
- (i32.const 56)
- )
+ (i64.store
+ (i32.add
+ (get_local $0)
+ (i32.const 56)
+ )
+ (select
(select
(select
- (select
- (i64.or
+ (i64.or
+ (select
(select
- (select
- (i64.or
- (i64.load
- (i32.add
- (i32.add
- (get_local $52)
- (i32.const 592)
- )
- (i32.const 8)
- )
- )
- (i64.load
+ (i64.or
+ (i64.load
+ (i32.add
(i32.add
- (i32.add
- (get_local $52)
- (i32.const 608)
- )
- (i32.const 8)
+ (get_local $52)
+ (i32.const 592)
)
+ (i32.const 8)
)
)
(i64.load
(i32.add
(i32.add
(get_local $52)
- (i32.const 624)
+ (i32.const 608)
)
(i32.const 8)
)
)
- (get_local $41)
)
- (get_local $8)
- (get_local $33)
- )
- (select
(i64.load
(i32.add
(i32.add
(get_local $52)
- (i32.const 688)
+ (i32.const 624)
)
(i32.const 8)
)
)
- (i64.const 0)
- (tee_local $45
- (i32.lt_u
- (get_local $35)
- (i32.const 128)
+ (get_local $41)
+ )
+ (get_local $8)
+ (get_local $33)
+ )
+ (select
+ (i64.load
+ (i32.add
+ (i32.add
+ (get_local $52)
+ (i32.const 688)
)
+ (i32.const 8)
+ )
+ )
+ (i64.const 0)
+ (tee_local $45
+ (i32.lt_u
+ (get_local $35)
+ (i32.const 128)
)
)
)
+ )
+ (select
(select
- (select
- (i64.or
- (i64.load
- (i32.add
- (i32.add
- (get_local $52)
- (i32.const 720)
- )
- (i32.const 8)
- )
- )
- (i64.load
+ (i64.or
+ (i64.load
+ (i32.add
(i32.add
- (i32.add
- (get_local $52)
- (i32.const 736)
- )
- (i32.const 8)
+ (get_local $52)
+ (i32.const 720)
)
+ (i32.const 8)
)
)
(i64.load
(i32.add
(i32.add
(get_local $52)
- (i32.const 752)
+ (i32.const 736)
)
(i32.const 8)
)
)
- (tee_local $44
- (i32.lt_u
- (get_local $34)
- (i32.const 128)
+ )
+ (i64.load
+ (i32.add
+ (i32.add
+ (get_local $52)
+ (i32.const 752)
)
+ (i32.const 8)
+ )
+ )
+ (tee_local $44
+ (i32.lt_u
+ (get_local $34)
+ (i32.const 128)
)
)
- (get_local $4)
- (get_local $34)
)
- (get_local $42)
+ (get_local $4)
+ (get_local $34)
)
- (get_local $8)
- (get_local $33)
+ (get_local $42)
)
- (i64.const 0)
- (get_local $43)
+ (get_local $8)
+ (get_local $33)
)
+ (i64.const 0)
+ (get_local $43)
)
)
- (drop
- (i64.store
- (i32.add
- (get_local $0)
- (i32.const 48)
- )
+ (i64.store
+ (i32.add
+ (get_local $0)
+ (i32.const 48)
+ )
+ (select
(select
(select
- (select
- (i64.or
+ (i64.or
+ (select
(select
- (select
- (i64.or
- (i64.load offset=592
- (get_local $52)
- )
- (i64.load offset=608
- (get_local $52)
- )
+ (i64.or
+ (i64.load offset=592
+ (get_local $52)
)
- (i64.load offset=624
+ (i64.load offset=608
(get_local $52)
)
- (get_local $41)
)
- (get_local $7)
- (get_local $33)
- )
- (select
- (i64.load offset=688
+ (i64.load offset=624
(get_local $52)
)
- (i64.const 0)
- (get_local $45)
+ (get_local $41)
)
+ (get_local $7)
+ (get_local $33)
)
(select
- (select
- (i64.or
- (i64.load offset=720
- (get_local $52)
- )
- (i64.load offset=736
- (get_local $52)
- )
+ (i64.load offset=688
+ (get_local $52)
+ )
+ (i64.const 0)
+ (get_local $45)
+ )
+ )
+ (select
+ (select
+ (i64.or
+ (i64.load offset=720
+ (get_local $52)
)
- (i64.load offset=752
+ (i64.load offset=736
(get_local $52)
)
- (get_local $44)
)
- (get_local $3)
- (get_local $34)
+ (i64.load offset=752
+ (get_local $52)
+ )
+ (get_local $44)
)
- (get_local $42)
+ (get_local $3)
+ (get_local $34)
)
- (get_local $7)
- (get_local $33)
+ (get_local $42)
)
- (i64.const 0)
- (get_local $43)
+ (get_local $7)
+ (get_local $33)
)
+ (i64.const 0)
+ (get_local $43)
)
)
- (drop
- (i64.store
- (i32.add
- (get_local $0)
- (i32.const 40)
- )
+ (i64.store
+ (i32.add
+ (get_local $0)
+ (i32.const 40)
+ )
+ (select
(select
(select
- (select
- (i64.or
- (select
- (i64.load
+ (i64.or
+ (select
+ (i64.load
+ (i32.add
(i32.add
- (i32.add
- (get_local $52)
- (i32.const 576)
- )
- (i32.const 8)
+ (get_local $52)
+ (i32.const 576)
)
+ (i32.const 8)
)
- (i64.const 0)
- (get_local $41)
)
+ (i64.const 0)
+ (get_local $41)
+ )
+ (select
(select
- (select
- (i64.or
- (i64.load
- (i32.add
- (i32.add
- (get_local $52)
- (i32.const 640)
- )
- (i32.const 8)
- )
- )
- (i64.load
+ (i64.or
+ (i64.load
+ (i32.add
(i32.add
- (i32.add
- (get_local $52)
- (i32.const 656)
- )
- (i32.const 8)
+ (get_local $52)
+ (i32.const 640)
)
+ (i32.const 8)
)
)
(i64.load
(i32.add
(i32.add
(get_local $52)
- (i32.const 672)
+ (i32.const 656)
)
(i32.const 8)
)
)
- (get_local $45)
)
- (get_local $2)
- (get_local $35)
+ (i64.load
+ (i32.add
+ (i32.add
+ (get_local $52)
+ (i32.const 672)
+ )
+ (i32.const 8)
+ )
+ )
+ (get_local $45)
)
+ (get_local $2)
+ (get_local $35)
)
- (select
- (i64.load
+ )
+ (select
+ (i64.load
+ (i32.add
(i32.add
- (i32.add
- (get_local $52)
- (i32.const 704)
- )
- (i32.const 8)
+ (get_local $52)
+ (i32.const 704)
)
+ (i32.const 8)
)
- (i64.const 0)
- (get_local $44)
)
- (get_local $42)
+ (i64.const 0)
+ (get_local $44)
)
- (get_local $6)
- (get_local $33)
+ (get_local $42)
)
- (i64.const 0)
- (get_local $43)
+ (get_local $6)
+ (get_local $33)
)
+ (i64.const 0)
+ (get_local $43)
)
)
- (drop
- (i64.store
- (i32.add
- (get_local $0)
- (i32.const 32)
- )
+ (i64.store
+ (i32.add
+ (get_local $0)
+ (i32.const 32)
+ )
+ (select
(select
(select
- (select
- (i64.or
- (select
- (i64.load offset=576
- (get_local $52)
- )
- (i64.const 0)
- (get_local $41)
+ (i64.or
+ (select
+ (i64.load offset=576
+ (get_local $52)
)
+ (i64.const 0)
+ (get_local $41)
+ )
+ (select
(select
- (select
- (i64.or
- (i64.load offset=640
- (get_local $52)
- )
- (i64.load offset=656
- (get_local $52)
- )
+ (i64.or
+ (i64.load offset=640
+ (get_local $52)
)
- (i64.load offset=672
+ (i64.load offset=656
(get_local $52)
)
- (get_local $45)
)
- (get_local $1)
- (get_local $35)
+ (i64.load offset=672
+ (get_local $52)
+ )
+ (get_local $45)
)
+ (get_local $1)
+ (get_local $35)
)
- (select
- (i64.load offset=704
- (get_local $52)
- )
- (i64.const 0)
- (get_local $44)
+ )
+ (select
+ (i64.load offset=704
+ (get_local $52)
)
- (get_local $42)
+ (i64.const 0)
+ (get_local $44)
)
- (get_local $5)
- (get_local $33)
+ (get_local $42)
)
- (i64.const 0)
- (get_local $43)
+ (get_local $5)
+ (get_local $33)
)
+ (i64.const 0)
+ (get_local $43)
)
)
- (drop
- (i64.store
- (i32.add
- (get_local $0)
- (i32.const 120)
- )
+ (i64.store
+ (i32.add
+ (get_local $0)
+ (i32.const 120)
+ )
+ (select
(select
- (select
- (i64.or
+ (i64.or
+ (select
(select
- (select
- (i64.or
- (select
- (select
- (i64.or
- (i64.load
- (i32.add
- (i32.add
- (get_local $52)
- (i32.const 1008)
- )
- (i32.const 8)
- )
- )
- (i64.load
- (i32.add
- (i32.add
- (get_local $52)
- (i32.const 960)
- )
- (i32.const 8)
- )
- )
- )
- (i64.load
- (i32.add
- (i32.add
- (get_local $52)
- (i32.const 976)
- )
- (i32.const 8)
- )
- )
- (get_local $41)
- )
- (get_local $16)
- (get_local $33)
- )
- (select
- (i64.load
- (i32.add
- (i32.add
- (get_local $52)
- (i32.const 816)
- )
- (i32.const 8)
- )
- )
- (i64.const 0)
- (get_local $45)
- )
- )
+ (i64.or
(select
(select
(i64.or
@@ -1426,7 +1229,7 @@
(i32.add
(i32.add
(get_local $52)
- (i32.const 848)
+ (i32.const 1008)
)
(i32.const 8)
)
@@ -1435,7 +1238,7 @@
(i32.add
(i32.add
(get_local $52)
- (i32.const 864)
+ (i32.const 960)
)
(i32.const 8)
)
@@ -1445,112 +1248,102 @@
(i32.add
(i32.add
(get_local $52)
- (i32.const 880)
+ (i32.const 976)
)
(i32.const 8)
)
)
- (get_local $44)
+ (get_local $41)
)
- (get_local $12)
- (get_local $34)
+ (get_local $16)
+ (get_local $33)
)
- (get_local $42)
- )
- (get_local $16)
- (get_local $33)
- )
- (select
- (select
- (i64.load
- (i32.add
+ (select
+ (i64.load
(i32.add
- (get_local $52)
- (i32.const 240)
+ (i32.add
+ (get_local $52)
+ (i32.const 816)
+ )
+ (i32.const 8)
)
- (i32.const 8)
)
- )
- (i64.const 0)
- (tee_local $50
- (i32.lt_u
- (get_local $39)
- (i32.const 128)
- )
- )
- )
- (i64.const 0)
- (tee_local $51
- (i32.lt_u
- (get_local $39)
- (i32.const 256)
+ (i64.const 0)
+ (get_local $45)
)
)
- )
- )
- (select
- (select
- (i64.or
+ (select
(select
- (select
- (i64.or
- (i64.load
- (i32.add
- (i32.add
- (get_local $52)
- (i32.const 336)
- )
- (i32.const 8)
- )
- )
- (i64.load
+ (i64.or
+ (i64.load
+ (i32.add
(i32.add
- (i32.add
- (get_local $52)
- (i32.const 352)
- )
- (i32.const 8)
+ (get_local $52)
+ (i32.const 848)
)
+ (i32.const 8)
)
)
(i64.load
(i32.add
(i32.add
(get_local $52)
- (i32.const 368)
+ (i32.const 864)
)
(i32.const 8)
)
)
- (tee_local $47
- (i32.lt_u
- (get_local $37)
- (i32.const 128)
- )
- )
)
- (get_local $8)
- (get_local $37)
- )
- (select
(i64.load
(i32.add
(i32.add
(get_local $52)
- (i32.const 432)
+ (i32.const 880)
)
(i32.const 8)
)
)
- (i64.const 0)
- (tee_local $48
- (i32.lt_u
- (get_local $38)
- (i32.const 128)
- )
+ (get_local $44)
+ )
+ (get_local $12)
+ (get_local $34)
+ )
+ (get_local $42)
+ )
+ (get_local $16)
+ (get_local $33)
+ )
+ (select
+ (select
+ (i64.load
+ (i32.add
+ (i32.add
+ (get_local $52)
+ (i32.const 240)
)
+ (i32.const 8)
)
)
+ (i64.const 0)
+ (tee_local $50
+ (i32.lt_u
+ (get_local $39)
+ (i32.const 128)
+ )
+ )
+ )
+ (i64.const 0)
+ (tee_local $51
+ (i32.lt_u
+ (get_local $39)
+ (i32.const 256)
+ )
+ )
+ )
+ )
+ (select
+ (select
+ (i64.or
(select
(select
(i64.or
@@ -1558,7 +1351,7 @@
(i32.add
(i32.add
(get_local $52)
- (i32.const 464)
+ (i32.const 336)
)
(i32.const 8)
)
@@ -1567,7 +1360,7 @@
(i32.add
(i32.add
(get_local $52)
- (i32.const 480)
+ (i32.const 352)
)
(i32.const 8)
)
@@ -1577,291 +1370,235 @@
(i32.add
(i32.add
(get_local $52)
- (i32.const 496)
+ (i32.const 368)
)
(i32.const 8)
)
)
- (tee_local $46
+ (tee_local $47
(i32.lt_u
- (get_local $36)
+ (get_local $37)
(i32.const 128)
)
)
)
- (get_local $4)
- (get_local $36)
+ (get_local $8)
+ (get_local $37)
)
- (tee_local $49
- (i32.lt_u
- (get_local $37)
- (i32.const 256)
+ (select
+ (i64.load
+ (i32.add
+ (i32.add
+ (get_local $52)
+ (i32.const 432)
+ )
+ (i32.const 8)
+ )
+ )
+ (i64.const 0)
+ (tee_local $48
+ (i32.lt_u
+ (get_local $38)
+ (i32.const 128)
+ )
)
)
)
- (get_local $8)
- (get_local $37)
- )
- (get_local $43)
- )
- (get_local $16)
- (get_local $33)
- )
- )
- )
- (drop
- (i64.store
- (i32.add
- (get_local $0)
- (i32.const 112)
- )
- (select
- (select
- (i64.or
(select
(select
(i64.or
- (select
- (select
- (i64.or
- (i64.load offset=1008
- (get_local $52)
- )
- (i64.load offset=960
- (get_local $52)
- )
- )
- (i64.load offset=976
+ (i64.load
+ (i32.add
+ (i32.add
(get_local $52)
+ (i32.const 464)
)
- (get_local $41)
- )
- (get_local $15)
- (get_local $33)
- )
- (select
- (i64.load offset=816
- (get_local $52)
+ (i32.const 8)
)
- (i64.const 0)
- (get_local $45)
)
- )
- (select
- (select
- (i64.or
- (i64.load offset=848
- (get_local $52)
- )
- (i64.load offset=864
+ (i64.load
+ (i32.add
+ (i32.add
(get_local $52)
+ (i32.const 480)
)
+ (i32.const 8)
)
- (i64.load offset=880
+ )
+ )
+ (i64.load
+ (i32.add
+ (i32.add
(get_local $52)
+ (i32.const 496)
)
- (get_local $44)
+ (i32.const 8)
+ )
+ )
+ (tee_local $46
+ (i32.lt_u
+ (get_local $36)
+ (i32.const 128)
)
- (get_local $11)
- (get_local $34)
)
- (get_local $42)
)
- (get_local $15)
- (get_local $33)
+ (get_local $4)
+ (get_local $36)
)
- (select
- (select
- (i64.load offset=240
- (get_local $52)
- )
- (i64.const 0)
- (get_local $50)
+ (tee_local $49
+ (i32.lt_u
+ (get_local $37)
+ (i32.const 256)
)
- (i64.const 0)
- (get_local $51)
)
)
+ (get_local $8)
+ (get_local $37)
+ )
+ (get_local $43)
+ )
+ (get_local $16)
+ (get_local $33)
+ )
+ )
+ (i64.store
+ (i32.add
+ (get_local $0)
+ (i32.const 112)
+ )
+ (select
+ (select
+ (i64.or
(select
(select
(i64.or
(select
(select
(i64.or
- (i64.load offset=336
+ (i64.load offset=1008
(get_local $52)
)
- (i64.load offset=352
+ (i64.load offset=960
(get_local $52)
)
)
- (i64.load offset=368
+ (i64.load offset=976
(get_local $52)
)
- (get_local $47)
+ (get_local $41)
)
- (get_local $7)
- (get_local $37)
+ (get_local $15)
+ (get_local $33)
)
(select
- (i64.load offset=432
+ (i64.load offset=816
(get_local $52)
)
(i64.const 0)
- (get_local $48)
+ (get_local $45)
)
)
(select
(select
(i64.or
- (i64.load offset=464
+ (i64.load offset=848
(get_local $52)
)
- (i64.load offset=480
+ (i64.load offset=864
(get_local $52)
)
)
- (i64.load offset=496
+ (i64.load offset=880
(get_local $52)
)
- (get_local $46)
+ (get_local $44)
)
- (get_local $3)
- (get_local $36)
+ (get_local $11)
+ (get_local $34)
)
- (get_local $49)
+ (get_local $42)
)
- (get_local $7)
- (get_local $37)
+ (get_local $15)
+ (get_local $33)
+ )
+ (select
+ (select
+ (i64.load offset=240
+ (get_local $52)
+ )
+ (i64.const 0)
+ (get_local $50)
+ )
+ (i64.const 0)
+ (get_local $51)
)
- (get_local $43)
)
- (get_local $15)
- (get_local $33)
- )
- )
- )
- (drop
- (i64.store
- (i32.add
- (get_local $0)
- (i32.const 104)
- )
- (select
(select
- (i64.or
- (select
+ (select
+ (i64.or
(select
- (i64.or
- (select
- (i64.load
- (i32.add
- (i32.add
- (get_local $52)
- (i32.const 992)
- )
- (i32.const 8)
- )
+ (select
+ (i64.or
+ (i64.load offset=336
+ (get_local $52)
)
- (i64.const 0)
- (get_local $41)
- )
- (select
- (select
- (i64.or
- (i64.load
- (i32.add
- (i32.add
- (get_local $52)
- (i32.const 768)
- )
- (i32.const 8)
- )
- )
- (i64.load
- (i32.add
- (i32.add
- (get_local $52)
- (i32.const 784)
- )
- (i32.const 8)
- )
- )
- )
- (i64.load
- (i32.add
- (i32.add
- (get_local $52)
- (i32.const 800)
- )
- (i32.const 8)
- )
- )
- (get_local $45)
+ (i64.load offset=352
+ (get_local $52)
)
- (get_local $10)
- (get_local $35)
)
- )
- (select
- (i64.load
- (i32.add
- (i32.add
- (get_local $52)
- (i32.const 832)
- )
- (i32.const 8)
- )
+ (i64.load offset=368
+ (get_local $52)
)
- (i64.const 0)
- (get_local $44)
+ (get_local $47)
)
- (get_local $42)
+ (get_local $7)
+ (get_local $37)
+ )
+ (select
+ (i64.load offset=432
+ (get_local $52)
+ )
+ (i64.const 0)
+ (get_local $48)
)
- (get_local $14)
- (get_local $33)
)
(select
(select
- (select
- (i64.or
- (i64.load
- (i32.add
- (i32.add
- (get_local $52)
- (i32.const 192)
- )
- (i32.const 8)
- )
- )
- (i64.load
- (i32.add
- (i32.add
- (get_local $52)
- (i32.const 208)
- )
- (i32.const 8)
- )
- )
+ (i64.or
+ (i64.load offset=464
+ (get_local $52)
)
- (i64.load
- (i32.add
- (i32.add
- (get_local $52)
- (i32.const 224)
- )
- (i32.const 8)
- )
+ (i64.load offset=480
+ (get_local $52)
)
- (get_local $50)
)
- (get_local $6)
- (get_local $39)
+ (i64.load offset=496
+ (get_local $52)
+ )
+ (get_local $46)
)
- (i64.const 0)
- (get_local $51)
+ (get_local $3)
+ (get_local $36)
)
+ (get_local $49)
)
+ (get_local $7)
+ (get_local $37)
+ )
+ (get_local $43)
+ )
+ (get_local $15)
+ (get_local $33)
+ )
+ )
+ (i64.store
+ (i32.add
+ (get_local $0)
+ (i32.const 104)
+ )
+ (select
+ (select
+ (i64.or
(select
(select
(i64.or
@@ -1870,13 +1607,13 @@
(i32.add
(i32.add
(get_local $52)
- (i32.const 320)
+ (i32.const 992)
)
(i32.const 8)
)
)
(i64.const 0)
- (get_local $47)
+ (get_local $41)
)
(select
(select
@@ -1885,7 +1622,7 @@
(i32.add
(i32.add
(get_local $52)
- (i32.const 384)
+ (i32.const 768)
)
(i32.const 8)
)
@@ -1894,7 +1631,7 @@
(i32.add
(i32.add
(get_local $52)
- (i32.const 400)
+ (i32.const 784)
)
(i32.const 8)
)
@@ -1904,15 +1641,15 @@
(i32.add
(i32.add
(get_local $52)
- (i32.const 416)
+ (i32.const 800)
)
(i32.const 8)
)
)
- (get_local $48)
+ (get_local $45)
)
- (get_local $2)
- (get_local $38)
+ (get_local $10)
+ (get_local $35)
)
)
(select
@@ -1920,662 +1657,761 @@
(i32.add
(i32.add
(get_local $52)
- (i32.const 448)
+ (i32.const 832)
)
(i32.const 8)
)
)
(i64.const 0)
- (get_local $46)
+ (get_local $44)
)
- (get_local $49)
+ (get_local $42)
)
- (get_local $6)
- (get_local $37)
+ (get_local $14)
+ (get_local $33)
)
- (get_local $43)
- )
- (get_local $14)
- (get_local $33)
- )
- )
- )
- (drop
- (i64.store
- (i32.add
- (get_local $0)
- (i32.const 96)
- )
- (select
- (select
- (i64.or
+ (select
(select
(select
(i64.or
- (select
- (i64.load offset=992
- (get_local $52)
+ (i64.load
+ (i32.add
+ (i32.add
+ (get_local $52)
+ (i32.const 192)
+ )
+ (i32.const 8)
)
- (i64.const 0)
- (get_local $41)
)
- (select
- (select
- (i64.or
- (i64.load offset=768
- (get_local $52)
- )
- (i64.load offset=784
- (get_local $52)
- )
- )
- (i64.load offset=800
+ (i64.load
+ (i32.add
+ (i32.add
(get_local $52)
+ (i32.const 208)
)
- (get_local $45)
+ (i32.const 8)
)
- (get_local $9)
- (get_local $35)
)
)
- (select
- (i64.load offset=832
- (get_local $52)
+ (i64.load
+ (i32.add
+ (i32.add
+ (get_local $52)
+ (i32.const 224)
+ )
+ (i32.const 8)
)
- (i64.const 0)
- (get_local $44)
)
- (get_local $42)
+ (get_local $50)
)
- (get_local $13)
- (get_local $33)
+ (get_local $6)
+ (get_local $39)
)
- (select
+ (i64.const 0)
+ (get_local $51)
+ )
+ )
+ (select
+ (select
+ (i64.or
+ (select
+ (i64.load
+ (i32.add
+ (i32.add
+ (get_local $52)
+ (i32.const 320)
+ )
+ (i32.const 8)
+ )
+ )
+ (i64.const 0)
+ (get_local $47)
+ )
(select
(select
(i64.or
- (i64.load offset=192
- (get_local $52)
+ (i64.load
+ (i32.add
+ (i32.add
+ (get_local $52)
+ (i32.const 384)
+ )
+ (i32.const 8)
+ )
)
- (i64.load offset=208
- (get_local $52)
+ (i64.load
+ (i32.add
+ (i32.add
+ (get_local $52)
+ (i32.const 400)
+ )
+ (i32.const 8)
+ )
)
)
- (i64.load offset=224
+ (i64.load
+ (i32.add
+ (i32.add
+ (get_local $52)
+ (i32.const 416)
+ )
+ (i32.const 8)
+ )
+ )
+ (get_local $48)
+ )
+ (get_local $2)
+ (get_local $38)
+ )
+ )
+ (select
+ (i64.load
+ (i32.add
+ (i32.add
(get_local $52)
+ (i32.const 448)
)
- (get_local $50)
+ (i32.const 8)
)
- (get_local $5)
- (get_local $39)
)
(i64.const 0)
- (get_local $51)
+ (get_local $46)
)
+ (get_local $49)
)
+ (get_local $6)
+ (get_local $37)
+ )
+ (get_local $43)
+ )
+ (get_local $14)
+ (get_local $33)
+ )
+ )
+ (i64.store
+ (i32.add
+ (get_local $0)
+ (i32.const 96)
+ )
+ (select
+ (select
+ (i64.or
(select
(select
(i64.or
(select
- (i64.load offset=320
+ (i64.load offset=992
(get_local $52)
)
(i64.const 0)
- (get_local $47)
+ (get_local $41)
)
(select
(select
(i64.or
- (i64.load offset=384
+ (i64.load offset=768
(get_local $52)
)
- (i64.load offset=400
+ (i64.load offset=784
(get_local $52)
)
)
- (i64.load offset=416
+ (i64.load offset=800
(get_local $52)
)
- (get_local $48)
+ (get_local $45)
)
- (get_local $1)
- (get_local $38)
+ (get_local $9)
+ (get_local $35)
)
)
(select
- (i64.load offset=448
+ (i64.load offset=832
(get_local $52)
)
(i64.const 0)
- (get_local $46)
+ (get_local $44)
)
- (get_local $49)
+ (get_local $42)
)
- (get_local $5)
- (get_local $37)
+ (get_local $13)
+ (get_local $33)
+ )
+ (select
+ (select
+ (select
+ (i64.or
+ (i64.load offset=192
+ (get_local $52)
+ )
+ (i64.load offset=208
+ (get_local $52)
+ )
+ )
+ (i64.load offset=224
+ (get_local $52)
+ )
+ (get_local $50)
+ )
+ (get_local $5)
+ (get_local $39)
+ )
+ (i64.const 0)
+ (get_local $51)
)
- (get_local $43)
)
- (get_local $13)
- (get_local $33)
+ (select
+ (select
+ (i64.or
+ (select
+ (i64.load offset=320
+ (get_local $52)
+ )
+ (i64.const 0)
+ (get_local $47)
+ )
+ (select
+ (select
+ (i64.or
+ (i64.load offset=384
+ (get_local $52)
+ )
+ (i64.load offset=400
+ (get_local $52)
+ )
+ )
+ (i64.load offset=416
+ (get_local $52)
+ )
+ (get_local $48)
+ )
+ (get_local $1)
+ (get_local $38)
+ )
+ )
+ (select
+ (i64.load offset=448
+ (get_local $52)
+ )
+ (i64.const 0)
+ (get_local $46)
+ )
+ (get_local $49)
+ )
+ (get_local $5)
+ (get_local $37)
+ )
+ (get_local $43)
)
+ (get_local $13)
+ (get_local $33)
)
)
- (drop
- (i64.store
- (i32.add
- (get_local $0)
- (i32.const 72)
- )
+ (i64.store
+ (i32.add
+ (get_local $0)
+ (i32.const 72)
+ )
+ (select
(select
- (select
- (i64.or
+ (i64.or
+ (select
(select
- (select
- (i64.load
+ (i64.load
+ (i32.add
(i32.add
- (i32.add
- (get_local $52)
- (i32.const 896)
- )
- (i32.const 8)
+ (get_local $52)
+ (i32.const 896)
)
+ (i32.const 8)
)
- (i64.const 0)
- (get_local $41)
)
(i64.const 0)
- (get_local $42)
+ (get_local $41)
)
+ (i64.const 0)
+ (get_local $42)
+ )
+ (select
(select
- (select
- (i64.or
+ (i64.or
+ (select
(select
- (select
- (i64.or
- (i64.load
- (i32.add
- (get_local $52)
- (i32.const 8)
- )
- )
- (i64.load
- (i32.add
- (i32.add
- (get_local $52)
- (i32.const 16)
- )
- (i32.const 8)
- )
+ (i64.or
+ (i64.load
+ (i32.add
+ (get_local $52)
+ (i32.const 8)
)
)
(i64.load
(i32.add
(i32.add
(get_local $52)
- (i32.const 32)
+ (i32.const 16)
)
(i32.const 8)
)
)
- (get_local $50)
)
- (get_local $2)
- (get_local $39)
- )
- (select
(i64.load
(i32.add
(i32.add
(get_local $52)
- (i32.const 64)
+ (i32.const 32)
)
(i32.const 8)
)
)
- (i64.const 0)
- (tee_local $34
- (i32.lt_u
- (get_local $40)
- (i32.const 128)
+ (get_local $50)
+ )
+ (get_local $2)
+ (get_local $39)
+ )
+ (select
+ (i64.load
+ (i32.add
+ (i32.add
+ (get_local $52)
+ (i32.const 64)
)
+ (i32.const 8)
+ )
+ )
+ (i64.const 0)
+ (tee_local $34
+ (i32.lt_u
+ (get_local $40)
+ (i32.const 128)
)
)
)
+ )
+ (select
(select
- (select
- (i64.or
- (i64.load
- (i32.add
- (i32.add
- (get_local $52)
- (i32.const 128)
- )
- (i32.const 8)
- )
- )
- (i64.load
+ (i64.or
+ (i64.load
+ (i32.add
(i32.add
- (i32.add
- (get_local $52)
- (i32.const 144)
- )
- (i32.const 8)
+ (get_local $52)
+ (i32.const 128)
)
+ (i32.const 8)
)
)
(i64.load
(i32.add
(i32.add
(get_local $52)
- (i32.const 160)
+ (i32.const 144)
)
(i32.const 8)
)
)
- (get_local $45)
)
- (get_local $6)
- (get_local $35)
+ (i64.load
+ (i32.add
+ (i32.add
+ (get_local $52)
+ (i32.const 160)
+ )
+ (i32.const 8)
+ )
+ )
+ (get_local $45)
)
- (get_local $51)
+ (get_local $6)
+ (get_local $35)
)
- (get_local $2)
- (get_local $39)
+ (get_local $51)
)
+ (get_local $2)
+ (get_local $39)
)
+ )
+ (select
(select
- (select
- (i64.load
+ (i64.load
+ (i32.add
(i32.add
- (i32.add
- (get_local $52)
- (i32.const 256)
- )
- (i32.const 8)
+ (get_local $52)
+ (i32.const 256)
)
+ (i32.const 8)
)
- (i64.const 0)
- (get_local $47)
)
(i64.const 0)
- (get_local $49)
+ (get_local $47)
)
- (get_local $43)
+ (i64.const 0)
+ (get_local $49)
)
- (get_local $10)
- (get_local $33)
+ (get_local $43)
)
+ (get_local $10)
+ (get_local $33)
)
)
- (drop
- (i64.store
- (i32.add
- (get_local $0)
- (i32.const 64)
- )
+ (i64.store
+ (i32.add
+ (get_local $0)
+ (i32.const 64)
+ )
+ (select
(select
- (select
- (i64.or
+ (i64.or
+ (select
(select
- (select
- (i64.load offset=896
- (get_local $52)
- )
- (i64.const 0)
- (get_local $41)
+ (i64.load offset=896
+ (get_local $52)
)
(i64.const 0)
- (get_local $42)
+ (get_local $41)
)
+ (i64.const 0)
+ (get_local $42)
+ )
+ (select
(select
- (select
- (i64.or
+ (i64.or
+ (select
(select
- (select
- (i64.or
- (i64.load
- (get_local $52)
- )
- (i64.load offset=16
- (get_local $52)
- )
+ (i64.or
+ (i64.load
+ (get_local $52)
)
- (i64.load offset=32
+ (i64.load offset=16
(get_local $52)
)
- (get_local $50)
)
- (get_local $1)
- (get_local $39)
- )
- (select
- (i64.load offset=64
+ (i64.load offset=32
(get_local $52)
)
- (i64.const 0)
- (get_local $34)
+ (get_local $50)
)
+ (get_local $1)
+ (get_local $39)
)
(select
- (select
- (i64.or
- (i64.load offset=128
- (get_local $52)
- )
- (i64.load offset=144
- (get_local $52)
- )
+ (i64.load offset=64
+ (get_local $52)
+ )
+ (i64.const 0)
+ (get_local $34)
+ )
+ )
+ (select
+ (select
+ (i64.or
+ (i64.load offset=128
+ (get_local $52)
)
- (i64.load offset=160
+ (i64.load offset=144
(get_local $52)
)
- (get_local $45)
)
- (get_local $5)
- (get_local $35)
+ (i64.load offset=160
+ (get_local $52)
+ )
+ (get_local $45)
)
- (get_local $51)
+ (get_local $5)
+ (get_local $35)
)
- (get_local $1)
- (get_local $39)
+ (get_local $51)
)
+ (get_local $1)
+ (get_local $39)
)
+ )
+ (select
(select
- (select
- (i64.load offset=256
- (get_local $52)
- )
- (i64.const 0)
- (get_local $47)
+ (i64.load offset=256
+ (get_local $52)
)
(i64.const 0)
- (get_local $49)
+ (get_local $47)
)
- (get_local $43)
+ (i64.const 0)
+ (get_local $49)
)
- (get_local $9)
- (get_local $33)
+ (get_local $43)
)
+ (get_local $9)
+ (get_local $33)
)
)
- (drop
- (i64.store
- (i32.add
- (get_local $0)
- (i32.const 88)
- )
+ (i64.store
+ (i32.add
+ (get_local $0)
+ (i32.const 88)
+ )
+ (select
(select
- (select
- (i64.or
+ (i64.or
+ (select
(select
(select
- (select
- (i64.or
- (i64.load
- (i32.add
- (i32.add
- (get_local $52)
- (i32.const 912)
- )
- (i32.const 8)
- )
- )
- (i64.load
+ (i64.or
+ (i64.load
+ (i32.add
(i32.add
- (i32.add
- (get_local $52)
- (i32.const 928)
- )
- (i32.const 8)
+ (get_local $52)
+ (i32.const 912)
)
+ (i32.const 8)
)
)
(i64.load
(i32.add
(i32.add
(get_local $52)
- (i32.const 944)
+ (i32.const 928)
)
(i32.const 8)
)
)
- (get_local $41)
)
- (get_local $12)
- (get_local $33)
+ (i64.load
+ (i32.add
+ (i32.add
+ (get_local $52)
+ (i32.const 944)
+ )
+ (i32.const 8)
+ )
+ )
+ (get_local $41)
)
- (i64.const 0)
- (get_local $42)
+ (get_local $12)
+ (get_local $33)
)
+ (i64.const 0)
+ (get_local $42)
+ )
+ (select
(select
- (select
- (i64.or
- (select
- (i64.load
+ (i64.or
+ (select
+ (i64.load
+ (i32.add
(i32.add
- (i32.add
- (get_local $52)
- (i32.const 48)
- )
- (i32.const 8)
+ (get_local $52)
+ (i32.const 48)
)
+ (i32.const 8)
)
- (i64.const 0)
- (get_local $50)
)
+ (i64.const 0)
+ (get_local $50)
+ )
+ (select
(select
- (select
- (i64.or
- (i64.load
- (i32.add
- (i32.add
- (get_local $52)
- (i32.const 80)
- )
- (i32.const 8)
- )
- )
- (i64.load
+ (i64.or
+ (i64.load
+ (i32.add
(i32.add
- (i32.add
- (get_local $52)
- (i32.const 96)
- )
- (i32.const 8)
+ (get_local $52)
+ (i32.const 80)
)
+ (i32.const 8)
)
)
(i64.load
(i32.add
(i32.add
(get_local $52)
- (i32.const 112)
+ (i32.const 96)
)
(i32.const 8)
)
)
- (get_local $34)
)
- (get_local $8)
- (get_local $40)
+ (i64.load
+ (i32.add
+ (i32.add
+ (get_local $52)
+ (i32.const 112)
+ )
+ (i32.const 8)
+ )
+ )
+ (get_local $34)
)
+ (get_local $8)
+ (get_local $40)
)
- (select
- (i64.load
+ )
+ (select
+ (i64.load
+ (i32.add
(i32.add
- (i32.add
- (get_local $52)
- (i32.const 176)
- )
- (i32.const 8)
+ (get_local $52)
+ (i32.const 176)
)
+ (i32.const 8)
)
- (i64.const 0)
- (get_local $45)
)
- (get_local $51)
+ (i64.const 0)
+ (get_local $45)
)
- (get_local $4)
- (get_local $39)
+ (get_local $51)
)
+ (get_local $4)
+ (get_local $39)
)
+ )
+ (select
(select
(select
- (select
- (i64.or
- (i64.load
- (i32.add
- (i32.add
- (get_local $52)
- (i32.const 272)
- )
- (i32.const 8)
- )
- )
- (i64.load
+ (i64.or
+ (i64.load
+ (i32.add
(i32.add
- (i32.add
- (get_local $52)
- (i32.const 288)
- )
- (i32.const 8)
+ (get_local $52)
+ (i32.const 272)
)
+ (i32.const 8)
)
)
(i64.load
(i32.add
(i32.add
(get_local $52)
- (i32.const 304)
+ (i32.const 288)
)
(i32.const 8)
)
)
- (get_local $47)
)
- (get_local $4)
- (get_local $37)
+ (i64.load
+ (i32.add
+ (i32.add
+ (get_local $52)
+ (i32.const 304)
+ )
+ (i32.const 8)
+ )
+ )
+ (get_local $47)
)
- (i64.const 0)
- (get_local $49)
+ (get_local $4)
+ (get_local $37)
)
- (get_local $43)
+ (i64.const 0)
+ (get_local $49)
)
- (get_local $12)
- (get_local $33)
+ (get_local $43)
)
+ (get_local $12)
+ (get_local $33)
)
)
- (drop
- (i64.store
- (i32.add
- (get_local $0)
- (i32.const 80)
- )
+ (i64.store
+ (i32.add
+ (get_local $0)
+ (i32.const 80)
+ )
+ (select
(select
- (select
- (i64.or
+ (i64.or
+ (select
(select
(select
- (select
- (i64.or
- (i64.load offset=912
- (get_local $52)
- )
- (i64.load offset=928
- (get_local $52)
- )
+ (i64.or
+ (i64.load offset=912
+ (get_local $52)
)
- (i64.load offset=944
+ (i64.load offset=928
(get_local $52)
)
- (get_local $41)
)
- (get_local $11)
- (get_local $33)
+ (i64.load offset=944
+ (get_local $52)
+ )
+ (get_local $41)
)
- (i64.const 0)
- (get_local $42)
+ (get_local $11)
+ (get_local $33)
)
+ (i64.const 0)
+ (get_local $42)
+ )
+ (select
(select
- (select
- (i64.or
- (select
- (i64.load offset=48
- (get_local $52)
- )
- (i64.const 0)
- (get_local $50)
+ (i64.or
+ (select
+ (i64.load offset=48
+ (get_local $52)
)
+ (i64.const 0)
+ (get_local $50)
+ )
+ (select
(select
- (select
- (i64.or
- (i64.load offset=80
- (get_local $52)
- )
- (i64.load offset=96
- (get_local $52)
- )
+ (i64.or
+ (i64.load offset=80
+ (get_local $52)
)
- (i64.load offset=112
+ (i64.load offset=96
(get_local $52)
)
- (get_local $34)
)
- (get_local $7)
- (get_local $40)
+ (i64.load offset=112
+ (get_local $52)
+ )
+ (get_local $34)
)
+ (get_local $7)
+ (get_local $40)
)
- (select
- (i64.load offset=176
- (get_local $52)
- )
- (i64.const 0)
- (get_local $45)
+ )
+ (select
+ (i64.load offset=176
+ (get_local $52)
)
- (get_local $51)
+ (i64.const 0)
+ (get_local $45)
)
- (get_local $3)
- (get_local $39)
+ (get_local $51)
)
+ (get_local $3)
+ (get_local $39)
)
+ )
+ (select
(select
(select
- (select
- (i64.or
- (i64.load offset=272
- (get_local $52)
- )
- (i64.load offset=288
- (get_local $52)
- )
+ (i64.or
+ (i64.load offset=272
+ (get_local $52)
)
- (i64.load offset=304
+ (i64.load offset=288
(get_local $52)
)
- (get_local $47)
)
- (get_local $3)
- (get_local $37)
+ (i64.load offset=304
+ (get_local $52)
+ )
+ (get_local $47)
)
- (i64.const 0)
- (get_local $49)
+ (get_local $3)
+ (get_local $37)
)
- (get_local $43)
+ (i64.const 0)
+ (get_local $49)
)
- (get_local $11)
- (get_local $33)
+ (get_local $43)
)
+ (get_local $11)
+ (get_local $33)
)
)
- (drop
- (i32.store offset=4
- (i32.const 0)
- (i32.add
- (get_local $52)
- (i32.const 1024)
- )
+ (i32.store offset=4
+ (i32.const 0)
+ (i32.add
+ (get_local $52)
+ (i32.const 1024)
)
)
(return)
diff --git a/test/llvm_autogenerated/load-store-i1.wast b/test/llvm_autogenerated/load-store-i1.wast
index b34bb5133..3ec46de00 100644
--- a/test/llvm_autogenerated/load-store-i1.wast
+++ b/test/llvm_autogenerated/load-store-i1.wast
@@ -49,25 +49,21 @@
)
)
(func $store_i32_i1 (param $0 i32) (param $1 i32)
- (drop
- (i32.store8
- (get_local $0)
- (i32.and
- (get_local $1)
- (i32.const 1)
- )
+ (i32.store8
+ (get_local $0)
+ (i32.and
+ (get_local $1)
+ (i32.const 1)
)
)
(return)
)
(func $store_i64_i1 (param $0 i32) (param $1 i64)
- (drop
- (i64.store8
- (get_local $0)
- (i64.and
- (get_local $1)
- (i64.const 1)
- )
+ (i64.store8
+ (get_local $0)
+ (i64.and
+ (get_local $1)
+ (i64.const 1)
)
)
(return)
diff --git a/test/llvm_autogenerated/mem-intrinsics.wast b/test/llvm_autogenerated/mem-intrinsics.wast
index 21085a2b2..f15d84071 100644
--- a/test/llvm_autogenerated/mem-intrinsics.wast
+++ b/test/llvm_autogenerated/mem-intrinsics.wast
@@ -78,16 +78,14 @@
)
(func $frame_index
(local $0 i32)
- (drop
- (i32.store offset=4
- (i32.const 0)
- (tee_local $0
- (i32.sub
- (i32.load offset=4
- (i32.const 0)
- )
- (i32.const 4096)
+ (i32.store offset=4
+ (i32.const 0)
+ (tee_local $0
+ (i32.sub
+ (i32.load offset=4
+ (i32.const 0)
)
+ (i32.const 4096)
)
)
)
@@ -101,17 +99,15 @@
(i32.const 1024)
)
)
- (drop
- (i32.store offset=4
- (i32.const 0)
- (i32.add
- (call $memset
- (get_local $0)
- (i32.const 0)
- (i32.const 1024)
- )
- (i32.const 4096)
+ (i32.store offset=4
+ (i32.const 0)
+ (i32.add
+ (call $memset
+ (get_local $0)
+ (i32.const 0)
+ (i32.const 1024)
)
+ (i32.const 4096)
)
)
(return)
@@ -136,9 +132,7 @@
)
)
)
- (drop
- (call $block_tail_dup)
- )
+ (call $block_tail_dup)
(return
(get_local $0)
)
@@ -150,9 +144,7 @@
(get_local $2)
)
)
- (drop
- (call $block_tail_dup)
- )
+ (call $block_tail_dup)
(return
(get_local $0)
)
diff --git a/test/llvm_autogenerated/offset.wast b/test/llvm_autogenerated/offset.wast
index eab28eecc..c1e3c8e6b 100644
--- a/test/llvm_autogenerated/offset.wast
+++ b/test/llvm_autogenerated/offset.wast
@@ -115,112 +115,90 @@
)
)
(func $store_i32_with_folded_offset (param $0 i32)
- (drop
- (i32.store offset=24
- (get_local $0)
- (i32.const 0)
- )
+ (i32.store offset=24
+ (get_local $0)
+ (i32.const 0)
)
)
(func $store_i32_with_folded_gep_offset (param $0 i32)
- (drop
- (i32.store offset=24
- (get_local $0)
- (i32.const 0)
- )
+ (i32.store offset=24
+ (get_local $0)
+ (i32.const 0)
)
)
(func $store_i32_with_unfolded_gep_negative_offset (param $0 i32)
- (drop
- (i32.store
- (i32.add
- (get_local $0)
- (i32.const -24)
- )
- (i32.const 0)
+ (i32.store
+ (i32.add
+ (get_local $0)
+ (i32.const -24)
)
+ (i32.const 0)
)
)
(func $store_i32_with_unfolded_offset (param $0 i32)
- (drop
- (i32.store
- (i32.add
- (get_local $0)
- (i32.const 24)
- )
- (i32.const 0)
+ (i32.store
+ (i32.add
+ (get_local $0)
+ (i32.const 24)
)
+ (i32.const 0)
)
)
(func $store_i32_with_unfolded_gep_offset (param $0 i32)
- (drop
- (i32.store
- (i32.add
- (get_local $0)
- (i32.const 24)
- )
- (i32.const 0)
+ (i32.store
+ (i32.add
+ (get_local $0)
+ (i32.const 24)
)
+ (i32.const 0)
)
)
(func $store_i64_with_folded_offset (param $0 i32)
- (drop
- (i64.store offset=24
- (get_local $0)
- (i64.const 0)
- )
+ (i64.store offset=24
+ (get_local $0)
+ (i64.const 0)
)
)
(func $store_i64_with_folded_gep_offset (param $0 i32)
- (drop
- (i64.store offset=24
- (get_local $0)
- (i64.const 0)
- )
+ (i64.store offset=24
+ (get_local $0)
+ (i64.const 0)
)
)
(func $store_i64_with_unfolded_gep_negative_offset (param $0 i32)
- (drop
- (i64.store
- (i32.add
- (get_local $0)
- (i32.const -24)
- )
- (i64.const 0)
+ (i64.store
+ (i32.add
+ (get_local $0)
+ (i32.const -24)
)
+ (i64.const 0)
)
)
(func $store_i64_with_unfolded_offset (param $0 i32)
- (drop
- (i64.store
- (i32.add
- (get_local $0)
- (i32.const 24)
- )
- (i64.const 0)
+ (i64.store
+ (i32.add
+ (get_local $0)
+ (i32.const 24)
)
+ (i64.const 0)
)
)
(func $store_i64_with_unfolded_gep_offset (param $0 i32)
- (drop
- (i64.store
- (i32.add
- (get_local $0)
- (i32.const 24)
- )
- (i64.const 0)
+ (i64.store
+ (i32.add
+ (get_local $0)
+ (i32.const 24)
)
+ (i64.const 0)
)
)
(func $store_i32_with_folded_or_offset (param $0 i32)
- (drop
- (i32.store8 offset=2
- (i32.and
- (get_local $0)
- (i32.const -4)
- )
- (i32.const 0)
+ (i32.store8 offset=2
+ (i32.and
+ (get_local $0)
+ (i32.const -4)
)
+ (i32.const 0)
)
)
(func $load_i32_from_numeric_address (result i32)
@@ -234,19 +212,15 @@
)
)
(func $store_i32_to_numeric_address
- (drop
- (i32.store offset=42
- (i32.const 0)
- (i32.const 0)
- )
+ (i32.store offset=42
+ (i32.const 0)
+ (i32.const 0)
)
)
(func $store_i32_to_global_address
- (drop
- (i32.store offset=12
- (i32.const 0)
- (i32.const 0)
- )
+ (i32.store offset=12
+ (i32.const 0)
+ (i32.const 0)
)
)
(func $load_i8_s_with_folded_offset (param $0 i32) (result i32)
@@ -270,19 +244,15 @@
)
)
(func $store_i8_with_folded_offset (param $0 i32)
- (drop
- (i32.store8 offset=24
- (get_local $0)
- (i32.const 0)
- )
+ (i32.store8 offset=24
+ (get_local $0)
+ (i32.const 0)
)
)
(func $store_i8_with_folded_gep_offset (param $0 i32)
- (drop
- (i32.store8 offset=24
- (get_local $0)
- (i32.const 0)
- )
+ (i32.store8 offset=24
+ (get_local $0)
+ (i32.const 0)
)
)
(func $aggregate_load_store (param $0 i32) (param $1 i32)
@@ -304,71 +274,51 @@
(get_local $0)
)
)
- (drop
- (i32.store offset=12
- (get_local $1)
- (i32.load offset=12
- (get_local $0)
- )
+ (i32.store offset=12
+ (get_local $1)
+ (i32.load offset=12
+ (get_local $0)
)
)
- (drop
- (i32.store offset=8
- (get_local $1)
- (get_local $4)
- )
+ (i32.store offset=8
+ (get_local $1)
+ (get_local $4)
)
- (drop
- (i32.store offset=4
- (get_local $1)
- (get_local $3)
- )
+ (i32.store offset=4
+ (get_local $1)
+ (get_local $3)
)
- (drop
- (i32.store
- (get_local $1)
- (get_local $2)
- )
+ (i32.store
+ (get_local $1)
+ (get_local $2)
)
)
(func $aggregate_return (param $0 i32)
- (drop
- (i64.store offset=8 align=4
- (get_local $0)
- (i64.const 0)
- )
+ (i64.store offset=8 align=4
+ (get_local $0)
+ (i64.const 0)
)
- (drop
- (i64.store align=4
- (get_local $0)
- (i64.const 0)
- )
+ (i64.store align=4
+ (get_local $0)
+ (i64.const 0)
)
)
(func $aggregate_return_without_merge (param $0 i32)
- (drop
- (i32.store8 offset=14
- (get_local $0)
- (i32.const 0)
- )
+ (i32.store8 offset=14
+ (get_local $0)
+ (i32.const 0)
)
- (drop
- (i32.store16 offset=12
- (get_local $0)
- (i32.const 0)
- )
+ (i32.store16 offset=12
+ (get_local $0)
+ (i32.const 0)
)
- (drop
- (i32.store offset=8
- (get_local $0)
- (i32.const 0)
- )
+ (i32.store offset=8
+ (get_local $0)
+ (i32.const 0)
)
- (drop
- (i64.store
- (get_local $0)
- (i64.const 0)
- )
+ (i64.store
+ (get_local $0)
+ (i64.const 0)
)
)
)
diff --git a/test/llvm_autogenerated/reg-stackify.wast b/test/llvm_autogenerated/reg-stackify.wast
index 878397f19..390074d81 100644
--- a/test/llvm_autogenerated/reg-stackify.wast
+++ b/test/llvm_autogenerated/reg-stackify.wast
@@ -51,11 +51,9 @@
(get_local $1)
)
)
- (drop
- (i32.store
- (get_local $0)
- (i32.const 0)
- )
+ (i32.store
+ (get_local $0)
+ (i32.const 0)
)
(return
(get_local $1)
@@ -67,22 +65,18 @@
(get_local $1)
)
)
- (drop
- (i32.store
- (get_local $0)
- (i32.const 0)
- )
+ (i32.store
+ (get_local $0)
+ (i32.const 0)
)
(return
(get_local $1)
)
)
(func $yes0 (param $0 i32) (param $1 i32) (result i32)
- (drop
- (i32.store
- (get_local $0)
- (i32.const 0)
- )
+ (i32.store
+ (get_local $0)
+ (i32.const 0)
)
(return
(i32.load
@@ -98,11 +92,9 @@
)
)
(func $sink_trap (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
- (drop
- (i32.store
- (get_local $2)
- (i32.const 0)
- )
+ (i32.store
+ (get_local $2)
+ (i32.const 0)
)
(return
(i32.div_s
@@ -112,11 +104,9 @@
)
)
(func $sink_readnone_call (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
- (drop
- (i32.store
- (get_local $2)
- (i32.const 0)
- )
+ (i32.store
+ (get_local $2)
+ (i32.const 0)
)
(return
(call $readnone_callee)
@@ -127,11 +117,9 @@
(set_local $3
(call $readonly_callee)
)
- (drop
- (i32.store
- (get_local $2)
- (i32.const 0)
- )
+ (i32.store
+ (get_local $2)
+ (i32.const 0)
)
(return
(get_local $3)
@@ -193,34 +181,24 @@
(get_local $0)
)
)
- (drop
- (i32.store
- (get_local $2)
- (get_local $3)
- )
+ (i32.store
+ (get_local $2)
+ (get_local $3)
)
)
(return)
)
(func $stackify_store_across_side_effects (param $0 i32)
- (drop
- (i64.store
- (get_local $0)
- (i64.const 4611686018427387904)
- )
- )
- (drop
- (call $evoke_side_effects)
- )
- (drop
- (i64.store
- (get_local $0)
- (i64.const 4611686018427387904)
- )
+ (i64.store
+ (get_local $0)
+ (i64.const 4611686018427387904)
)
- (drop
- (call $evoke_side_effects)
+ (call $evoke_side_effects)
+ (i64.store
+ (get_local $0)
+ (i64.const 4611686018427387904)
)
+ (call $evoke_side_effects)
(return)
)
(func $div_tree (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (param $5 i32) (param $6 i32) (param $7 i32) (param $8 i32) (param $9 i32) (param $10 i32) (param $11 i32) (param $12 i32) (param $13 i32) (param $14 i32) (param $15 i32) (result i32)
@@ -274,34 +252,28 @@
)
)
(func $simple_multiple_use (param $0 i32) (param $1 i32)
- (drop
- (call $use_a
- (tee_local $1
- (i32.mul
- (get_local $1)
- (get_local $0)
- )
+ (call $use_a
+ (tee_local $1
+ (i32.mul
+ (get_local $1)
+ (get_local $0)
)
)
)
- (drop
- (call $use_b
- (get_local $1)
- )
+ (call $use_b
+ (get_local $1)
)
(return)
)
(func $multiple_uses_in_same_insn (param $0 i32) (param $1 i32)
- (drop
- (call $use_2
- (tee_local $1
- (i32.mul
- (get_local $1)
- (get_local $0)
- )
+ (call $use_2
+ (tee_local $1
+ (i32.mul
+ (get_local $1)
+ (get_local $0)
)
- (get_local $1)
)
+ (get_local $1)
)
(return)
)
@@ -487,11 +459,9 @@
)
)
(func $no_stackify_store_past_load (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
- (drop
- (i32.store
- (get_local $1)
- (get_local $0)
- )
+ (i32.store
+ (get_local $1)
+ (get_local $0)
)
(set_local $2
(i32.load
@@ -508,11 +478,9 @@
)
)
(func $store_past_invar_load (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
- (drop
- (i32.store
- (get_local $1)
- (get_local $0)
- )
+ (i32.store
+ (get_local $1)
+ (get_local $0)
)
(drop
(call $callee
@@ -531,16 +499,14 @@
(func $no_stackify_past_epilogue (result i32)
(local $0 i32)
(local $1 i32)
- (drop
- (i32.store offset=4
- (i32.const 0)
- (tee_local $1
- (i32.sub
- (i32.load offset=4
- (i32.const 0)
- )
- (i32.const 16)
+ (i32.store offset=4
+ (i32.const 0)
+ (tee_local $1
+ (i32.sub
+ (i32.load offset=4
+ (i32.const 0)
)
+ (i32.const 16)
)
)
)
@@ -552,13 +518,11 @@
)
)
)
- (drop
- (i32.store offset=4
- (i32.const 0)
- (i32.add
- (get_local $1)
- (i32.const 16)
- )
+ (i32.store offset=4
+ (i32.const 0)
+ (i32.add
+ (get_local $1)
+ (i32.const 16)
)
)
(return
@@ -572,14 +536,12 @@
)
(block $label$1
(loop $label$0
- (drop
- (i32.store
- (get_local $1)
- (i32.add
- (get_local $2)
- (i32.load
- (get_local $1)
- )
+ (i32.store
+ (get_local $1)
+ (i32.add
+ (get_local $2)
+ (i32.load
+ (get_local $1)
)
)
)
@@ -610,11 +572,9 @@
)
)
)
- (drop
- (i32.store offset=4
- (i32.const 0)
- (get_local $1)
- )
+ (i32.store offset=4
+ (i32.const 0)
+ (get_local $1)
)
(return
(get_local $0)
diff --git a/test/llvm_autogenerated/return-int32.wast b/test/llvm_autogenerated/return-int32.wast
index ac77e513b..5e701af83 100644
--- a/test/llvm_autogenerated/return-int32.wast
+++ b/test/llvm_autogenerated/return-int32.wast
@@ -14,21 +14,17 @@
(get_local $0)
)
)
- (drop
- (i32.store
- (i32.const 0)
- (i32.const 0)
- )
+ (i32.store
+ (i32.const 0)
+ (i32.const 0)
)
(return
(i32.const 1)
)
)
- (drop
- (i32.store
- (i32.const 0)
- (i32.const 2)
- )
+ (i32.store
+ (i32.const 0)
+ (i32.const 2)
)
(i32.const 3)
)
diff --git a/test/llvm_autogenerated/return-void.wast b/test/llvm_autogenerated/return-void.wast
index bc0bc9c89..53845c44a 100644
--- a/test/llvm_autogenerated/return-void.wast
+++ b/test/llvm_autogenerated/return-void.wast
@@ -13,19 +13,15 @@
(get_local $0)
)
)
- (drop
- (i32.store
- (i32.const 0)
- (i32.const 0)
- )
- )
- (return)
- )
- (drop
(i32.store
(i32.const 0)
- (i32.const 1)
+ (i32.const 0)
)
+ (return)
+ )
+ (i32.store
+ (i32.const 0)
+ (i32.const 1)
)
)
)
diff --git a/test/llvm_autogenerated/store-trunc.wast b/test/llvm_autogenerated/store-trunc.wast
index 5452b340f..4a6022a5d 100644
--- a/test/llvm_autogenerated/store-trunc.wast
+++ b/test/llvm_autogenerated/store-trunc.wast
@@ -8,43 +8,33 @@
(export "trunc_i16_i64" (func $trunc_i16_i64))
(export "trunc_i32_i64" (func $trunc_i32_i64))
(func $trunc_i8_i32 (param $0 i32) (param $1 i32)
- (drop
- (i32.store8
- (get_local $0)
- (get_local $1)
- )
+ (i32.store8
+ (get_local $0)
+ (get_local $1)
)
)
(func $trunc_i16_i32 (param $0 i32) (param $1 i32)
- (drop
- (i32.store16
- (get_local $0)
- (get_local $1)
- )
+ (i32.store16
+ (get_local $0)
+ (get_local $1)
)
)
(func $trunc_i8_i64 (param $0 i32) (param $1 i64)
- (drop
- (i64.store8
- (get_local $0)
- (get_local $1)
- )
+ (i64.store8
+ (get_local $0)
+ (get_local $1)
)
)
(func $trunc_i16_i64 (param $0 i32) (param $1 i64)
- (drop
- (i64.store16
- (get_local $0)
- (get_local $1)
- )
+ (i64.store16
+ (get_local $0)
+ (get_local $1)
)
)
(func $trunc_i32_i64 (param $0 i32) (param $1 i64)
- (drop
- (i64.store
- (get_local $0)
- (get_local $1)
- )
+ (i64.store
+ (get_local $0)
+ (get_local $1)
)
)
)
diff --git a/test/llvm_autogenerated/store.wast b/test/llvm_autogenerated/store.wast
index 60c32029a..1c57889e2 100644
--- a/test/llvm_autogenerated/store.wast
+++ b/test/llvm_autogenerated/store.wast
@@ -7,38 +7,30 @@
(export "stf32" (func $stf32))
(export "stf64" (func $stf64))
(func $sti32 (param $0 i32) (param $1 i32)
- (drop
- (i32.store
- (get_local $0)
- (get_local $1)
- )
+ (i32.store
+ (get_local $0)
+ (get_local $1)
)
(return)
)
(func $sti64 (param $0 i32) (param $1 i64)
- (drop
- (i64.store
- (get_local $0)
- (get_local $1)
- )
+ (i64.store
+ (get_local $0)
+ (get_local $1)
)
(return)
)
(func $stf32 (param $0 i32) (param $1 f32)
- (drop
- (f32.store
- (get_local $0)
- (get_local $1)
- )
+ (f32.store
+ (get_local $0)
+ (get_local $1)
)
(return)
)
(func $stf64 (param $0 i32) (param $1 f64)
- (drop
- (f64.store
- (get_local $0)
- (get_local $1)
- )
+ (f64.store
+ (get_local $0)
+ (get_local $1)
)
(return)
)
diff --git a/test/llvm_autogenerated/switch.wast b/test/llvm_autogenerated/switch.wast
index 988fc967a..a106a69b6 100644
--- a/test/llvm_autogenerated/switch.wast
+++ b/test/llvm_autogenerated/switch.wast
@@ -29,34 +29,22 @@
(get_local $0)
)
)
- (drop
- (call $foo0)
- )
+ (call $foo0)
(return)
)
- (drop
- (call $foo1)
- )
+ (call $foo1)
(return)
)
- (drop
- (call $foo2)
- )
+ (call $foo2)
(return)
)
- (drop
- (call $foo3)
- )
+ (call $foo3)
(return)
)
- (drop
- (call $foo4)
- )
+ (call $foo4)
(return)
)
- (drop
- (call $foo5)
- )
+ (call $foo5)
)
(return)
)
@@ -80,34 +68,22 @@
)
)
)
- (drop
- (call $foo0)
- )
+ (call $foo0)
(return)
)
- (drop
- (call $foo1)
- )
+ (call $foo1)
(return)
)
- (drop
- (call $foo2)
- )
+ (call $foo2)
(return)
)
- (drop
- (call $foo3)
- )
+ (call $foo3)
(return)
)
- (drop
- (call $foo4)
- )
+ (call $foo4)
(return)
)
- (drop
- (call $foo5)
- )
+ (call $foo5)
)
(return)
)
diff --git a/test/llvm_autogenerated/unreachable.wast b/test/llvm_autogenerated/unreachable.wast
index 837518400..5d45293cf 100644
--- a/test/llvm_autogenerated/unreachable.wast
+++ b/test/llvm_autogenerated/unreachable.wast
@@ -8,9 +8,7 @@
(export "f2" (func $f2))
(export "f3" (func $f3))
(func $f1 (result i32)
- (drop
- (call $abort)
- )
+ (call $abort)
(unreachable)
)
(func $f2
diff --git a/test/llvm_autogenerated/userstack.wast b/test/llvm_autogenerated/userstack.wast
index d9b226378..8883eb112 100644
--- a/test/llvm_autogenerated/userstack.wast
+++ b/test/llvm_autogenerated/userstack.wast
@@ -20,227 +20,183 @@
(export "inline_asm" (func $inline_asm))
(func $alloca32
(local $0 i32)
- (drop
- (i32.store offset=4
- (i32.const 0)
- (tee_local $0
- (i32.sub
- (i32.load offset=4
- (i32.const 0)
- )
- (i32.const 16)
+ (i32.store offset=4
+ (i32.const 0)
+ (tee_local $0
+ (i32.sub
+ (i32.load offset=4
+ (i32.const 0)
)
+ (i32.const 16)
)
)
)
- (drop
- (i32.store offset=12
- (get_local $0)
- (i32.const 0)
- )
+ (i32.store offset=12
+ (get_local $0)
+ (i32.const 0)
)
- (drop
- (i32.store offset=4
- (i32.const 0)
- (i32.add
- (get_local $0)
- (i32.const 16)
- )
+ (i32.store offset=4
+ (i32.const 0)
+ (i32.add
+ (get_local $0)
+ (i32.const 16)
)
)
(return)
)
(func $alloca3264
(local $0 i32)
- (drop
- (i32.store offset=12
- (tee_local $0
- (i32.sub
- (i32.load offset=4
- (i32.const 0)
- )
- (i32.const 16)
+ (i32.store offset=12
+ (tee_local $0
+ (i32.sub
+ (i32.load offset=4
+ (i32.const 0)
)
+ (i32.const 16)
)
- (i32.const 0)
)
+ (i32.const 0)
)
- (drop
- (i64.store
- (get_local $0)
- (i64.const 0)
- )
+ (i64.store
+ (get_local $0)
+ (i64.const 0)
)
(return)
)
(func $allocarray
(local $0 i32)
- (drop
- (i32.store offset=4
- (i32.const 0)
- (tee_local $0
- (i32.sub
- (i32.load offset=4
- (i32.const 0)
- )
- (i32.const 144)
+ (i32.store offset=4
+ (i32.const 0)
+ (tee_local $0
+ (i32.sub
+ (i32.load offset=4
+ (i32.const 0)
)
+ (i32.const 144)
)
)
)
- (drop
- (i32.store
- (i32.add
- (get_local $0)
- (i32.const 24)
- )
- (i32.const 1)
- )
- )
- (drop
- (i32.store offset=12
+ (i32.store
+ (i32.add
(get_local $0)
- (i32.const 1)
+ (i32.const 24)
)
+ (i32.const 1)
)
- (drop
- (i32.store offset=4
- (i32.const 0)
- (i32.add
- (get_local $0)
- (i32.const 144)
- )
+ (i32.store offset=12
+ (get_local $0)
+ (i32.const 1)
+ )
+ (i32.store offset=4
+ (i32.const 0)
+ (i32.add
+ (get_local $0)
+ (i32.const 144)
)
)
(return)
)
(func $non_mem_use (param $0 i32)
(local $1 i32)
- (drop
- (i32.store offset=4
- (i32.const 0)
- (tee_local $1
- (i32.sub
- (i32.load offset=4
- (i32.const 0)
- )
- (i32.const 48)
+ (i32.store offset=4
+ (i32.const 0)
+ (tee_local $1
+ (i32.sub
+ (i32.load offset=4
+ (i32.const 0)
)
+ (i32.const 48)
)
)
)
- (drop
- (call $ext_func
- (i32.add
- (get_local $1)
- (i32.const 8)
- )
- )
- )
- (drop
- (call $ext_func
+ (call $ext_func
+ (i32.add
(get_local $1)
+ (i32.const 8)
)
)
- (drop
- (i32.store
- (get_local $0)
- (i32.add
- (get_local $1)
- (i32.const 16)
- )
+ (call $ext_func
+ (get_local $1)
+ )
+ (i32.store
+ (get_local $0)
+ (i32.add
+ (get_local $1)
+ (i32.const 16)
)
)
- (drop
- (i32.store offset=4
- (i32.const 0)
- (i32.add
- (get_local $1)
- (i32.const 48)
- )
+ (i32.store offset=4
+ (i32.const 0)
+ (i32.add
+ (get_local $1)
+ (i32.const 48)
)
)
(return)
)
(func $allocarray_inbounds
(local $0 i32)
- (drop
- (i32.store offset=4
- (i32.const 0)
- (tee_local $0
- (i32.sub
- (i32.load offset=4
- (i32.const 0)
- )
- (i32.const 32)
+ (i32.store offset=4
+ (i32.const 0)
+ (tee_local $0
+ (i32.sub
+ (i32.load offset=4
+ (i32.const 0)
)
+ (i32.const 32)
)
)
)
- (drop
- (i32.store offset=24
- (get_local $0)
- (i32.const 1)
- )
+ (i32.store offset=24
+ (get_local $0)
+ (i32.const 1)
)
- (drop
- (i32.store offset=12
- (get_local $0)
- (i32.const 1)
- )
+ (i32.store offset=12
+ (get_local $0)
+ (i32.const 1)
)
- (drop
- (call $ext_func
- (i32.const 0)
- )
+ (call $ext_func
+ (i32.const 0)
)
- (drop
- (i32.store offset=4
- (i32.const 0)
- (i32.add
- (get_local $0)
- (i32.const 32)
- )
+ (i32.store offset=4
+ (i32.const 0)
+ (i32.add
+ (get_local $0)
+ (i32.const 32)
)
)
(return)
)
(func $dynamic_alloca (param $0 i32)
(local $1 i32)
- (drop
- (i32.store offset=4
- (i32.const 0)
- (tee_local $0
- (i32.sub
- (tee_local $1
- (i32.load offset=4
- (i32.const 0)
- )
+ (i32.store offset=4
+ (i32.const 0)
+ (tee_local $0
+ (i32.sub
+ (tee_local $1
+ (i32.load offset=4
+ (i32.const 0)
)
- (i32.and
- (i32.add
- (i32.shl
- (get_local $0)
- (i32.const 2)
- )
- (i32.const 15)
+ )
+ (i32.and
+ (i32.add
+ (i32.shl
+ (get_local $0)
+ (i32.const 2)
)
- (i32.const -16)
+ (i32.const 15)
)
+ (i32.const -16)
)
)
)
)
- (drop
- (call $ext_func_i32
- (get_local $0)
- )
+ (call $ext_func_i32
+ (get_local $0)
)
- (drop
- (i32.store offset=4
- (i32.const 0)
- (get_local $1)
- )
+ (i32.store offset=4
+ (i32.const 0)
+ (get_local $1)
)
(return)
)
@@ -270,62 +226,52 @@
)
)
)
- (drop
- (i32.store
- (get_local $0)
- (i32.const 0)
- )
+ (i32.store
+ (get_local $0)
+ (i32.const 0)
)
(return)
)
(func $dynamic_static_alloca (param $0 i32)
(local $1 i32)
- (drop
- (i32.store offset=4
- (i32.const 0)
- (tee_local $1
- (i32.sub
- (i32.load offset=4
- (i32.const 0)
- )
- (i32.const 16)
+ (i32.store offset=4
+ (i32.const 0)
+ (tee_local $1
+ (i32.sub
+ (i32.load offset=4
+ (i32.const 0)
)
+ (i32.const 16)
)
)
)
- (drop
- (i32.store offset=4
- (i32.const 0)
- (tee_local $0
- (i32.sub
- (get_local $1)
- (i32.and
- (i32.add
- (i32.shl
- (get_local $0)
- (i32.const 2)
- )
- (i32.const 15)
+ (i32.store offset=4
+ (i32.const 0)
+ (tee_local $0
+ (i32.sub
+ (get_local $1)
+ (i32.and
+ (i32.add
+ (i32.shl
+ (get_local $0)
+ (i32.const 2)
)
- (i32.const -16)
+ (i32.const 15)
)
+ (i32.const -16)
)
)
)
)
- (drop
- (i32.store
- (get_local $0)
- (i32.const 0)
- )
+ (i32.store
+ (get_local $0)
+ (i32.const 0)
)
- (drop
- (i32.store offset=4
- (i32.const 0)
- (i32.add
- (get_local $1)
- (i32.const 16)
- )
+ (i32.store offset=4
+ (i32.const 0)
+ (i32.add
+ (get_local $1)
+ (i32.const 16)
)
)
(return)
@@ -351,11 +297,9 @@
)
(block $label$1
(loop $label$0
- (drop
- (i32.store
- (get_local $2)
- (i32.const 1)
- )
+ (i32.store
+ (get_local $2)
+ (i32.const 1)
)
(set_local $2
(get_local $1)
@@ -369,28 +313,22 @@
)
(func $frameaddress_0
(local $0 i32)
- (drop
- (call $use_i8_star
- (tee_local $0
- (i32.load offset=4
- (i32.const 0)
- )
+ (call $use_i8_star
+ (tee_local $0
+ (i32.load offset=4
+ (i32.const 0)
)
)
)
- (drop
- (i32.store offset=4
- (i32.const 0)
- (get_local $0)
- )
+ (i32.store offset=4
+ (i32.const 0)
+ (get_local $0)
)
(return)
)
(func $frameaddress_1
- (drop
- (call $use_i8_star
- (i32.const 0)
- )
+ (call $use_i8_star
+ (i32.const 0)
)
(return)
)
diff --git a/test/llvm_autogenerated/varargs.wast b/test/llvm_autogenerated/varargs.wast
index 2bd953d8e..62d2d9aa4 100644
--- a/test/llvm_autogenerated/varargs.wast
+++ b/test/llvm_autogenerated/varargs.wast
@@ -15,11 +15,9 @@
(export "caller_some" (func $caller_some))
(export "startbb" (func $startbb))
(func $start (param $0 i32) (param $1 i32)
- (drop
- (i32.store
- (get_local $0)
- (get_local $1)
- )
+ (i32.store
+ (get_local $0)
+ (get_local $1)
)
(return)
)
@@ -27,29 +25,25 @@
(return)
)
(func $copy (param $0 i32) (param $1 i32)
- (drop
- (i32.store
- (get_local $0)
- (i32.load
- (get_local $1)
- )
+ (i32.store
+ (get_local $0)
+ (i32.load
+ (get_local $1)
)
)
(return)
)
(func $arg_i8 (param $0 i32) (result i32)
(local $1 i32)
- (drop
- (i32.store
- (get_local $0)
- (i32.add
- (tee_local $1
- (i32.load
- (get_local $0)
- )
+ (i32.store
+ (get_local $0)
+ (i32.add
+ (tee_local $1
+ (i32.load
+ (get_local $0)
)
- (i32.const 4)
)
+ (i32.const 4)
)
)
(return
@@ -60,23 +54,21 @@
)
(func $arg_i32 (param $0 i32) (result i32)
(local $1 i32)
- (drop
- (i32.store
- (get_local $0)
- (i32.add
- (tee_local $1
- (i32.and
- (i32.add
- (i32.load
- (get_local $0)
- )
- (i32.const 3)
+ (i32.store
+ (get_local $0)
+ (i32.add
+ (tee_local $1
+ (i32.and
+ (i32.add
+ (i32.load
+ (get_local $0)
)
- (i32.const -4)
+ (i32.const 3)
)
+ (i32.const -4)
)
- (i32.const 4)
)
+ (i32.const 4)
)
)
(return
@@ -89,24 +81,22 @@
(local $2 i32)
(local $3 i32)
(local $4 i64)
- (drop
- (i32.store
- (get_local $1)
- (tee_local $3
- (i32.add
- (tee_local $2
- (i32.and
- (i32.add
- (i32.load
- (get_local $1)
- )
- (i32.const 7)
+ (i32.store
+ (get_local $1)
+ (tee_local $3
+ (i32.add
+ (tee_local $2
+ (i32.and
+ (i32.add
+ (i32.load
+ (get_local $1)
)
- (i32.const -8)
+ (i32.const 7)
)
+ (i32.const -8)
)
- (i32.const 8)
)
+ (i32.const 8)
)
)
)
@@ -115,81 +105,63 @@
(get_local $2)
)
)
- (drop
- (i32.store
- (get_local $1)
- (i32.add
- (get_local $2)
- (i32.const 16)
- )
- )
- )
- (drop
- (i64.store
- (i32.add
- (get_local $0)
- (i32.const 8)
- )
- (i64.load
- (get_local $3)
- )
+ (i32.store
+ (get_local $1)
+ (i32.add
+ (get_local $2)
+ (i32.const 16)
)
)
- (drop
- (i64.store
+ (i64.store
+ (i32.add
(get_local $0)
- (get_local $4)
+ (i32.const 8)
+ )
+ (i64.load
+ (get_local $3)
)
)
+ (i64.store
+ (get_local $0)
+ (get_local $4)
+ )
(return)
)
(func $caller_none
- (drop
- (call $callee
- (i32.const 0)
- )
+ (call $callee
+ (i32.const 0)
)
(return)
)
(func $caller_some
(local $0 i32)
- (drop
- (i32.store offset=4
- (i32.const 0)
- (tee_local $0
- (i32.sub
- (i32.load offset=4
- (i32.const 0)
- )
- (i32.const 16)
+ (i32.store offset=4
+ (i32.const 0)
+ (tee_local $0
+ (i32.sub
+ (i32.load offset=4
+ (i32.const 0)
)
+ (i32.const 16)
)
)
)
- (drop
- (i64.store offset=8
- (get_local $0)
- (i64.const 4611686018427387904)
- )
+ (i64.store offset=8
+ (get_local $0)
+ (i64.const 4611686018427387904)
)
- (drop
- (i32.store
- (get_local $0)
- (i32.const 0)
- )
+ (i32.store
+ (get_local $0)
+ (i32.const 0)
)
- (drop
- (call $callee
- (get_local $0)
- )
+ (call $callee
+ (get_local $0)
)
- (drop
- (i32.store offset=4
- (i32.const 0)
- (i32.add
- (get_local $0)
- (i32.const 16)
- )
+ (i32.store offset=4
+ (i32.const 0)
+ (i32.add
+ (get_local $0)
+ (i32.const 16)
)
)
(return)
@@ -206,11 +178,9 @@
)
(return)
)
- (drop
- (i32.store
- (get_local $1)
- (get_local $2)
- )
+ (i32.store
+ (get_local $1)
+ (get_local $2)
)
(return)
)