| (module |
| (type $none_=>_none (func)) |
| (type $none_=>_i32 (func (result i32))) |
| (type $i32_i32_=>_i32 (func (param i32 i32) (result i32))) |
| (type $i32_=>_i32 (func (param i32) (result i32))) |
| (func $ifs |
| (if |
| (i32.const 0) |
| (nop) |
| ) |
| (block |
| (drop |
| (i32.const 0) |
| ) |
| (nop) |
| ) |
| (if |
| (i32.const 0) |
| (nop) |
| (unreachable) |
| ) |
| (drop |
| (block (result i32) |
| (drop |
| (i32.const 0) |
| ) |
| (i32.add |
| (i32.const 1) |
| (i32.const 2) |
| ) |
| ) |
| ) |
| (drop |
| (if (result i32) |
| (i32.const 0) |
| (i32.add |
| (i32.const 1) |
| (i32.const 2) |
| ) |
| (i32.add |
| (i32.const 1) |
| (i32.const 333333333) |
| ) |
| ) |
| ) |
| ) |
| (func $ifs-blocks |
| (block |
| (drop |
| (i32.const 0) |
| ) |
| (block |
| (nop) |
| ) |
| ) |
| (block |
| (if |
| (i32.const 0) |
| (unreachable) |
| (block |
| ) |
| ) |
| (nop) |
| ) |
| (block |
| (if |
| (i32.const 0) |
| (block |
| ) |
| (unreachable) |
| ) |
| (nop) |
| ) |
| (if |
| (i32.const 0) |
| (block |
| (nop) |
| (unreachable) |
| ) |
| (nop) |
| ) |
| (if |
| (i32.const 0) |
| (nop) |
| (block |
| (nop) |
| (unreachable) |
| ) |
| ) |
| ) |
| (func $ifs-blocks-big |
| (block |
| (drop |
| (i32.const 0) |
| ) |
| (block |
| (drop |
| (i32.add |
| (i32.const 1) |
| (i32.const 2) |
| ) |
| ) |
| ) |
| ) |
| (block |
| (if |
| (i32.const 0) |
| (unreachable) |
| (block |
| ) |
| ) |
| (drop |
| (i32.add |
| (i32.const 1) |
| (i32.const 2) |
| ) |
| ) |
| ) |
| (block |
| (if |
| (i32.const 0) |
| (block |
| ) |
| (unreachable) |
| ) |
| (drop |
| (i32.add |
| (i32.const 1) |
| (i32.const 2) |
| ) |
| ) |
| ) |
| (if |
| (i32.const 0) |
| (block |
| (drop |
| (i32.add |
| (i32.const 1) |
| (i32.const 2) |
| ) |
| ) |
| (unreachable) |
| ) |
| (drop |
| (i32.add |
| (i32.const 1) |
| (i32.const 2) |
| ) |
| ) |
| ) |
| (if |
| (i32.const 0) |
| (drop |
| (i32.add |
| (i32.const 1) |
| (i32.const 2) |
| ) |
| ) |
| (block |
| (drop |
| (i32.add |
| (i32.const 1) |
| (i32.const 2) |
| ) |
| ) |
| (unreachable) |
| ) |
| ) |
| ) |
| (func $ifs-blocks-long |
| (block |
| (if |
| (i32.const 1) |
| (block |
| (drop |
| (i32.const -1234) |
| ) |
| (drop |
| (i32.const -1000) |
| ) |
| ) |
| (drop |
| (i32.const 999) |
| ) |
| ) |
| (drop |
| (i32.const 1) |
| ) |
| (nop) |
| (unreachable) |
| ) |
| (drop |
| (block (result i32) |
| (if |
| (i32.const 2) |
| (block |
| (drop |
| (i32.const -1234) |
| ) |
| (drop |
| (i32.const -1000) |
| ) |
| ) |
| (drop |
| (i32.const 999) |
| ) |
| ) |
| (drop |
| (i32.const 1) |
| ) |
| (nop) |
| (unreachable) |
| (i32.const 2) |
| ) |
| ) |
| (drop |
| (block (result i32) |
| (if |
| (i32.const 3) |
| (block |
| (drop |
| (i32.const -1234) |
| ) |
| (drop |
| (i32.const -1000) |
| ) |
| ) |
| (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) |
| (if |
| (i32.const 0) |
| (block |
| (drop |
| (i32.const -1234) |
| ) |
| (drop |
| (i32.const -1000) |
| ) |
| (br $folding-inner0) |
| ) |
| (block |
| (drop |
| (i32.const 999) |
| ) |
| (drop |
| (i32.const 1) |
| ) |
| (br $folding-inner0) |
| ) |
| ) |
| ) |
| (if |
| (i32.const 0) |
| (block |
| (if |
| (i32.const 0) |
| (block |
| (drop |
| (i32.const -1234) |
| ) |
| (drop |
| (i32.const -1000) |
| ) |
| ) |
| (block |
| (drop |
| (i32.const 999) |
| ) |
| (drop |
| (i32.const 1) |
| ) |
| ) |
| ) |
| (unreachable) |
| (br $folding-inner0) |
| ) |
| ) |
| (if |
| (i32.const 0) |
| (block |
| (if |
| (i32.const 0) |
| (block |
| ) |
| (block |
| (drop |
| (i32.const 999) |
| ) |
| (drop |
| (i32.const 1) |
| ) |
| ) |
| ) |
| (br $folding-inner0) |
| ) |
| ) |
| (if |
| (i32.const 0) |
| (block |
| (if |
| (i32.const 0) |
| (block |
| (drop |
| (i32.const -1234) |
| ) |
| (drop |
| (i32.const -1000) |
| ) |
| ) |
| (block |
| ) |
| ) |
| (br $folding-inner0) |
| ) |
| ) |
| (block |
| (block |
| (if |
| (i32.const 9999) |
| (block |
| (drop |
| (i32.const -51234) |
| ) |
| (drop |
| (i32.const -51000) |
| ) |
| ) |
| (block |
| (drop |
| (i32.const 5999) |
| ) |
| (drop |
| (i32.const 51) |
| ) |
| ) |
| ) |
| (br $folding-inner0) |
| ) |
| ) |
| (drop |
| (block (result i32) |
| (block (result i32) |
| (if |
| (i32.const 9999) |
| (block |
| (drop |
| (i32.const -51234) |
| ) |
| (drop |
| (i32.const -51000) |
| ) |
| ) |
| (block |
| (drop |
| (i32.const 5999) |
| ) |
| (drop |
| (i32.const 51) |
| ) |
| ) |
| ) |
| (unreachable) |
| (i32.const 10) |
| ) |
| ) |
| ) |
| (block |
| (drop |
| (if (result i32) |
| (i32.const 9999) |
| (block (result i32) |
| (drop |
| (i32.const -51234) |
| ) |
| (drop |
| (i32.const -51000) |
| ) |
| (unreachable) |
| (i32.const 10) |
| ) |
| (block (result i32) |
| (drop |
| (i32.const 5999) |
| ) |
| (drop |
| (i32.const 51) |
| ) |
| (unreachable) |
| (i32.const 10) |
| ) |
| ) |
| ) |
| ) |
| ) |
| ) |
| (unreachable) |
| (unreachable) |
| ) |
| (func $no-grandparent |
| (if |
| (i32.const 9999) |
| (block |
| (drop |
| (i32.const -51234) |
| ) |
| (drop |
| (i32.const -51000) |
| ) |
| (unreachable) |
| (unreachable) |
| ) |
| (block |
| (drop |
| (i32.const 5999) |
| ) |
| (drop |
| (i32.const 51) |
| ) |
| (unreachable) |
| (unreachable) |
| ) |
| ) |
| ) |
| (func $yes-grandparent |
| (block |
| (if |
| (i32.const 9999) |
| (block |
| (drop |
| (i32.const -51234) |
| ) |
| (drop |
| (i32.const -51000) |
| ) |
| ) |
| (block |
| (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) |
| ) |
| (block |
| (br_if $out |
| (local.get $y) |
| ) |
| (nop) |
| ) |
| ) |
| (block |
| (if |
| (local.get $x) |
| (br_if $out |
| (local.get $y) |
| ) |
| (br_if $out2 |
| (local.get $y) |
| ) |
| ) |
| (nop) |
| ) |
| (if |
| (i32.const 1234) |
| (if |
| (local.get $x) |
| (block |
| (nop) |
| (br_if $out |
| (local.get $y) |
| ) |
| (nop) |
| ) |
| (block |
| (nop) |
| (br_if $out2 |
| (local.get $y) |
| ) |
| (nop) |
| ) |
| ) |
| ) |
| (if |
| (local.get $x) |
| (block $left |
| (br_if $left |
| (local.get $y) |
| ) |
| (nop) |
| ) |
| (block |
| (br_if $out |
| (local.get $y) |
| ) |
| (nop) |
| ) |
| ) |
| (if |
| (local.get $x) |
| (block |
| (br_if $out |
| (local.get $y) |
| ) |
| (nop) |
| ) |
| (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) |
| (br $x) |
| ) |
| (if |
| (i32.const 0) |
| (br $x) |
| ) |
| (br $x) |
| ) |
| (drop |
| (i32.const 1) |
| ) |
| (drop |
| (i32.const 2) |
| ) |
| ) |
| (func $block2 |
| (block $x |
| (if |
| (i32.const 0) |
| (block |
| (drop |
| (i32.const 1) |
| ) |
| (drop |
| (i32.const 333333) |
| ) |
| (br $x) |
| ) |
| ) |
| (if |
| (i32.const 0) |
| (block |
| (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) |
| (block |
| (drop |
| (i32.const 1000) |
| ) |
| (br $x) |
| ) |
| ) |
| (if |
| (i32.const 0) |
| (block |
| (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) |
| ) |
| (block |
| (drop |
| (i32.const 2) |
| ) |
| (nop) |
| (nop) |
| (nop) |
| (nop) |
| (nop) |
| (nop) |
| (br $out) |
| ) |
| ) |
| ) |
| (block $out2 |
| (block |
| (if |
| (i32.const 1) |
| (drop |
| (i32.const 3) |
| ) |
| (block |
| (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) |
| ) |
| (block |
| (br $out3) |
| ) |
| ) |
| (block |
| (drop |
| (i32.const 1) |
| ) |
| (block |
| (br $out3) |
| ) |
| ) |
| (br $out3) |
| ) |
| (drop |
| (i32.const 2) |
| ) |
| (nop) |
| (nop) |
| (nop) |
| (nop) |
| (nop) |
| (nop) |
| ) |
| ) |
| (func $block-corners |
| (block |
| (block $x |
| (if |
| (i32.const 0) |
| (br $x) |
| ) |
| ) |
| (drop |
| (i32.const 1) |
| ) |
| (drop |
| (i32.const 2) |
| ) |
| ) |
| (drop |
| (block $y (result i32) |
| (if |
| (i32.const 0) |
| (block |
| (drop |
| (i32.const 1) |
| ) |
| (drop |
| (i32.const 2) |
| ) |
| (br $y |
| (i32.const 3) |
| ) |
| ) |
| ) |
| (drop |
| (i32.const 1) |
| ) |
| (drop |
| (i32.const 2) |
| ) |
| (br $y |
| (i32.const 3) |
| ) |
| ) |
| ) |
| (drop |
| (block $z (result i32) |
| (if |
| (i32.const 0) |
| (block |
| (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) |
| (block |
| (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) |
| (block |
| (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) |
| (block |
| (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) |
| (block |
| (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) |
| (br $folding-inner0) |
| ) |
| (if |
| (i32.const 2) |
| (br $folding-inner0) |
| ) |
| (if |
| (i32.const 3) |
| (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) |
| (br $folding-inner0) |
| ) |
| (if |
| (i32.const 2) |
| (br $folding-inner0) |
| ) |
| (if |
| (i32.const 3) |
| (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) |
| (br $folding-inner0) |
| ) |
| (if |
| (i32.const 2) |
| (br $folding-inner0) |
| ) |
| (if |
| (i32.const 3) |
| (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) |
| (br $folding-inner0) |
| ) |
| (if |
| (i32.const 2) |
| (br $folding-inner0) |
| ) |
| (if |
| (i32.const 3) |
| (block |
| (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) |
| (br $folding-inner0) |
| ) |
| (if |
| (i32.const 2) |
| (br $folding-inner1) |
| ) |
| (if |
| (i32.const 3) |
| (block |
| (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) |
| (br $folding-inner0) |
| ) |
| (if |
| (i32.const 1) |
| (br $folding-inner0) |
| ) |
| (if |
| (i32.const 1) |
| (br $folding-inner1) |
| ) |
| (if |
| (i32.const 1) |
| (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) |
| (br $folding-inner0) |
| ) |
| (if |
| (i32.const 2) |
| (br $folding-inner0) |
| ) |
| (if |
| (i32.const 3) |
| (br $folding-inner0) |
| ) |
| ) |
| (return) |
| ) |
| (nop) |
| (nop) |
| (nop) |
| (unreachable) |
| ) |
| (func $terminating-not-worth-it |
| (if |
| (i32.const 1) |
| (block |
| (nop) |
| (nop) |
| (unreachable) |
| ) |
| ) |
| (if |
| (i32.const 2) |
| (block |
| (nop) |
| (nop) |
| (unreachable) |
| ) |
| ) |
| (if |
| (i32.const 3) |
| (block |
| (nop) |
| (nop) |
| (unreachable) |
| ) |
| ) |
| ) |
| (func $terminating-return |
| (block $folding-inner0 |
| (block |
| (if |
| (i32.const 1) |
| (br $folding-inner0) |
| ) |
| (if |
| (i32.const 2) |
| (br $folding-inner0) |
| ) |
| (if |
| (i32.const 3) |
| (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) |
| (br $folding-inner0) |
| ) |
| (if |
| (i32.const 2) |
| (br $folding-inner0) |
| ) |
| (if |
| (i32.const 3) |
| (br $folding-inner0) |
| ) |
| (if |
| (i32.const 3) |
| (block |
| (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) |
| (br $folding-inner0) |
| ) |
| (if |
| (i32.const 2) |
| (br $folding-inner0) |
| ) |
| (if |
| (i32.const 3) |
| (br $folding-inner0) |
| ) |
| (if |
| (i32.const 3) |
| (block |
| (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) |
| (br $folding-inner0) |
| ) |
| (if |
| (i32.const 2) |
| (br $folding-inner0) |
| ) |
| (if |
| (i32.const 3) |
| (br $folding-inner0) |
| ) |
| (if |
| (i32.const 4) |
| (br $folding-inner0) |
| ) |
| (if |
| (i32.const 5) |
| (br $folding-inner0) |
| ) |
| (if |
| (i32.const 6) |
| (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) |
| (br $folding-inner0) |
| ) |
| (if |
| (i32.const 2) |
| (br $folding-inner0) |
| ) |
| (if |
| (i32.const 3) |
| (br $folding-inner0) |
| ) |
| (if |
| (i32.const 4) |
| (br $folding-inner0) |
| ) |
| (if |
| (i32.const 3) |
| (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) |
| (nop) |
| ) |
| (block |
| (drop |
| (i32.const 0) |
| ) |
| (block |
| (nop) |
| ) |
| ) |
| (if |
| (i32.const 0) |
| (nop) |
| (unreachable) |
| ) |
| (nop) |
| (drop |
| (block (result i32) |
| (drop |
| (unreachable) |
| ) |
| (block (result i32) |
| (i32.add |
| (i32.const 1) |
| (i32.const 2) |
| ) |
| ) |
| ) |
| ) |
| (drop |
| (if (result i32) |
| (i32.const 0) |
| (i32.add |
| (i32.const 1) |
| (i32.const 2) |
| ) |
| (i32.add |
| (i32.const 1) |
| (i32.const 333333333) |
| ) |
| ) |
| ) |
| ) |
| (func $nested-control-flow |
| (block $out |
| (block |
| (block $x |
| (if |
| (i32.const 0) |
| (br $x) |
| ) |
| (if |
| (i32.const 0) |
| (br $x) |
| ) |
| (br $x) |
| ) |
| (if |
| (i32.const 1) |
| (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) |
| (block |
| (if |
| (i32.const 1) |
| (br $out) |
| ) |
| (br $folding-inner0) |
| ) |
| ) |
| (if |
| (i32.const 0) |
| (block |
| (if |
| (i32.const 1) |
| (br $out) |
| ) |
| (br $folding-inner0) |
| ) |
| ) |
| (if |
| (i32.const 1) |
| (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) |
| (block |
| (if |
| (i32.add |
| (i32.const 0) |
| (i32.const 1) |
| ) |
| (br $middle) |
| ) |
| (br $folding-inner0) |
| ) |
| ) |
| (if |
| (i32.const 0) |
| (block |
| (if |
| (i32.add |
| (i32.const 0) |
| (i32.const 1) |
| ) |
| (br $middle) |
| ) |
| (br $folding-inner0) |
| ) |
| ) |
| (if |
| (i32.add |
| (i32.const 0) |
| (i32.const 1) |
| ) |
| (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) |
| (block |
| (if |
| (i32.add |
| (i32.const 0) |
| (i32.const 1) |
| ) |
| (br $middle) |
| ) |
| (br $out) |
| ) |
| ) |
| (if |
| (i32.const 0) |
| (block |
| (if |
| (i32.add |
| (i32.const 0) |
| (i32.const 1) |
| ) |
| (br $middle) |
| ) |
| (br $out) |
| ) |
| ) |
| (if |
| (i32.add |
| (i32.const 0) |
| (i32.const 1) |
| ) |
| (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) |
| (br $out) |
| ) |
| (if |
| (i32.const 0) |
| (br $out) |
| ) |
| (br $out) |
| ) |
| (unreachable) |
| ) |
| (if |
| (i32.add |
| (i32.const 0) |
| (i32.const 1) |
| ) |
| (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) |
| (br $out) |
| ) |
| (if |
| (i32.const 0) |
| (br $out) |
| ) |
| (br $out) |
| ) |
| ) |
| (block $x |
| (if |
| (i32.add |
| (i32.const 0) |
| (i32.const 1) |
| ) |
| (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) |
| (block |
| ) |
| (drop |
| (call $if-suffix |
| (i32.const -1) |
| ) |
| ) |
| ) |
| (local.set $x |
| (i32.const 1) |
| ) |
| ) |
| (block (result i32) |
| (if |
| (local.get $x) |
| (block |
| ) |
| (drop |
| (call $if-suffix |
| (i32.const -2) |
| ) |
| ) |
| ) |
| (i32.const 2) |
| ) |
| ) |
| ) |