summaryrefslogtreecommitdiff
path: root/test/passes/flatten_all-features.txt
diff options
context:
space:
mode:
Diffstat (limited to 'test/passes/flatten_all-features.txt')
-rw-r--r--test/passes/flatten_all-features.txt2363
1 files changed, 2363 insertions, 0 deletions
diff --git a/test/passes/flatten_all-features.txt b/test/passes/flatten_all-features.txt
new file mode 100644
index 000000000..38dc9bdfe
--- /dev/null
+++ b/test/passes/flatten_all-features.txt
@@ -0,0 +1,2363 @@
+(module
+ (type $none_=>_i32 (func (result i32)))
+ (type $none_=>_none (func))
+ (type $i32_i32_=>_none (func (param i32 i32)))
+ (type $i32_=>_i32 (func (param i32) (result i32)))
+ (type $none_=>_f32 (func (result f32)))
+ (type $i64_i64_=>_i64 (func (param i64 i64) (result i64)))
+ (type $none_=>_anyref (func (result anyref)))
+ (memory $0 10)
+ (table $0 1 1 funcref)
+ (elem (i32.const 0) $call-me)
+ (global $x (mut i32) (i32.const 0))
+ (func $a1 (; 0 ;)
+ (local $0 i32)
+ (local.set $0
+ (i32.add
+ (i32.const 0)
+ (i32.const 1)
+ )
+ )
+ (drop
+ (local.get $0)
+ )
+ )
+ (func $a2 (; 1 ;) (result i32)
+ (local $0 i32)
+ (local.set $0
+ (i32.add
+ (i32.const 0)
+ (i32.const 1)
+ )
+ )
+ (return
+ (local.get $0)
+ )
+ )
+ (func $a3 (; 2 ;) (result i32)
+ (local $0 i32)
+ (local $1 i32)
+ (local $2 i32)
+ (block $block
+ (local.set $0
+ (i32.const 1)
+ )
+ )
+ (local.set $1
+ (local.get $0)
+ )
+ (local.set $2
+ (i32.add
+ (i32.const 0)
+ (local.get $1)
+ )
+ )
+ (return
+ (local.get $2)
+ )
+ )
+ (func $a4 (; 3 ;)
+ (local $0 i32)
+ (local $1 i32)
+ (local $2 i32)
+ (block $block
+ (local.set $0
+ (i32.const 1)
+ )
+ )
+ (local.set $1
+ (local.get $0)
+ )
+ (local.set $2
+ (i32.add
+ (i32.const 0)
+ (local.get $1)
+ )
+ )
+ (drop
+ (local.get $2)
+ )
+ )
+ (func $a5 (; 4 ;) (result i32)
+ (local $0 i32)
+ (local $1 i32)
+ (local $2 i32)
+ (local $3 i32)
+ (local $4 i32)
+ (block $block
+ (local.set $0
+ (i32.const 0)
+ )
+ )
+ (local.set $1
+ (local.get $0)
+ )
+ (block $block0
+ (local.set $2
+ (i32.const 1)
+ )
+ )
+ (local.set $3
+ (local.get $2)
+ )
+ (local.set $4
+ (i32.add
+ (local.get $1)
+ (local.get $3)
+ )
+ )
+ (return
+ (local.get $4)
+ )
+ )
+ (func $a6 (; 5 ;) (result i32)
+ (local $x i32)
+ (local $1 i32)
+ (local $2 i32)
+ (local $3 i32)
+ (local $4 i32)
+ (local $5 i32)
+ (local $6 i32)
+ (local $7 i32)
+ (block $block
+ (local.set $x
+ (i32.const 0)
+ )
+ (local.set $1
+ (local.get $x)
+ )
+ (local.set $2
+ (local.get $1)
+ )
+ )
+ (local.set $3
+ (local.get $2)
+ )
+ (block $block1
+ (local.set $x
+ (i32.const 1)
+ )
+ (local.set $4
+ (local.get $x)
+ )
+ (local.set $5
+ (local.get $4)
+ )
+ )
+ (local.set $6
+ (local.get $5)
+ )
+ (local.set $7
+ (i32.add
+ (local.get $3)
+ (local.get $6)
+ )
+ )
+ (return
+ (local.get $7)
+ )
+ )
+ (func $a7 (; 6 ;) (result i32)
+ (local $x i32)
+ (local $1 i32)
+ (local $2 i32)
+ (local $3 i32)
+ (local $4 i32)
+ (local $5 i32)
+ (local $6 i32)
+ (local $7 i32)
+ (local $8 i32)
+ (local $9 i32)
+ (block $block
+ (block $block2
+ (local.set $x
+ (i32.const 0)
+ )
+ (local.set $1
+ (local.get $x)
+ )
+ (local.set $2
+ (local.get $1)
+ )
+ )
+ (local.set $3
+ (local.get $2)
+ )
+ (block $block3
+ (local.set $x
+ (i32.const 1)
+ )
+ (local.set $4
+ (local.get $x)
+ )
+ (local.set $5
+ (local.get $4)
+ )
+ )
+ (local.set $6
+ (local.get $5)
+ )
+ (local.set $7
+ (i32.add
+ (local.get $3)
+ (local.get $6)
+ )
+ )
+ (local.set $8
+ (local.get $7)
+ )
+ )
+ (local.set $9
+ (local.get $8)
+ )
+ (return
+ (local.get $9)
+ )
+ )
+ (func $a8 (; 7 ;) (result i32)
+ (local $x i32)
+ (local $1 i32)
+ (local $2 i32)
+ (local $3 i32)
+ (local $4 i32)
+ (local $5 i32)
+ (local $6 i32)
+ (local $7 i32)
+ (local $8 i32)
+ (local $9 i32)
+ (local $10 i32)
+ (block $outer
+ (block $inner
+ (block $block
+ (local.set $1
+ (i32.const -1)
+ )
+ (br $inner)
+ (unreachable)
+ (local.set $2
+ (i32.const 0)
+ )
+ (br $outer)
+ (unreachable)
+ (local.set $3
+ (i32.const 1)
+ )
+ )
+ (local.set $4
+ (local.get $3)
+ )
+ (block $block4
+ (local.set $2
+ (i32.const 2)
+ )
+ (br $outer)
+ (unreachable)
+ (local.set $x
+ (i32.const 3)
+ )
+ (local.set $5
+ (local.get $x)
+ )
+ (local.set $6
+ (local.get $5)
+ )
+ )
+ (local.set $7
+ (local.get $6)
+ )
+ (local.set $8
+ (i32.add
+ (local.get $4)
+ (local.get $7)
+ )
+ )
+ (local.set $1
+ (local.get $8)
+ )
+ )
+ (local.set $9
+ (local.get $1)
+ )
+ (local.set $2
+ (local.get $9)
+ )
+ )
+ (local.set $10
+ (local.get $2)
+ )
+ (return
+ (local.get $10)
+ )
+ )
+ (func $a9 (; 8 ;) (result i32)
+ (local $0 i32)
+ (local $1 i32)
+ (local $2 i32)
+ (local $3 i32)
+ (local $4 i32)
+ (local $5 i32)
+ (local $6 i32)
+ (loop $outer
+ (loop $inner
+ (block
+ (br_if $outer
+ (i32.const -1)
+ )
+ (local.set $0
+ (i32.add
+ (i32.const 0)
+ (i32.const 1)
+ )
+ )
+ (local.set $1
+ (local.get $0)
+ )
+ )
+ (local.set $2
+ (local.get $1)
+ )
+ (local.set $3
+ (local.get $2)
+ )
+ )
+ (local.set $4
+ (local.get $3)
+ )
+ (local.set $5
+ (local.get $4)
+ )
+ )
+ (local.set $6
+ (local.get $5)
+ )
+ (return
+ (local.get $6)
+ )
+ )
+ (func $a10 (; 9 ;) (result i32)
+ (local $x i32)
+ (local $1 i32)
+ (local $2 i32)
+ (local $3 i32)
+ (local $4 i32)
+ (local $5 i32)
+ (local $6 i32)
+ (local $7 i32)
+ (local $8 i32)
+ (local $9 i32)
+ (local $10 i32)
+ (block $outer
+ (local.set $1
+ (i32.const 0)
+ )
+ (br_if $outer
+ (i32.const 1)
+ )
+ (local.set $2
+ (local.get $1)
+ )
+ (drop
+ (local.get $2)
+ )
+ (local.set $x
+ (i32.const 2)
+ )
+ (local.set $3
+ (local.get $x)
+ )
+ (local.set $1
+ (local.get $3)
+ )
+ (br_if $outer
+ (i32.const 3)
+ )
+ (local.set $4
+ (local.get $1)
+ )
+ (drop
+ (local.get $4)
+ )
+ (local.set $x
+ (i32.const 5)
+ )
+ (local.set $5
+ (local.get $x)
+ )
+ (local.set $1
+ (i32.const 4)
+ )
+ (br_if $outer
+ (local.get $5)
+ )
+ (local.set $6
+ (local.get $1)
+ )
+ (drop
+ (local.get $6)
+ )
+ (local.set $x
+ (i32.const 6)
+ )
+ (local.set $7
+ (local.get $x)
+ )
+ (local.set $x
+ (i32.const 7)
+ )
+ (local.set $8
+ (local.get $x)
+ )
+ (local.set $1
+ (local.get $7)
+ )
+ (br_if $outer
+ (local.get $8)
+ )
+ (local.set $9
+ (local.get $1)
+ )
+ (drop
+ (local.get $9)
+ )
+ (local.set $1
+ (i32.const 8)
+ )
+ (br $outer)
+ (unreachable)
+ )
+ (local.set $10
+ (local.get $1)
+ )
+ (return
+ (local.get $10)
+ )
+ )
+ (func $a11 (; 10 ;)
+ (if
+ (i32.const 0)
+ (drop
+ (i32.const 1)
+ )
+ )
+ )
+ (func $a12 (; 11 ;) (result i32)
+ (local $0 i32)
+ (local $1 i32)
+ (if
+ (i32.const 0)
+ (local.set $0
+ (i32.const 1)
+ )
+ (local.set $0
+ (i32.const 2)
+ )
+ )
+ (local.set $1
+ (local.get $0)
+ )
+ (return
+ (local.get $1)
+ )
+ )
+ (func $a13 (; 12 ;) (result i32)
+ (local $0 i32)
+ (local $1 i32)
+ (local $2 i32)
+ (local $3 i32)
+ (local $4 i32)
+ (block $x
+ (block
+ (local.set $0
+ (i32.const 2)
+ )
+ (local.set $1
+ (local.get $0)
+ )
+ (br_table $x
+ (i32.const 0)
+ )
+ (if
+ (unreachable)
+ (local.set $2
+ (i32.const 0)
+ )
+ (local.set $2
+ (i32.const 1)
+ )
+ )
+ )
+ (local.set $3
+ (local.get $2)
+ )
+ (local.set $1
+ (local.get $3)
+ )
+ )
+ (local.set $4
+ (local.get $1)
+ )
+ (return
+ (local.get $4)
+ )
+ )
+ (func $a14 (; 13 ;) (result i32)
+ (local $0 i32)
+ (local $1 i32)
+ (local $2 i32)
+ (block $block
+ (local.set $0
+ (i32.const 7)
+ )
+ (local.set $1
+ (local.get $0)
+ )
+ (br_table $block
+ (i32.const 1)
+ )
+ (select
+ (i32.const 0)
+ (i32.const 1)
+ (unreachable)
+ )
+ (unreachable)
+ )
+ (local.set $2
+ (local.get $1)
+ )
+ (return
+ (local.get $2)
+ )
+ )
+ (func $a15 (; 14 ;)
+ (local $0 i32)
+ (local $1 f32)
+ (local $2 f32)
+ (block
+ (local.set $0
+ (i32.load16_u
+ (i32.const 53)
+ )
+ )
+ (if
+ (local.get $0)
+ (unreachable)
+ (block
+ (block $label$3
+ (unreachable)
+ )
+ (local.set $2
+ (local.get $1)
+ )
+ (drop
+ (local.get $2)
+ )
+ )
+ )
+ )
+ (unreachable)
+ )
+ (func $a16 (; 15 ;) (result i32)
+ (local $x i32)
+ (local $1 i32)
+ (local $2 i32)
+ (local $3 i32)
+ (local $4 i32)
+ (local $5 i32)
+ (local $6 i32)
+ (local $7 i32)
+ (block $label$1
+ (local.set $x
+ (i32.const 1)
+ )
+ (local.set $1
+ (local.get $x)
+ )
+ (block $label$2
+ (local.set $x
+ (i32.const 0)
+ )
+ (local.set $2
+ (i32.const 0)
+ )
+ )
+ (local.set $3
+ (local.get $2)
+ )
+ (local.set $4
+ (i32.eqz
+ (local.get $3)
+ )
+ )
+ (local.set $5
+ (local.get $1)
+ )
+ (br_if $label$1
+ (local.get $4)
+ )
+ (local.set $6
+ (local.get $5)
+ )
+ (drop
+ (local.get $6)
+ )
+ (local.set $5
+ (i32.const 0)
+ )
+ )
+ (local.set $7
+ (local.get $5)
+ )
+ (return
+ (local.get $7)
+ )
+ )
+ (func $a17 (; 16 ;) (result f32)
+ (local $var$0 f32)
+ (local $1 f32)
+ (local $2 f32)
+ (local $3 f32)
+ (local $4 f32)
+ (local $5 f32)
+ (local.set $1
+ (local.get $var$0)
+ )
+ (local.set $var$0
+ (f32.const -137438953472)
+ )
+ (local.set $2
+ (local.get $var$0)
+ )
+ (local.set $3
+ (local.get $var$0)
+ )
+ (local.set $4
+ (select
+ (local.get $2)
+ (local.get $3)
+ (i32.const 0)
+ )
+ )
+ (local.set $5
+ (f32.max
+ (local.get $1)
+ (local.get $4)
+ )
+ )
+ (return
+ (local.get $5)
+ )
+ )
+ (func $a18 (; 17 ;) (result i32)
+ (local $0 i32)
+ (local $1 i32)
+ (block $label$1
+ (local.set $0
+ (i32.const 1)
+ )
+ (br_if $label$1
+ (unreachable)
+ )
+ (unreachable)
+ (drop
+ (unreachable)
+ )
+ (i32.load
+ (unreachable)
+ )
+ (unreachable)
+ )
+ (local.set $1
+ (local.get $0)
+ )
+ (return
+ (local.get $1)
+ )
+ )
+ (func $a19 (; 18 ;) (result f32)
+ (block $label$0
+ (block $label$1
+ (return
+ (f32.const 4289944320)
+ )
+ (select
+ (unreachable)
+ (unreachable)
+ (i32.const 65535)
+ )
+ (drop
+ (unreachable)
+ )
+ (unreachable)
+ )
+ (unreachable)
+ )
+ (unreachable)
+ )
+ (func $call-me (; 19 ;) (param $0 i32) (param $1 i32)
+ (nop)
+ )
+ (func $code-to-kill (; 20 ;)
+ (local $x i32)
+ (local $1 i32)
+ (local $2 i32)
+ (local $3 i32)
+ (local $4 i32)
+ (local $5 i32)
+ (local $6 i32)
+ (block $out
+ (br $out)
+ (unreachable)
+ (drop
+ (i32.const 0)
+ )
+ (if
+ (i32.const 1)
+ (drop
+ (i32.const 2)
+ )
+ )
+ (br_table $out $out $out $out
+ (i32.const 3)
+ )
+ (unreachable)
+ (call $code-to-kill)
+ )
+ (if
+ (i32.const 0)
+ (block
+ (block $out1
+ (unreachable)
+ (drop
+ (i32.const 0)
+ )
+ )
+ (unreachable)
+ )
+ )
+ (if
+ (i32.const 0)
+ (block
+ (block $out3
+ (return)
+ (unreachable)
+ (drop
+ (i32.const 0)
+ )
+ )
+ (unreachable)
+ )
+ )
+ (block $out4
+ (br_table $out4 $out4 $out4 $out4
+ (i32.const 4)
+ )
+ (unreachable)
+ (drop
+ (i32.const 0)
+ )
+ )
+ (block $out5
+ (br_if $out5
+ (i32.const 3)
+ )
+ (drop
+ (i32.const 0)
+ )
+ )
+ (if
+ (i32.const 0)
+ (block
+ (block $block4
+ (if
+ (i32.const 0)
+ (block
+ (block $out8
+ (unreachable)
+ (drop
+ (i32.const 0)
+ )
+ )
+ (unreachable)
+ )
+ (block
+ (block $out9
+ (unreachable)
+ (drop
+ (i32.const 0)
+ )
+ )
+ (unreachable)
+ )
+ )
+ (unreachable)
+ (drop
+ (i32.const 0)
+ )
+ )
+ (unreachable)
+ )
+ )
+ (if
+ (i32.const 0)
+ (block
+ (block $out11
+ (unreachable)
+ (unreachable)
+ (drop
+ (i32.const 0)
+ )
+ (unreachable)
+ )
+ (local.set $2
+ (local.get $1)
+ )
+ (drop
+ (local.get $2)
+ )
+ )
+ )
+ (if
+ (i32.const 0)
+ (block
+ (block $out13
+ (unreachable)
+ (unreachable)
+ (drop
+ (i32.const 0)
+ )
+ (unreachable)
+ )
+ (local.set $4
+ (local.get $3)
+ )
+ (drop
+ (local.get $4)
+ )
+ )
+ )
+ (if
+ (i32.const 0)
+ (block
+ (block $out15
+ (unreachable)
+ (unreachable)
+ (drop
+ (i32.const 0)
+ )
+ (unreachable)
+ )
+ (local.set $6
+ (local.get $5)
+ )
+ (drop
+ (local.get $6)
+ )
+ )
+ )
+ (block $out16
+ (block $in
+ (br_if $out16
+ (i32.const 1)
+ )
+ )
+ (unreachable)
+ )
+ (if
+ (i32.const 0)
+ (block
+ (block $block11
+ (block $out18
+ (block $in19
+ (br_if $in19
+ (i32.const 1)
+ )
+ )
+ (unreachable)
+ )
+ (unreachable)
+ (drop
+ (i32.const 10)
+ )
+ )
+ (unreachable)
+ )
+ )
+ (block $out20
+ (block $in21
+ (br_table $out20 $in21
+ (i32.const 1)
+ )
+ (unreachable)
+ )
+ (unreachable)
+ )
+ (block $out22
+ (block $in23
+ (br_table $in23 $out22
+ (i32.const 1)
+ )
+ (unreachable)
+ )
+ (unreachable)
+ )
+ (if
+ (i32.const 0)
+ (block
+ (block $block13
+ (block $out25
+ (block $in26
+ (br_table $in26 $in26
+ (i32.const 1)
+ )
+ (unreachable)
+ )
+ (unreachable)
+ )
+ (unreachable)
+ (drop
+ (i32.const 10)
+ )
+ )
+ (unreachable)
+ )
+ )
+ (if
+ (i32.const 0)
+ (block
+ (block $block15
+ (drop
+ (i32.const 10)
+ )
+ (drop
+ (i32.const 42)
+ )
+ (unreachable)
+ (return
+ (unreachable)
+ )
+ (unreachable)
+ (unreachable)
+ (return)
+ (unreachable)
+ )
+ (unreachable)
+ )
+ )
+ (if
+ (i32.const 0)
+ (block
+ (loop $loop-in18
+ (unreachable)
+ )
+ (unreachable)
+ )
+ )
+ (block $out29
+ (loop $in30
+ (block
+ (br_if $out29
+ (i32.const 1)
+ )
+ (unreachable)
+ )
+ (unreachable)
+ )
+ (unreachable)
+ )
+ (if
+ (i32.const 0)
+ (block
+ (block $block20
+ (loop $in32
+ (block
+ (br_if $in32
+ (i32.const 1)
+ )
+ (unreachable)
+ )
+ (unreachable)
+ )
+ (unreachable)
+ (drop
+ (i32.const 10)
+ )
+ )
+ (unreachable)
+ )
+ )
+ (if
+ (i32.const 1)
+ (block
+ (call $call-me
+ (i32.const 123)
+ (unreachable)
+ )
+ (unreachable)
+ )
+ )
+ (if
+ (i32.const 2)
+ (block
+ (call $call-me
+ (unreachable)
+ (i32.const 0)
+ )
+ (unreachable)
+ )
+ )
+ (if
+ (i32.const 3)
+ (block
+ (call $call-me
+ (unreachable)
+ (unreachable)
+ )
+ (unreachable)
+ )
+ )
+ (if
+ (i32.const -1)
+ (block
+ (call_indirect (type $i32_i32_=>_none)
+ (i32.const 123)
+ (i32.const 456)
+ (unreachable)
+ )
+ (unreachable)
+ )
+ )
+ (if
+ (i32.const -2)
+ (block
+ (call_indirect (type $i32_i32_=>_none)
+ (i32.const 139)
+ (unreachable)
+ (i32.const 0)
+ )
+ (unreachable)
+ )
+ )
+ (if
+ (i32.const -3)
+ (block
+ (call_indirect (type $i32_i32_=>_none)
+ (i32.const 246)
+ (unreachable)
+ (unreachable)
+ )
+ (unreachable)
+ )
+ )
+ (if
+ (i32.const -4)
+ (block
+ (call_indirect (type $i32_i32_=>_none)
+ (unreachable)
+ (unreachable)
+ (unreachable)
+ )
+ (unreachable)
+ )
+ )
+ (if
+ (i32.const 11)
+ (block
+ (unreachable)
+ (unreachable)
+ )
+ )
+ (if
+ (i32.const 22)
+ (block
+ (i32.load
+ (unreachable)
+ )
+ (drop
+ (unreachable)
+ )
+ (unreachable)
+ )
+ )
+ (if
+ (i32.const 33)
+ (block
+ (i32.store
+ (i32.const 0)
+ (unreachable)
+ )
+ (unreachable)
+ )
+ )
+ (if
+ (i32.const 44)
+ (block
+ (i32.store
+ (unreachable)
+ (i32.const 0)
+ )
+ (unreachable)
+ )
+ )
+ (if
+ (i32.const 55)
+ (block
+ (i32.store
+ (unreachable)
+ (unreachable)
+ )
+ (unreachable)
+ )
+ )
+ (if
+ (i32.const 66)
+ (block
+ (i32.eqz
+ (unreachable)
+ )
+ (drop
+ (unreachable)
+ )
+ (unreachable)
+ )
+ )
+ (if
+ (i32.const 77)
+ (block
+ (i32.add
+ (unreachable)
+ (i32.const 0)
+ )
+ (drop
+ (unreachable)
+ )
+ (unreachable)
+ )
+ )
+ (if
+ (i32.const 88)
+ (block
+ (i32.add
+ (i32.const 0)
+ (unreachable)
+ )
+ (drop
+ (unreachable)
+ )
+ (unreachable)
+ )
+ )
+ (if
+ (i32.const 99)
+ (block
+ (i32.add
+ (unreachable)
+ (unreachable)
+ )
+ (unreachable)
+ )
+ )
+ (if
+ (i32.const 100)
+ (block
+ (select
+ (i32.const 123)
+ (i32.const 456)
+ (unreachable)
+ )
+ (drop
+ (unreachable)
+ )
+ (unreachable)
+ )
+ )
+ (if
+ (i32.const 101)
+ (block
+ (select
+ (i32.const 123)
+ (unreachable)
+ (i32.const 456)
+ )
+ (drop
+ (unreachable)
+ )
+ (unreachable)
+ )
+ )
+ (if
+ (i32.const 102)
+ (block
+ (select
+ (unreachable)
+ (i32.const 123)
+ (i32.const 456)
+ )
+ (drop
+ (unreachable)
+ )
+ (unreachable)
+ )
+ )
+ (drop
+ (i32.const 1337)
+ )
+ )
+ (func $killer (; 21 ;)
+ (block
+ (unreachable)
+ (drop
+ (i32.const 1000)
+ )
+ )
+ (unreachable)
+ )
+ (func $target (; 22 ;)
+ (drop
+ (i32.const 2000)
+ )
+ )
+ (func $typed-block-none-then-unreachable (; 23 ;) (result i32)
+ (local $0 i32)
+ (local $1 i32)
+ (block $top-typed
+ (block $switch$0
+ (return
+ (i32.const 0)
+ )
+ (unreachable)
+ (br $switch$0)
+ (unreachable)
+ )
+ (return
+ (i32.const 1)
+ )
+ (unreachable)
+ )
+ (local.set $1
+ (local.get $0)
+ )
+ (return
+ (local.get $1)
+ )
+ )
+ (func $typed-block-remove-br-changes-type (; 24 ;) (param $$$0 i32) (result i32)
+ (local $1 i32)
+ (local $2 i32)
+ (local $3 i32)
+ (local $4 i32)
+ (block
+ (block $switch$7
+ (block $switch-default$10
+ (block $switch-case$9
+ (block $switch-case$8
+ (br_table $switch-case$9 $switch-case$8 $switch-default$10
+ (i32.const -1)
+ )
+ (unreachable)
+ )
+ )
+ (local.set $1
+ (local.get $$$0)
+ )
+ (return
+ (local.get $1)
+ )
+ (unreachable)
+ (br $switch$7)
+ (unreachable)
+ )
+ (local.set $2
+ (local.get $$$0)
+ )
+ (return
+ (local.get $2)
+ )
+ (unreachable)
+ )
+ (return
+ (i32.const 0)
+ )
+ (unreachable)
+ )
+ (local.set $4
+ (local.get $3)
+ )
+ (return
+ (local.get $4)
+ )
+ )
+ (func $global (; 25 ;)
+ (local $0 i32)
+ (block
+ (unreachable)
+ (local.set $0
+ (global.get $x)
+ )
+ (drop
+ (local.get $0)
+ )
+ (global.set $x
+ (i32.const 1)
+ )
+ )
+ (unreachable)
+ )
+ (func $ret (; 26 ;) (result i32)
+ (local $0 i32)
+ (local $1 i32)
+ (block
+ (return
+ (i32.const 0)
+ )
+ (unreachable)
+ (nop)
+ (local.set $0
+ (i32.const 0)
+ )
+ )
+ (local.set $1
+ (local.get $0)
+ )
+ (return
+ (local.get $1)
+ )
+ )
+ (func $unreachable-br (; 27 ;) (result i32)
+ (local $0 i32)
+ (local $1 i32)
+ (block $out
+ (local.set $0
+ (i32.const 0)
+ )
+ (br $out)
+ (unreachable)
+ (unreachable)
+ )
+ (local.set $1
+ (local.get $0)
+ )
+ (return
+ (local.get $1)
+ )
+ )
+ (func $unreachable-br-loop (; 28 ;) (result i32)
+ (loop $out
+ (br $out)
+ (unreachable)
+ )
+ (unreachable)
+ )
+ (func $unreachable-block-ends-switch (; 29 ;) (result i32)
+ (local $0 i32)
+ (local $1 i32)
+ (block $label$0
+ (block $label$3
+ (nop)
+ (br_table $label$3
+ (unreachable)
+ )
+ (unreachable)
+ (unreachable)
+ )
+ (local.set $0
+ (i32.const 19)
+ )
+ )
+ (local.set $1
+ (local.get $0)
+ )
+ (return
+ (local.get $1)
+ )
+ )
+ (func $unreachable-block-ends-br_if (; 30 ;) (result i32)
+ (local $0 i32)
+ (local $1 i32)
+ (block $label$0
+ (block $label$2
+ (nop)
+ (br_if $label$2
+ (unreachable)
+ )
+ (unreachable)
+ (unreachable)
+ )
+ (local.set $0
+ (i32.const 19)
+ )
+ )
+ (local.set $1
+ (local.get $0)
+ )
+ (return
+ (local.get $1)
+ )
+ )
+ (func $unreachable-brs-3 (; 31 ;) (result i32)
+ (local $0 i32)
+ (local $1 i32)
+ (block $label$0
+ (local.set $0
+ (i32.const 18)
+ )
+ (br $label$0)
+ (memory.grow
+ (unreachable)
+ )
+ (unreachable)
+ (unreachable)
+ (local.set $0
+ (i32.const 21)
+ )
+ )
+ (local.set $1
+ (local.get $0)
+ )
+ (return
+ (local.get $1)
+ )
+ )
+ (func $unreachable-brs-4 (; 32 ;) (param $var$0 i32) (result i32)
+ (local $1 i32)
+ (local $2 i32)
+ (local $3 i32)
+ (local $4 i32)
+ (local $5 i32)
+ (block $label$0
+ (block $label$1
+ (local.set $1
+ (i32.const 4104)
+ )
+ (br_if $label$0
+ (unreachable)
+ )
+ (unreachable)
+ (drop
+ (unreachable)
+ )
+ (unreachable)
+ (local.set $2
+ (i32.const 4)
+ )
+ )
+ (local.set $3
+ (local.get $2)
+ )
+ (local.set $1
+ (local.get $3)
+ )
+ (br $label$0)
+ (unreachable)
+ (local.set $1
+ (i32.const 16)
+ )
+ )
+ (local.set $4
+ (local.get $1)
+ )
+ (local.set $5
+ (i32.add
+ (i32.const 1)
+ (local.get $4)
+ )
+ )
+ (return
+ (local.get $5)
+ )
+ )
+ (func $call-unreach (; 33 ;) (param $var$0 i64) (param $var$1 i64) (result i64)
+ (local $2 i64)
+ (local $3 i64)
+ (local $4 i32)
+ (local $5 i64)
+ (local $6 i64)
+ (local $7 i64)
+ (local $8 i64)
+ (local $9 i64)
+ (local $10 i64)
+ (local $11 i64)
+ (local $12 i64)
+ (local $13 i64)
+ (local $14 i64)
+ (local $15 i64)
+ (local $16 i64)
+ (local $17 i64)
+ (block
+ (local.set $3
+ (local.get $var$0)
+ )
+ (local.set $4
+ (i64.eqz
+ (local.get $3)
+ )
+ )
+ (if
+ (local.get $4)
+ (block
+ (block $label$0
+ (local.set $5
+ (local.get $var$1)
+ )
+ (local.set $6
+ (local.get $5)
+ )
+ )
+ (local.set $7
+ (local.get $6)
+ )
+ (local.set $16
+ (local.get $7)
+ )
+ )
+ (block
+ (block $label$1
+ (local.set $8
+ (local.get $var$0)
+ )
+ (local.set $9
+ (i64.sub
+ (local.get $8)
+ (i64.const 1)
+ )
+ )
+ (block $block
+ (local.set $10
+ (local.get $var$0)
+ )
+ (local.set $2
+ (local.get $10)
+ )
+ (nop)
+ (local.set $11
+ (local.get $2)
+ )
+ (local.set $12
+ (local.get $11)
+ )
+ )
+ (local.set $13
+ (local.get $12)
+ )
+ (i64.mul
+ (local.get $13)
+ (unreachable)
+ )
+ (call $call-unreach
+ (local.get $9)
+ (unreachable)
+ )
+ (unreachable)
+ )
+ (local.set $15
+ (local.get $14)
+ )
+ (local.set $16
+ (local.get $15)
+ )
+ )
+ )
+ )
+ (local.set $17
+ (local.get $16)
+ )
+ (return
+ (local.get $17)
+ )
+ )
+ (func $test-flatten (; 34 ;)
+ (local $0 i32)
+ (local $1 i32)
+ (local $2 i32)
+ (local $3 i32)
+ (local $4 i32)
+ (local $5 i32)
+ (local $6 i32)
+ (local $7 i32)
+ (local $8 i32)
+ (local $9 i32)
+ (local $10 i32)
+ (local $11 i32)
+ (local $12 i32)
+ (local $13 i32)
+ (local $14 i32)
+ (local $15 i32)
+ (local $16 i32)
+ (local $17 i32)
+ (local $18 i32)
+ (local $19 i32)
+ (local $20 i32)
+ (local $21 i32)
+ (local $22 i32)
+ (local $23 i32)
+ (local $24 i32)
+ (local $25 i32)
+ (local $26 i32)
+ (local $27 i32)
+ (local $28 i32)
+ (local $29 i32)
+ (local $30 i32)
+ (local $31 i32)
+ (local $32 i32)
+ (local $33 i32)
+ (local $34 i32)
+ (local $35 i32)
+ (local $36 i32)
+ (local $37 i32)
+ (local $38 i32)
+ (local $39 i32)
+ (block $out
+ (local.set $0
+ (i32.add
+ (i32.const 1)
+ (i32.const 2)
+ )
+ )
+ (drop
+ (local.get $0)
+ )
+ (br $out)
+ (i32.add
+ (i32.const 1)
+ (unreachable)
+ )
+ (drop
+ (unreachable)
+ )
+ (unreachable)
+ (br $out)
+ (i32.add
+ (unreachable)
+ (i32.const 1)
+ )
+ (drop
+ (unreachable)
+ )
+ (unreachable)
+ (br_table $out $out $out $out
+ (i32.const 3)
+ )
+ (i32.add
+ (i32.const 1)
+ (unreachable)
+ )
+ (drop
+ (unreachable)
+ )
+ (unreachable)
+ (block $block
+ (drop
+ (i32.const 2)
+ )
+ (drop
+ (i32.const 3)
+ )
+ (local.set $1
+ (i32.const 4)
+ )
+ )
+ (local.set $2
+ (local.get $1)
+ )
+ (local.set $3
+ (i32.add
+ (i32.const 1)
+ (local.get $2)
+ )
+ )
+ (drop
+ (local.get $3)
+ )
+ (block $in
+ (block $switch-in
+ (local.set $4
+ (i32.const 2)
+ )
+ (local.set $5
+ (local.get $4)
+ )
+ (local.set $6
+ (local.get $4)
+ )
+ (br_table $in $switch-in $in
+ (i32.const 777)
+ )
+ (unreachable)
+ )
+ (local.set $7
+ (local.get $6)
+ )
+ (drop
+ (local.get $7)
+ )
+ (local.set $5
+ (i32.const 3)
+ )
+ (br $in)
+ (unreachable)
+ (local.set $5
+ (i32.const 4)
+ )
+ )
+ (local.set $8
+ (local.get $5)
+ )
+ (local.set $9
+ (i32.add
+ (i32.const 1)
+ (local.get $8)
+ )
+ )
+ (drop
+ (local.get $9)
+ )
+ (loop $loop-in
+ (local.set $10
+ (i32.const 5)
+ )
+ )
+ (local.set $11
+ (local.get $10)
+ )
+ (local.set $12
+ (i32.add
+ (i32.const 1)
+ (local.get $11)
+ )
+ )
+ (drop
+ (local.get $12)
+ )
+ (if
+ (i32.const 6)
+ (local.set $13
+ (i32.const 7)
+ )
+ (local.set $13
+ (i32.const 8)
+ )
+ )
+ (local.set $14
+ (local.get $13)
+ )
+ (local.set $15
+ (i32.add
+ (i32.const 1)
+ (local.get $14)
+ )
+ )
+ (drop
+ (local.get $15)
+ )
+ (local.set $16
+ (select
+ (i32.const 9)
+ (i32.const 10)
+ (i32.const 11)
+ )
+ )
+ (drop
+ (local.get $16)
+ )
+ (br $out)
+ (select
+ (unreachable)
+ (i32.const 10)
+ (i32.const 11)
+ )
+ (drop
+ (unreachable)
+ )
+ (unreachable)
+ (br $out)
+ (select
+ (i32.const 9)
+ (unreachable)
+ (i32.const 11)
+ )
+ (drop
+ (unreachable)
+ )
+ (unreachable)
+ (br $out)
+ (select
+ (i32.const 9)
+ (i32.const 10)
+ (unreachable)
+ )
+ (drop
+ (unreachable)
+ )
+ (unreachable)
+ (if
+ (i32.const 11)
+ (local.set $17
+ (i32.const 12)
+ )
+ (local.set $17
+ (i32.const 13)
+ )
+ )
+ (local.set $18
+ (local.get $17)
+ )
+ (local.set $19
+ (select
+ (local.get $18)
+ (i32.const 9)
+ (i32.const 10)
+ )
+ )
+ (drop
+ (local.get $19)
+ )
+ (if
+ (i32.const 11)
+ (local.set $20
+ (i32.const 12)
+ )
+ (local.set $20
+ (i32.const 13)
+ )
+ )
+ (local.set $21
+ (local.get $20)
+ )
+ (local.set $22
+ (select
+ (i32.const 9)
+ (local.get $21)
+ (i32.const 10)
+ )
+ )
+ (drop
+ (local.get $22)
+ )
+ (if
+ (i32.const 11)
+ (local.set $23
+ (i32.const 12)
+ )
+ (local.set $23
+ (i32.const 13)
+ )
+ )
+ (local.set $24
+ (local.get $23)
+ )
+ (local.set $25
+ (select
+ (i32.const 9)
+ (i32.const 10)
+ (local.get $24)
+ )
+ )
+ (drop
+ (local.get $25)
+ )
+ (if
+ (i32.const 11)
+ (local.set $26
+ (i32.const 12)
+ )
+ (local.set $26
+ (i32.const 13)
+ )
+ )
+ (local.set $27
+ (local.get $26)
+ )
+ (if
+ (i32.const 15)
+ (local.set $28
+ (i32.const 16)
+ )
+ (local.set $28
+ (i32.const 17)
+ )
+ )
+ (local.set $29
+ (local.get $28)
+ )
+ (local.set $30
+ (select
+ (local.get $27)
+ (i32.const 14)
+ (local.get $29)
+ )
+ )
+ (drop
+ (local.get $30)
+ )
+ (return)
+ (i32.add
+ (i32.const 1)
+ (unreachable)
+ )
+ (drop
+ (unreachable)
+ )
+ (unreachable)
+ (i32.add
+ (i32.const 1)
+ (unreachable)
+ )
+ (drop
+ (unreachable)
+ )
+ (unreachable)
+ (block
+ (if
+ (i32.const 5)
+ (local.set $31
+ (i32.const 6)
+ )
+ (local.set $31
+ (i32.const 7)
+ )
+ )
+ (local.set $32
+ (local.get $31)
+ )
+ (if
+ (local.get $32)
+ (local.set $35
+ (i32.const 8)
+ )
+ (block
+ (if
+ (i32.const 9)
+ (local.set $33
+ (i32.const 10)
+ )
+ (local.set $33
+ (i32.const 11)
+ )
+ )
+ (local.set $34
+ (local.get $33)
+ )
+ (local.set $35
+ (local.get $34)
+ )
+ )
+ )
+ )
+ (local.set $36
+ (local.get $35)
+ )
+ (drop
+ (local.get $36)
+ )
+ (block $temp
+ (local.set $37
+ (i32.const 1)
+ )
+ (br_if $temp
+ (i32.const 2)
+ )
+ (local.set $38
+ (local.get $37)
+ )
+ (local.set $37
+ (local.get $38)
+ )
+ )
+ (local.set $39
+ (local.get $37)
+ )
+ (drop
+ (local.get $39)
+ )
+ )
+ )
+ (func $flatten-return-value (; 35 ;) (result i32)
+ (local $0 i32)
+ (local $1 i32)
+ (block
+ (return
+ (i32.const 2)
+ )
+ (i32.add
+ (i32.const 1)
+ (unreachable)
+ )
+ (drop
+ (unreachable)
+ )
+ (unreachable)
+ (local.set $0
+ (i32.const 3)
+ )
+ )
+ (local.set $1
+ (local.get $0)
+ )
+ (return
+ (local.get $1)
+ )
+ )
+ (func $unbug (; 36 ;)
+ (local $12 i32)
+ (local $432 i32)
+ (local $430 i32)
+ (local $431 i32)
+ (local $9 i32)
+ (local $5 i32)
+ (local $433 i32)
+ (local $7 i32)
+ (local $8 i32)
+ (local $9 i32)
+ (local $10 i32)
+ (local $11 i32)
+ (local $12 i32)
+ (local $13 i32)
+ (local $14 i32)
+ (local $15 i32)
+ (local $16 i32)
+ (local $17 i32)
+ (local $18 i32)
+ (local $19 i32)
+ (local $20 i32)
+ (local $21 i32)
+ (local $22 i32)
+ (block $block
+ (block
+ (local.set $7
+ (local.get $12)
+ )
+ (local.set $8
+ (i32.eq
+ (local.get $7)
+ (i32.const 65535)
+ )
+ )
+ (if
+ (local.get $8)
+ (block $block44
+ (block $label$78
+ (local.set $430
+ (i32.const 0)
+ )
+ )
+ (local.set $9
+ (local.get $430)
+ )
+ (local.set $432
+ (local.get $9)
+ )
+ )
+ (block $block45
+ (block $label$79
+ (local.set $10
+ (local.get $9)
+ )
+ (local.set $11
+ (local.get $5)
+ )
+ (local.set $12
+ (local.get $12)
+ )
+ (local.set $13
+ (i32.mul
+ (local.get $12)
+ (i32.const 12)
+ )
+ )
+ (local.set $14
+ (i32.add
+ (local.get $11)
+ (local.get $13)
+ )
+ )
+ (local.set $15
+ (i32.load16_u offset=2
+ (local.get $14)
+ )
+ )
+ (local.set $16
+ (i32.lt_u
+ (local.get $10)
+ (local.get $15)
+ )
+ )
+ (local.set $431
+ (local.get $16)
+ )
+ )
+ (local.set $17
+ (local.get $431)
+ )
+ (local.set $432
+ (local.get $17)
+ )
+ )
+ )
+ )
+ (local.set $433
+ (i32.const 1)
+ )
+ (local.set $18
+ (local.get $432)
+ )
+ (local.set $19
+ (local.get $433)
+ )
+ (local.set $20
+ (i32.xor
+ (local.get $18)
+ (local.get $19)
+ )
+ )
+ (local.set $21
+ (local.get $20)
+ )
+ )
+ (local.set $22
+ (local.get $21)
+ )
+ (drop
+ (local.get $22)
+ )
+ )
+ (func $outer-block-typed (; 37 ;) (param $var$0 i32) (result i32)
+ (local $1 i32)
+ (local $2 i32)
+ (local $3 i32)
+ (local $4 i32)
+ (local $5 i32)
+ (block $block
+ (block $label$0
+ (local.set $1
+ (i32.const 16)
+ )
+ )
+ (local.set $2
+ (local.get $1)
+ )
+ (local.set $3
+ (i32.add
+ (i32.const 1)
+ (local.get $2)
+ )
+ )
+ (local.set $4
+ (local.get $3)
+ )
+ )
+ (local.set $5
+ (local.get $4)
+ )
+ (return
+ (local.get $5)
+ )
+ )
+ (func $nested-br_if-with-value (; 38 ;) (result i32)
+ (local $0 i32)
+ (local $1 i32)
+ (local $2 i32)
+ (local $3 i32)
+ (local $4 i32)
+ (local $5 i32)
+ (local $6 i32)
+ (block $label$0
+ (block $block
+ (local.set $1
+ (local.get $0)
+ )
+ (local.set $2
+ (local.get $1)
+ )
+ )
+ (local.set $3
+ (local.get $2)
+ )
+ (local.set $4
+ (i32.const 0)
+ )
+ (br_if $label$0
+ (local.get $3)
+ )
+ (local.set $5
+ (local.get $4)
+ )
+ (drop
+ (local.get $5)
+ )
+ (local.set $4
+ (i32.const 1)
+ )
+ )
+ (local.set $6
+ (local.get $4)
+ )
+ (return
+ (local.get $6)
+ )
+ )
+ (func $switch-unreachable (; 39 ;)
+ (block $label$3
+ (br_table $label$3
+ (unreachable)
+ )
+ (unreachable)
+ )
+ )
+ (func $br_if_order (; 40 ;) (param $x i32) (result i32)
+ (local $1 i32)
+ (local $2 i32)
+ (local $3 i32)
+ (local $4 i32)
+ (local $5 i32)
+ (local $6 i32)
+ (local $7 i32)
+ (local $8 i32)
+ (local $9 i32)
+ (block $outer
+ (block $inner
+ (local.set $1
+ (i32.const 0)
+ )
+ (br_if $outer
+ (i32.const 1)
+ )
+ (local.set $2
+ (local.get $1)
+ )
+ (block $block
+ (local.set $3
+ (i32.const -16)
+ )
+ )
+ (local.set $4
+ (local.get $3)
+ )
+ (local.set $5
+ (call $br_if_order
+ (local.get $4)
+ )
+ )
+ (local.set $6
+ (local.get $2)
+ )
+ (br_if $inner
+ (local.get $5)
+ )
+ (local.set $7
+ (local.get $6)
+ )
+ (local.set $6
+ (local.get $7)
+ )
+ )
+ (local.set $8
+ (local.get $6)
+ )
+ (local.set $1
+ (local.get $8)
+ )
+ )
+ (local.set $9
+ (local.get $1)
+ )
+ (return
+ (local.get $9)
+ )
+ )
+ (func $tees (; 41 ;) (param $x i32) (param $y i32)
+ (local $2 i32)
+ (local $3 i32)
+ (local $4 i32)
+ (block
+ (local.set $x
+ (i32.const 1)
+ )
+ (local.set $2
+ (local.get $x)
+ )
+ (drop
+ (local.get $2)
+ )
+ (unreachable)
+ (drop
+ (unreachable)
+ )
+ (unreachable)
+ (local.set $x
+ (i32.const 2)
+ )
+ (local.set $3
+ (local.get $x)
+ )
+ (local.set $y
+ (local.get $3)
+ )
+ (local.set $4
+ (local.get $y)
+ )
+ (drop
+ (local.get $4)
+ )
+ )
+ (unreachable)
+ )
+ (func $return (; 42 ;) (param $x i32) (result i32)
+ (local $1 i32)
+ (local.set $1
+ (i32.sub
+ (i32.const 1)
+ (i32.const 2)
+ )
+ )
+ (return
+ (local.get $1)
+ )
+ (unreachable)
+ )
+ (func $subtype (; 43 ;) (result anyref)
+ (local $0 nullref)
+ (local $1 anyref)
+ (local $2 nullref)
+ (local $3 nullref)
+ (local $4 nullref)
+ (local $5 nullref)
+ (local $6 nullref)
+ (local $7 anyref)
+ (block $label0
+ (block $block
+ (local.set $1
+ (ref.null)
+ )
+ (local.set $2
+ (ref.null)
+ )
+ (br_if $label0
+ (i32.const 0)
+ )
+ (local.set $3
+ (local.get $2)
+ )
+ (local.set $0
+ (local.get $3)
+ )
+ (local.set $4
+ (local.get $0)
+ )
+ (local.set $5
+ (local.get $4)
+ )
+ )
+ (local.set $6
+ (local.get $5)
+ )
+ (local.set $1
+ (local.get $6)
+ )
+ )
+ (local.set $7
+ (local.get $1)
+ )
+ (return
+ (local.get $7)
+ )
+ )
+)