| (module |
| (memory 256 256) |
| (type $0 (func (param i32) (result i32))) |
| (type $1 (func)) |
| (func $b0 (type $0) (param $i1 i32) (result i32) |
| (block $topmost (result i32) |
| (i32.const 0) |
| ) |
| ) |
| (func $loops (type $1) |
| (block $out |
| (loop $in |
| (br $out) |
| (br $in) |
| ) |
| ) |
| (loop $in |
| (br $in) |
| ) |
| (loop $in |
| (nop) |
| ) |
| (block $out |
| (loop $in |
| (block $out |
| (loop $in |
| (br $out) |
| (br $in) |
| ) |
| ) |
| ) |
| ) |
| (block $out |
| (loop $in |
| (br $out) |
| (br $in) |
| ) |
| ) |
| (loop $in |
| (block $out |
| (br $out) |
| (br $in) |
| ) |
| ) |
| (loop $in |
| (block $out |
| (br $out) |
| (br $in) |
| ) |
| ) |
| (block $out |
| (loop $in |
| (br $out) |
| (br $in) |
| ) |
| ) |
| ) |
| (func $merges (type $1) |
| (block $a |
| (block $b |
| (br $a) |
| (br $b) |
| ) |
| ) |
| (block $a |
| (block $b |
| (br_table $a $b |
| (i32.const 3) |
| ) |
| ) |
| ) |
| (block $a |
| (block $b |
| (br_table $b $a |
| (i32.const 3) |
| ) |
| ) |
| ) |
| ) |
| (func $merge-typed-with-unreachable-child (result i32) |
| (local $0 f32) |
| (block $label$0 (result i32) |
| (block $label$1 (result i32) |
| (br_if $label$1 |
| (i32.const 1) |
| (br_if $label$0 |
| (i32.const 0) |
| (br $label$0 |
| (i32.const 0) |
| ) |
| ) |
| ) |
| ) |
| ) |
| ) |
| (func $loop-with-child-of-other-type |
| (drop |
| (loop (result i32) ;; the loop has no name, but can't be replaced by the child |
| (block $l ;; as the type differs |
| (unreachable) |
| ) |
| ) |
| ) |
| ) |
| ) |