| (module | |
| (type $0 (func)) | |
| (type $1 (func (result i32))) | |
| (type $2 (func (param i32 i32) (result i32))) | |
| (type $3 (func (param i32) (result i32))) | |
| (func $ifs | |
| (if | |
| (i32.const 0) | |
| (then | |
| (nop) | |
| ) | |
| ) | |
| (if | |
| (i32.const 0) | |
| (then | |
| (nop) | |
| ) | |
| (else | |
| (nop) | |
| ) | |
| ) | |
| (if | |
| (i32.const 0) | |
| (then | |
| (nop) | |
| ) | |
| (else | |
| (unreachable) | |
| ) | |
| ) | |
| (drop | |
| (if (result i32) | |
| (i32.const 0) | |
| (then | |
| (i32.add | |
| (i32.const 1) | |
| (i32.const 2) | |
| ) | |
| ) | |
| (else | |
| (i32.add | |
| (i32.const 1) | |
| (i32.const 2) | |
| ) | |
| ) | |
| ) | |
| ) | |
| (drop | |
| (if (result i32) | |
| (i32.const 0) | |
| (then | |
| (i32.add | |
| (i32.const 1) | |
| (i32.const 2) | |
| ) | |
| ) | |
| (else | |
| (i32.add | |
| (i32.const 1) | |
| (i32.const 333333333) | |
| ) | |
| ) | |
| ) | |
| ) | |
| ) | |
| (func $ifs-blocks | |
| (block | |
| (drop | |
| (i32.const 0) | |
| ) | |
| (nop) | |
| ) | |
| (block | |
| (if | |
| (i32.const 0) | |
| (then | |
| (unreachable) | |
| ) | |
| (else | |
| ) | |
| ) | |
| (nop) | |
| ) | |
| (block | |
| (if | |
| (i32.const 0) | |
| (then | |
| ) | |
| (else | |
| (unreachable) | |
| ) | |
| ) | |
| (nop) | |
| ) | |
| (if | |
| (i32.const 0) | |
| (then | |
| (nop) | |
| (unreachable) | |
| ) | |
| (else | |
| (nop) | |
| ) | |
| ) | |
| (if | |
| (i32.const 0) | |
| (then | |
| (nop) | |
| ) | |
| (else | |
| (nop) | |
| (unreachable) | |
| ) | |
| ) | |
| ) | |
| (func $ifs-blocks-big | |
| (block | |
| (drop | |
| (i32.const 0) | |
| ) | |
| (drop | |
| (i32.add | |
| (i32.const 1) | |
| (i32.const 2) | |
| ) | |
| ) | |
| ) | |
| (block | |
| (if | |
| (i32.const 0) | |
| (then | |
| (unreachable) | |
| ) | |
| (else | |
| ) | |
| ) | |
| (drop | |
| (i32.add | |
| (i32.const 1) | |
| (i32.const 2) | |
| ) | |
| ) | |
| ) | |
| (block | |
| (if | |
| (i32.const 0) | |
| (then | |
| ) | |
| (else | |
| (unreachable) | |
| ) | |
| ) | |
| (drop | |
| (i32.add | |
| (i32.const 1) | |
| (i32.const 2) | |
| ) | |
| ) | |
| ) | |
| (if | |
| (i32.const 0) | |
| (then | |
| (drop | |
| (i32.add | |
| (i32.const 1) | |
| (i32.const 2) | |
| ) | |
| ) | |
| (unreachable) | |
| ) | |
| (else | |
| (drop | |
| (i32.add | |
| (i32.const 1) | |
| (i32.const 2) | |
| ) | |
| ) | |
| ) | |
| ) | |
| (if | |
| (i32.const 0) | |
| (then | |
| (drop | |
| (i32.add | |
| (i32.const 1) | |
| (i32.const 2) | |
| ) | |
| ) | |
| ) | |
| (else | |
| (drop | |
| (i32.add | |
| (i32.const 1) | |
| (i32.const 2) | |
| ) | |
| ) | |
| (unreachable) | |
| ) | |
| ) | |
| ) | |
| (func $ifs-blocks-long | |
| (block | |
| (if | |
| (i32.const 1) | |
| (then | |
| (drop | |
| (i32.const -1234) | |
| ) | |
| (drop | |
| (i32.const -1000) | |
| ) | |
| ) | |
| (else | |
| (drop | |
| (i32.const 999) | |
| ) | |
| ) | |
| ) | |
| (drop | |
| (i32.const 1) | |
| ) | |
| (nop) | |
| (unreachable) | |
| ) | |
| (drop | |
| (block (result i32) | |
| (if | |
| (i32.const 2) | |
| (then | |
| (drop | |
| (i32.const -1234) | |
| ) | |
| (drop | |
| (i32.const -1000) | |
| ) | |
| ) | |
| (else | |
| (drop | |
| (i32.const 999) | |
| ) | |
| ) | |
| ) | |
| (drop | |
| (i32.const 1) | |
| ) | |
| (nop) | |
| (unreachable) | |
| (i32.const 2) | |
| ) | |
| ) | |
| (drop | |
| (block (result i32) | |
| (if | |
| (i32.const 3) | |
| (then | |
| (drop | |
| (i32.const -1234) | |
| ) | |
| (drop | |
| (i32.const -1000) | |
| ) | |
| ) | |
| (else | |
| (drop | |
| (i32.const 999) | |
| ) | |
| ) | |
| ) | |
| (drop | |
| (i32.const 1) | |
| ) | |
| (nop) | |
| (i32.const 2) | |
| ) | |
| ) | |
| ) | |
| (func $if-worth-it-i-dunno | |
| (block $folding-inner0 | |
| (block | |
| (if | |
| (i32.const 0) | |
| (then | |
| (if | |
| (i32.const 0) | |
| (then | |
| (drop | |
| (i32.const -1234) | |
| ) | |
| (drop | |
| (i32.const -1000) | |
| ) | |
| (br $folding-inner0) | |
| ) | |
| (else | |
| (drop | |
| (i32.const 999) | |
| ) | |
| (drop | |
| (i32.const 1) | |
| ) | |
| (br $folding-inner0) | |
| ) | |
| ) | |
| ) | |
| ) | |
| (if | |
| (i32.const 0) | |
| (then | |
| (if | |
| (i32.const 0) | |
| (then | |
| (drop | |
| (i32.const -1234) | |
| ) | |
| (drop | |
| (i32.const -1000) | |
| ) | |
| ) | |
| (else | |
| (drop | |
| (i32.const 999) | |
| ) | |
| (drop | |
| (i32.const 1) | |
| ) | |
| ) | |
| ) | |
| (unreachable) | |
| (br $folding-inner0) | |
| ) | |
| ) | |
| (if | |
| (i32.const 0) | |
| (then | |
| (if | |
| (i32.const 0) | |
| (then | |
| ) | |
| (else | |
| (drop | |
| (i32.const 999) | |
| ) | |
| (drop | |
| (i32.const 1) | |
| ) | |
| ) | |
| ) | |
| (br $folding-inner0) | |
| ) | |
| ) | |
| (if | |
| (i32.const 0) | |
| (then | |
| (if | |
| (i32.const 0) | |
| (then | |
| (drop | |
| (i32.const -1234) | |
| ) | |
| (drop | |
| (i32.const -1000) | |
| ) | |
| ) | |
| (else | |
| ) | |
| ) | |
| (br $folding-inner0) | |
| ) | |
| ) | |
| (block | |
| (block | |
| (if | |
| (i32.const 9999) | |
| (then | |
| (drop | |
| (i32.const -51234) | |
| ) | |
| (drop | |
| (i32.const -51000) | |
| ) | |
| ) | |
| (else | |
| (drop | |
| (i32.const 5999) | |
| ) | |
| (drop | |
| (i32.const 51) | |
| ) | |
| ) | |
| ) | |
| (br $folding-inner0) | |
| ) | |
| ) | |
| (drop | |
| (block (result i32) | |
| (block (result i32) | |
| (if | |
| (i32.const 9999) | |
| (then | |
| (drop | |
| (i32.const -51234) | |
| ) | |
| (drop | |
| (i32.const -51000) | |
| ) | |
| ) | |
| (else | |
| (drop | |
| (i32.const 5999) | |
| ) | |
| (drop | |
| (i32.const 51) | |
| ) | |
| ) | |
| ) | |
| (unreachable) | |
| (i32.const 10) | |
| ) | |
| ) | |
| ) | |
| (block | |
| (drop | |
| (if (result i32) | |
| (i32.const 9999) | |
| (then | |
| (drop | |
| (i32.const -51234) | |
| ) | |
| (drop | |
| (i32.const -51000) | |
| ) | |
| (unreachable) | |
| (i32.const 10) | |
| ) | |
| (else | |
| (drop | |
| (i32.const 5999) | |
| ) | |
| (drop | |
| (i32.const 51) | |
| ) | |
| (unreachable) | |
| (i32.const 10) | |
| ) | |
| ) | |
| ) | |
| ) | |
| ) | |
| ) | |
| (unreachable) | |
| (unreachable) | |
| ) | |
| (func $no-grandparent | |
| (if | |
| (i32.const 9999) | |
| (then | |
| (drop | |
| (i32.const -51234) | |
| ) | |
| (drop | |
| (i32.const -51000) | |
| ) | |
| (unreachable) | |
| (unreachable) | |
| ) | |
| (else | |
| (drop | |
| (i32.const 5999) | |
| ) | |
| (drop | |
| (i32.const 51) | |
| ) | |
| (unreachable) | |
| (unreachable) | |
| ) | |
| ) | |
| ) | |
| (func $yes-grandparent | |
| (block | |
| (if | |
| (i32.const 9999) | |
| (then | |
| (drop | |
| (i32.const -51234) | |
| ) | |
| (drop | |
| (i32.const -51000) | |
| ) | |
| ) | |
| (else | |
| (drop | |
| (i32.const 5999) | |
| ) | |
| (drop | |
| (i32.const 51) | |
| ) | |
| ) | |
| ) | |
| (unreachable) | |
| (unreachable) | |
| ) | |
| ) | |
| (func $ifs-named-block (param $x i32) (param $y i32) (result i32) | |
| (block $out | |
| (block $out2 | |
| (block | |
| (drop | |
| (local.get $x) | |
| ) | |
| (br_if $out | |
| (local.get $y) | |
| ) | |
| (nop) | |
| ) | |
| (block | |
| (if | |
| (local.get $x) | |
| (then | |
| (br_if $out | |
| (local.get $y) | |
| ) | |
| ) | |
| (else | |
| (br_if $out2 | |
| (local.get $y) | |
| ) | |
| ) | |
| ) | |
| (nop) | |
| ) | |
| (if | |
| (i32.const 1234) | |
| (then | |
| (if | |
| (local.get $x) | |
| (then | |
| (nop) | |
| (br_if $out | |
| (local.get $y) | |
| ) | |
| (nop) | |
| ) | |
| (else | |
| (nop) | |
| (br_if $out2 | |
| (local.get $y) | |
| ) | |
| (nop) | |
| ) | |
| ) | |
| ) | |
| ) | |
| (if | |
| (local.get $x) | |
| (then | |
| (block $left | |
| (br_if $left | |
| (local.get $y) | |
| ) | |
| (nop) | |
| ) | |
| ) | |
| (else | |
| (br_if $out | |
| (local.get $y) | |
| ) | |
| (nop) | |
| ) | |
| ) | |
| (if | |
| (local.get $x) | |
| (then | |
| (br_if $out | |
| (local.get $y) | |
| ) | |
| (nop) | |
| ) | |
| (else | |
| (block $right | |
| (br_if $right | |
| (local.get $y) | |
| ) | |
| (nop) | |
| ) | |
| ) | |
| ) | |
| ) | |
| (return | |
| (i32.const 10) | |
| ) | |
| ) | |
| (return | |
| (i32.const 20) | |
| ) | |
| ) | |
| (func $block | |
| (block $x | |
| (if | |
| (i32.const 0) | |
| (then | |
| (br $x) | |
| ) | |
| ) | |
| (if | |
| (i32.const 0) | |
| (then | |
| (br $x) | |
| ) | |
| ) | |
| (br $x) | |
| ) | |
| (drop | |
| (i32.const 1) | |
| ) | |
| (drop | |
| (i32.const 2) | |
| ) | |
| ) | |
| (func $block2 | |
| (block $x | |
| (if | |
| (i32.const 0) | |
| (then | |
| (drop | |
| (i32.const 1) | |
| ) | |
| (drop | |
| (i32.const 333333) | |
| ) | |
| (br $x) | |
| ) | |
| ) | |
| (if | |
| (i32.const 0) | |
| (then | |
| (drop | |
| (i32.const 1) | |
| ) | |
| (drop | |
| (i32.const 2) | |
| ) | |
| (br $x) | |
| ) | |
| ) | |
| (drop | |
| (i32.const 1) | |
| ) | |
| (drop | |
| (i32.const 2) | |
| ) | |
| (br $x) | |
| ) | |
| ) | |
| (func $block3 | |
| (block $x | |
| (if | |
| (i32.const 0) | |
| (then | |
| (drop | |
| (i32.const 1000) | |
| ) | |
| (br $x) | |
| ) | |
| ) | |
| (if | |
| (i32.const 0) | |
| (then | |
| (drop | |
| (i32.const 2000) | |
| ) | |
| (drop | |
| (i32.const 3000) | |
| ) | |
| (br $x) | |
| ) | |
| ) | |
| (drop | |
| (i32.const 4000) | |
| ) | |
| (drop | |
| (i32.const 5000) | |
| ) | |
| (drop | |
| (i32.const 6000) | |
| ) | |
| (br $x) | |
| ) | |
| (drop | |
| (i32.const 1) | |
| ) | |
| (drop | |
| (i32.const 2) | |
| ) | |
| ) | |
| (func $mixture | |
| (block $out | |
| (block | |
| (drop | |
| (i32.const 1) | |
| ) | |
| (drop | |
| (i32.const 2) | |
| ) | |
| (nop) | |
| (nop) | |
| (nop) | |
| (nop) | |
| (nop) | |
| (nop) | |
| (br $out) | |
| ) | |
| ) | |
| (block $out2 | |
| (block | |
| (if | |
| (i32.const 1) | |
| (then | |
| (drop | |
| (i32.const 3) | |
| ) | |
| ) | |
| (else | |
| (drop | |
| (i32.const 4) | |
| ) | |
| (drop | |
| (i32.const 5) | |
| ) | |
| ) | |
| ) | |
| (drop | |
| (i32.const 2) | |
| ) | |
| (nop) | |
| (nop) | |
| (nop) | |
| (nop) | |
| (nop) | |
| (nop) | |
| (br $out2) | |
| ) | |
| ) | |
| (block | |
| (block $out3 | |
| (block | |
| (drop | |
| (i32.const 1) | |
| ) | |
| (br $out3) | |
| ) | |
| (block | |
| (drop | |
| (i32.const 1) | |
| ) | |
| (br $out3) | |
| ) | |
| (br $out3) | |
| ) | |
| (drop | |
| (i32.const 2) | |
| ) | |
| (nop) | |
| (nop) | |
| (nop) | |
| (nop) | |
| (nop) | |
| (nop) | |
| ) | |
| ) | |
| (func $block-corners | |
| (block | |
| (block $x | |
| (if | |
| (i32.const 0) | |
| (then | |
| (br $x) | |
| ) | |
| ) | |
| ) | |
| (drop | |
| (i32.const 1) | |
| ) | |
| (drop | |
| (i32.const 2) | |
| ) | |
| ) | |
| (drop | |
| (block (result i32) | |
| (block $y | |
| (if | |
| (i32.const 0) | |
| (then | |
| (br $y) | |
| ) | |
| ) | |
| (br $y) | |
| ) | |
| (drop | |
| (i32.const 1) | |
| ) | |
| (drop | |
| (i32.const 2) | |
| ) | |
| (i32.const 3) | |
| ) | |
| ) | |
| (drop | |
| (block $z (result i32) | |
| (if | |
| (i32.const 0) | |
| (then | |
| (drop | |
| (i32.const 1) | |
| ) | |
| (drop | |
| (i32.const 2) | |
| ) | |
| (br $z | |
| (i32.const 2) | |
| ) | |
| ) | |
| ) | |
| (drop | |
| (i32.const 1) | |
| ) | |
| (drop | |
| (i32.const 2) | |
| ) | |
| (i32.const 3) | |
| ) | |
| ) | |
| (block $w | |
| (if | |
| (i32.const 0) | |
| (then | |
| (drop | |
| (i32.const 1) | |
| ) | |
| (drop | |
| (i32.const 2) | |
| ) | |
| (br_if $w | |
| (i32.const 3) | |
| ) | |
| ) | |
| ) | |
| (drop | |
| (i32.const 1) | |
| ) | |
| (drop | |
| (i32.const 2) | |
| ) | |
| ) | |
| (block $x1 | |
| (if | |
| (i32.const 0) | |
| (then | |
| (drop | |
| (i32.const 1) | |
| ) | |
| (drop | |
| (i32.const 2) | |
| ) | |
| (br $x1) | |
| (nop) | |
| ) | |
| ) | |
| (drop | |
| (i32.const 1) | |
| ) | |
| (drop | |
| (i32.const 2) | |
| ) | |
| ) | |
| (block $side | |
| (block $x2 | |
| (br_table $x2 $side | |
| (i32.const 0) | |
| ) | |
| (if | |
| (i32.const 0) | |
| (then | |
| (drop | |
| (i32.const 1) | |
| ) | |
| (drop | |
| (i32.const 2) | |
| ) | |
| (br $x2) | |
| ) | |
| ) | |
| (drop | |
| (i32.const 1) | |
| ) | |
| (drop | |
| (i32.const 2) | |
| ) | |
| ) | |
| (block $x3 | |
| (br_table $side $x3 | |
| (i32.const 0) | |
| ) | |
| (if | |
| (i32.const 0) | |
| (then | |
| (drop | |
| (i32.const 1) | |
| ) | |
| (drop | |
| (i32.const 2) | |
| ) | |
| (br $x3) | |
| ) | |
| ) | |
| (drop | |
| (i32.const 1) | |
| ) | |
| (drop | |
| (i32.const 2) | |
| ) | |
| ) | |
| ) | |
| ) | |
| (func $terminating | |
| (block $folding-inner0 | |
| (block | |
| (if | |
| (i32.const 1) | |
| (then | |
| (br $folding-inner0) | |
| ) | |
| ) | |
| (if | |
| (i32.const 2) | |
| (then | |
| (br $folding-inner0) | |
| ) | |
| ) | |
| (if | |
| (i32.const 3) | |
| (then | |
| (br $folding-inner0) | |
| ) | |
| ) | |
| ) | |
| (return) | |
| ) | |
| (nop) | |
| (nop) | |
| (nop) | |
| (nop) | |
| (nop) | |
| (nop) | |
| (nop) | |
| (nop) | |
| (nop) | |
| (nop) | |
| (nop) | |
| (unreachable) | |
| ) | |
| (func $terminating-unreachable | |
| (block $folding-inner0 | |
| (block | |
| (if | |
| (i32.const 1) | |
| (then | |
| (br $folding-inner0) | |
| ) | |
| ) | |
| (if | |
| (i32.const 2) | |
| (then | |
| (br $folding-inner0) | |
| ) | |
| ) | |
| (if | |
| (i32.const 3) | |
| (then | |
| (br $folding-inner0) | |
| ) | |
| ) | |
| (unreachable) | |
| ) | |
| ) | |
| (nop) | |
| (nop) | |
| (nop) | |
| (nop) | |
| (nop) | |
| (nop) | |
| (nop) | |
| (nop) | |
| (nop) | |
| (nop) | |
| (nop) | |
| (unreachable) | |
| ) | |
| (func $terminating-value (result i32) | |
| (block $folding-inner0 | |
| (return | |
| (block (result i32) | |
| (if | |
| (i32.const 1) | |
| (then | |
| (br $folding-inner0) | |
| ) | |
| ) | |
| (if | |
| (i32.const 2) | |
| (then | |
| (br $folding-inner0) | |
| ) | |
| ) | |
| (if | |
| (i32.const 3) | |
| (then | |
| (br $folding-inner0) | |
| ) | |
| ) | |
| (i32.const 4) | |
| ) | |
| ) | |
| ) | |
| (nop) | |
| (nop) | |
| (nop) | |
| (nop) | |
| (nop) | |
| (nop) | |
| (nop) | |
| (nop) | |
| (nop) | |
| (nop) | |
| (nop) | |
| (unreachable) | |
| ) | |
| (func $terminating-just-2 | |
| (block $folding-inner0 | |
| (block | |
| (if | |
| (i32.const 1) | |
| (then | |
| (br $folding-inner0) | |
| ) | |
| ) | |
| (if | |
| (i32.const 2) | |
| (then | |
| (br $folding-inner0) | |
| ) | |
| ) | |
| (if | |
| (i32.const 3) | |
| (then | |
| (nop) | |
| (nop) | |
| (nop) | |
| (nop) | |
| (nop) | |
| (nop) | |
| (nop) | |
| (nop) | |
| (nop) | |
| (nop) | |
| (nop) | |
| (drop | |
| (i32.const 10) | |
| ) | |
| (unreachable) | |
| ) | |
| ) | |
| ) | |
| (return) | |
| ) | |
| (nop) | |
| (nop) | |
| (nop) | |
| (nop) | |
| (nop) | |
| (nop) | |
| (nop) | |
| (nop) | |
| (nop) | |
| (nop) | |
| (nop) | |
| (unreachable) | |
| ) | |
| (func $terminating-shortness | |
| (block $folding-inner1 | |
| (block | |
| (block $folding-inner0 | |
| (block | |
| (if | |
| (i32.const 1) | |
| (then | |
| (br $folding-inner0) | |
| ) | |
| ) | |
| (if | |
| (i32.const 2) | |
| (then | |
| (br $folding-inner1) | |
| ) | |
| ) | |
| (if | |
| (i32.const 3) | |
| (then | |
| (drop | |
| (i32.const 10) | |
| ) | |
| (br $folding-inner0) | |
| ) | |
| ) | |
| ) | |
| (return) | |
| ) | |
| (nop) | |
| (br $folding-inner1) | |
| ) | |
| ) | |
| (nop) | |
| (nop) | |
| (nop) | |
| (nop) | |
| (nop) | |
| (nop) | |
| (nop) | |
| (nop) | |
| (nop) | |
| (nop) | |
| (unreachable) | |
| ) | |
| (func $terminating-multiple-separate | |
| (block $folding-inner1 | |
| (block | |
| (block $folding-inner0 | |
| (block | |
| (if | |
| (i32.const 1) | |
| (then | |
| (br $folding-inner0) | |
| ) | |
| ) | |
| (if | |
| (i32.const 1) | |
| (then | |
| (br $folding-inner0) | |
| ) | |
| ) | |
| (if | |
| (i32.const 1) | |
| (then | |
| (br $folding-inner1) | |
| ) | |
| ) | |
| (if | |
| (i32.const 1) | |
| (then | |
| (br $folding-inner1) | |
| ) | |
| ) | |
| ) | |
| (return) | |
| ) | |
| (nop) | |
| (nop) | |
| (nop) | |
| (nop) | |
| (nop) | |
| (nop) | |
| (nop) | |
| (nop) | |
| (nop) | |
| (nop) | |
| (nop) | |
| (drop | |
| (i32.const 1) | |
| ) | |
| (unreachable) | |
| ) | |
| ) | |
| (nop) | |
| (nop) | |
| (nop) | |
| (nop) | |
| (nop) | |
| (nop) | |
| (nop) | |
| (nop) | |
| (nop) | |
| (nop) | |
| (nop) | |
| (drop | |
| (i32.const 2) | |
| ) | |
| (unreachable) | |
| ) | |
| (func $terminating-just-worth-it | |
| (block $folding-inner0 | |
| (block | |
| (if | |
| (i32.const 1) | |
| (then | |
| (br $folding-inner0) | |
| ) | |
| ) | |
| (if | |
| (i32.const 2) | |
| (then | |
| (br $folding-inner0) | |
| ) | |
| ) | |
| (if | |
| (i32.const 3) | |
| (then | |
| (br $folding-inner0) | |
| ) | |
| ) | |
| ) | |
| (return) | |
| ) | |
| (nop) | |
| (nop) | |
| (nop) | |
| (unreachable) | |
| ) | |
| (func $terminating-not-worth-it | |
| (if | |
| (i32.const 1) | |
| (then | |
| (nop) | |
| (nop) | |
| (unreachable) | |
| ) | |
| ) | |
| (if | |
| (i32.const 2) | |
| (then | |
| (nop) | |
| (nop) | |
| (unreachable) | |
| ) | |
| ) | |
| (if | |
| (i32.const 3) | |
| (then | |
| (nop) | |
| (nop) | |
| (unreachable) | |
| ) | |
| ) | |
| ) | |
| (func $terminating-return | |
| (block $folding-inner0 | |
| (block | |
| (if | |
| (i32.const 1) | |
| (then | |
| (br $folding-inner0) | |
| ) | |
| ) | |
| (if | |
| (i32.const 2) | |
| (then | |
| (br $folding-inner0) | |
| ) | |
| ) | |
| (if | |
| (i32.const 3) | |
| (then | |
| (br $folding-inner0) | |
| ) | |
| ) | |
| ) | |
| (return) | |
| ) | |
| (nop) | |
| (nop) | |
| (nop) | |
| (nop) | |
| (nop) | |
| (nop) | |
| (nop) | |
| (nop) | |
| (nop) | |
| (nop) | |
| (nop) | |
| (return) | |
| ) | |
| (func $terminating-return-value (result i32) | |
| (block $folding-inner0 | |
| (block | |
| (if | |
| (i32.const 1) | |
| (then | |
| (br $folding-inner0) | |
| ) | |
| ) | |
| (if | |
| (i32.const 2) | |
| (then | |
| (br $folding-inner0) | |
| ) | |
| ) | |
| (if | |
| (i32.const 3) | |
| (then | |
| (br $folding-inner0) | |
| ) | |
| ) | |
| (if | |
| (i32.const 3) | |
| (then | |
| (nop) | |
| (return | |
| (i32.add | |
| (i32.const 111111111) | |
| (i32.const 2222222) | |
| ) | |
| ) | |
| ) | |
| ) | |
| (return | |
| (i32.const 1234) | |
| ) | |
| ) | |
| ) | |
| (nop) | |
| (return | |
| (i32.add | |
| (i32.const 1) | |
| (i32.const 2) | |
| ) | |
| ) | |
| ) | |
| (func $terminating-fallthrough-value (result i32) | |
| (block $folding-inner0 | |
| (return | |
| (block (result i32) | |
| (if | |
| (i32.const 1) | |
| (then | |
| (br $folding-inner0) | |
| ) | |
| ) | |
| (if | |
| (i32.const 2) | |
| (then | |
| (br $folding-inner0) | |
| ) | |
| ) | |
| (if | |
| (i32.const 3) | |
| (then | |
| (br $folding-inner0) | |
| ) | |
| ) | |
| (if | |
| (i32.const 3) | |
| (then | |
| (nop) | |
| (return | |
| (i32.add | |
| (i32.const 111111111) | |
| (i32.const 2222222) | |
| ) | |
| ) | |
| ) | |
| ) | |
| (i32.const 1234) | |
| ) | |
| ) | |
| ) | |
| (nop) | |
| (return | |
| (i32.add | |
| (i32.const 1) | |
| (i32.const 2) | |
| ) | |
| ) | |
| ) | |
| (func $big-return (result i32) | |
| (block $folding-inner0 | |
| (block | |
| (if | |
| (i32.const 1) | |
| (then | |
| (br $folding-inner0) | |
| ) | |
| ) | |
| (if | |
| (i32.const 2) | |
| (then | |
| (br $folding-inner0) | |
| ) | |
| ) | |
| (if | |
| (i32.const 3) | |
| (then | |
| (br $folding-inner0) | |
| ) | |
| ) | |
| (if | |
| (i32.const 4) | |
| (then | |
| (br $folding-inner0) | |
| ) | |
| ) | |
| (if | |
| (i32.const 5) | |
| (then | |
| (br $folding-inner0) | |
| ) | |
| ) | |
| (if | |
| (i32.const 6) | |
| (then | |
| (br $folding-inner0) | |
| ) | |
| ) | |
| (unreachable) | |
| ) | |
| ) | |
| (return | |
| (i32.add | |
| (i32.const 1) | |
| (i32.const 2) | |
| ) | |
| ) | |
| ) | |
| (func $return-mix (result i32) | |
| (block $folding-inner0 | |
| (block | |
| (if | |
| (i32.const 1) | |
| (then | |
| (br $folding-inner0) | |
| ) | |
| ) | |
| (if | |
| (i32.const 2) | |
| (then | |
| (br $folding-inner0) | |
| ) | |
| ) | |
| (if | |
| (i32.const 3) | |
| (then | |
| (br $folding-inner0) | |
| ) | |
| ) | |
| (if | |
| (i32.const 4) | |
| (then | |
| (br $folding-inner0) | |
| ) | |
| ) | |
| (if | |
| (i32.const 3) | |
| (then | |
| (return | |
| (i32.add | |
| (i32.const 1) | |
| (i32.const 234567) | |
| ) | |
| ) | |
| ) | |
| ) | |
| (br $folding-inner0) | |
| ) | |
| ) | |
| (return | |
| (i32.add | |
| (i32.const 1) | |
| (i32.const 2) | |
| ) | |
| ) | |
| ) | |
| (func $just-unreachable | |
| (unreachable) | |
| ) | |
| (func $just-return (result i32) | |
| (return | |
| (i32.add | |
| (i32.const 1) | |
| (i32.const 2) | |
| ) | |
| ) | |
| ) | |
| (func $drop-if-with-value-but-unreachable | |
| (if | |
| (i32.const 0) | |
| (then | |
| (nop) | |
| ) | |
| ) | |
| (block | |
| (drop | |
| (i32.const 0) | |
| ) | |
| (nop) | |
| ) | |
| (if | |
| (i32.const 0) | |
| (then | |
| (nop) | |
| ) | |
| (else | |
| (unreachable) | |
| ) | |
| ) | |
| (nop) | |
| (drop | |
| (if (result i32) | |
| (unreachable) | |
| (then | |
| (i32.add | |
| (i32.const 1) | |
| (i32.const 2) | |
| ) | |
| ) | |
| (else | |
| (i32.add | |
| (i32.const 1) | |
| (i32.const 2) | |
| ) | |
| ) | |
| ) | |
| ) | |
| (drop | |
| (if (result i32) | |
| (i32.const 0) | |
| (then | |
| (i32.add | |
| (i32.const 1) | |
| (i32.const 2) | |
| ) | |
| ) | |
| (else | |
| (i32.add | |
| (i32.const 1) | |
| (i32.const 333333333) | |
| ) | |
| ) | |
| ) | |
| ) | |
| ) | |
| (func $nested-control-flow | |
| (block $out | |
| (block | |
| (block $x | |
| (if | |
| (i32.const 0) | |
| (then | |
| (br $x) | |
| ) | |
| ) | |
| (if | |
| (i32.const 0) | |
| (then | |
| (br $x) | |
| ) | |
| ) | |
| (br $x) | |
| ) | |
| (if | |
| (i32.const 1) | |
| (then | |
| (br $out) | |
| ) | |
| ) | |
| (drop | |
| (i32.const 1) | |
| ) | |
| (drop | |
| (i32.const 2) | |
| ) | |
| ) | |
| (drop | |
| (i32.const 3) | |
| ) | |
| ) | |
| ) | |
| (func $nested-control-flow-dangerous | |
| (block $folding-inner0 | |
| (block $out | |
| (block | |
| (if | |
| (i32.const 0) | |
| (then | |
| (if | |
| (i32.const 1) | |
| (then | |
| (br $out) | |
| ) | |
| ) | |
| (br $folding-inner0) | |
| ) | |
| ) | |
| (if | |
| (i32.const 0) | |
| (then | |
| (if | |
| (i32.const 1) | |
| (then | |
| (br $out) | |
| ) | |
| ) | |
| (br $folding-inner0) | |
| ) | |
| ) | |
| (if | |
| (i32.const 1) | |
| (then | |
| (br $out) | |
| ) | |
| ) | |
| (br $folding-inner0) | |
| ) | |
| (drop | |
| (i32.const 3) | |
| ) | |
| ) | |
| (return) | |
| ) | |
| (drop | |
| (i32.const 1) | |
| ) | |
| (drop | |
| (i32.const 2) | |
| ) | |
| (return) | |
| ) | |
| (func $nested-control-flow-dangerous-but-ok | |
| (block $folding-inner0 | |
| (block | |
| (block $middle | |
| (block | |
| (if | |
| (i32.const 0) | |
| (then | |
| (if | |
| (i32.add | |
| (i32.const 0) | |
| (i32.const 1) | |
| ) | |
| (then | |
| (br $middle) | |
| ) | |
| ) | |
| (br $folding-inner0) | |
| ) | |
| ) | |
| (if | |
| (i32.const 0) | |
| (then | |
| (if | |
| (i32.add | |
| (i32.const 0) | |
| (i32.const 1) | |
| ) | |
| (then | |
| (br $middle) | |
| ) | |
| ) | |
| (br $folding-inner0) | |
| ) | |
| ) | |
| (if | |
| (i32.add | |
| (i32.const 0) | |
| (i32.const 1) | |
| ) | |
| (then | |
| (br $middle) | |
| ) | |
| ) | |
| (br $folding-inner0) | |
| ) | |
| ) | |
| (drop | |
| (i32.const 3) | |
| ) | |
| ) | |
| (return) | |
| ) | |
| (drop | |
| (i32.const 1) | |
| ) | |
| (drop | |
| (i32.const 2) | |
| ) | |
| (return) | |
| ) | |
| (func $nested-control-flow-dangerous-but-ok-b | |
| (block $out | |
| (block $middle | |
| (block | |
| (if | |
| (i32.const 0) | |
| (then | |
| (if | |
| (i32.add | |
| (i32.const 0) | |
| (i32.const 1) | |
| ) | |
| (then | |
| (br $middle) | |
| ) | |
| ) | |
| (br $out) | |
| ) | |
| ) | |
| (if | |
| (i32.const 0) | |
| (then | |
| (if | |
| (i32.add | |
| (i32.const 0) | |
| (i32.const 1) | |
| ) | |
| (then | |
| (br $middle) | |
| ) | |
| ) | |
| (br $out) | |
| ) | |
| ) | |
| (if | |
| (i32.add | |
| (i32.const 0) | |
| (i32.const 1) | |
| ) | |
| (then | |
| (br $middle) | |
| ) | |
| ) | |
| ) | |
| ) | |
| (unreachable) | |
| ) | |
| (drop | |
| (i32.const 1) | |
| ) | |
| (drop | |
| (i32.const 2) | |
| ) | |
| (drop | |
| (i32.const 3) | |
| ) | |
| (drop | |
| (i32.const 4) | |
| ) | |
| (drop | |
| (i32.const 1) | |
| ) | |
| (drop | |
| (i32.const 2) | |
| ) | |
| (drop | |
| (i32.const 3) | |
| ) | |
| (drop | |
| (i32.const 4) | |
| ) | |
| ) | |
| (func $nested-control-flow-dangerous-but-ok-c | |
| (block $x | |
| (block | |
| (block $out | |
| (block | |
| (if | |
| (i32.const 0) | |
| (then | |
| (br $out) | |
| ) | |
| ) | |
| (if | |
| (i32.const 0) | |
| (then | |
| (br $out) | |
| ) | |
| ) | |
| (br $out) | |
| ) | |
| (unreachable) | |
| ) | |
| (if | |
| (i32.add | |
| (i32.const 0) | |
| (i32.const 1) | |
| ) | |
| (then | |
| (br $x) | |
| ) | |
| ) | |
| (drop | |
| (i32.const 1) | |
| ) | |
| (drop | |
| (i32.const 2) | |
| ) | |
| ) | |
| (unreachable) | |
| ) | |
| (drop | |
| (i32.const 5) | |
| ) | |
| ) | |
| (func $nested-control-flow-dangerous-but-ok-d | |
| (block | |
| (block $out | |
| (block | |
| (if | |
| (i32.const 0) | |
| (then | |
| (br $out) | |
| ) | |
| ) | |
| (if | |
| (i32.const 0) | |
| (then | |
| (br $out) | |
| ) | |
| ) | |
| (br $out) | |
| ) | |
| ) | |
| (block $x | |
| (if | |
| (i32.add | |
| (i32.const 0) | |
| (i32.const 1) | |
| ) | |
| (then | |
| (br $x) | |
| ) | |
| ) | |
| ) | |
| (drop | |
| (i32.const 1) | |
| ) | |
| (drop | |
| (i32.const 2) | |
| ) | |
| ) | |
| (drop | |
| (i32.const 3) | |
| ) | |
| ) | |
| (func $if-suffix (param $x i32) (result i32) | |
| (block | |
| (if | |
| (local.get $x) | |
| (then | |
| ) | |
| (else | |
| (drop | |
| (call $if-suffix | |
| (i32.const -1) | |
| ) | |
| ) | |
| ) | |
| ) | |
| (local.set $x | |
| (i32.const 1) | |
| ) | |
| ) | |
| (block (result i32) | |
| (if | |
| (local.get $x) | |
| (then | |
| ) | |
| (else | |
| (drop | |
| (call $if-suffix | |
| (i32.const -2) | |
| ) | |
| ) | |
| ) | |
| ) | |
| (i32.const 2) | |
| ) | |
| ) | |
| ) |