| (module | |
| (global $global$0 (mut i32) (i32.const 10)) | |
| (func $drop-block | |
| (block | |
| (drop | |
| (block $x (result i32) | |
| (i32.const 0) | |
| ) | |
| ) | |
| ) | |
| ) | |
| (func $drop-block-br | |
| (block | |
| (drop | |
| (block $x (result i32) | |
| (br $x (i32.const 1)) | |
| (i32.const 0) | |
| ) | |
| ) | |
| ) | |
| ) | |
| (func $drop-block-br-if | |
| (block | |
| (drop | |
| (block $x (result i32) | |
| (drop (br_if $x (i32.const 1) (i32.const 2))) | |
| (i32.const 0) | |
| ) | |
| ) | |
| ) | |
| ) | |
| (func $undroppable-block-br-if (param i32) | |
| (block | |
| (drop | |
| (block $x (result i32) | |
| (call $undroppable-block-br-if (br_if $x (i32.const 1) (i32.const 2))) | |
| (i32.const 0) | |
| ) | |
| ) | |
| ) | |
| ) | |
| (func $drop-block-nested-br-if | |
| (block | |
| (drop | |
| (block $x (result i32) | |
| (if (i32.const 100) | |
| (block | |
| (drop (br_if $x (i32.const 1) (i32.const 2))) | |
| (nop) | |
| ) | |
| ) | |
| (i32.const 0) | |
| ) | |
| ) | |
| ) | |
| ) | |
| (func $drop-unreachable-br_if (result i32) | |
| (block $label$0 (result i32) | |
| (block $label$2 (result i32) | |
| (br_if $label$2 | |
| (br $label$0 | |
| (i32.const 538976371) | |
| ) | |
| (i32.const 1918987552) | |
| ) | |
| ) | |
| ) | |
| ) | |
| (func $drop-block-squared-iloop | |
| (drop | |
| (block $label$0 (result i32) ;; this block's type should not change, so the drop remains none and valid | |
| (drop | |
| (block $label$1 | |
| (loop $label$2 | |
| (br $label$2) | |
| ) | |
| ) | |
| ) | |
| ) | |
| ) | |
| ) | |
| (func $br-goes-away-label2-becomes-unreachable | |
| (block | |
| (drop | |
| (block $label$1 (result i32) | |
| (block $label$2 | |
| (drop | |
| (br_if $label$1 | |
| (unreachable) | |
| (i32.eqz | |
| (br $label$2) | |
| ) | |
| ) | |
| ) | |
| ) | |
| (i32.const 1) | |
| ) | |
| ) | |
| ) | |
| ) | |
| (func $loop-block-drop-block-return | |
| (loop $label$4 | |
| (block $label$5 | |
| (drop | |
| (block $label$6 (result i32) | |
| (return) | |
| ) | |
| ) | |
| ) | |
| ) | |
| ) | |
| (func $if-block | |
| (block $label | |
| (if | |
| (i32.const 1) | |
| (block | |
| (drop (i32.const 2)) | |
| (drop (i32.const 3)) | |
| ) | |
| ) | |
| ) | |
| ) | |
| (func $if-block-bad | |
| (block $label | |
| (if | |
| (br $label) ;; use outside of arm | |
| (block | |
| (drop (i32.const 2)) | |
| (drop (i32.const 3)) | |
| ) | |
| ) | |
| ) | |
| ) | |
| (func $if-block-br | |
| (block $label | |
| (if | |
| (i32.const 1) | |
| (br $label) | |
| ) | |
| ) | |
| ) | |
| (func $if-block-br-1 | |
| (block $label | |
| (if | |
| (i32.const 1) | |
| (br $label) | |
| (drop (i32.const 3)) | |
| ) | |
| ) | |
| ) | |
| (func $if-block-br-2 | |
| (block $label | |
| (if | |
| (i32.const 1) | |
| (drop (i32.const 3)) | |
| (br $label) | |
| ) | |
| ) | |
| ) | |
| (func $if-block-br-3 | |
| (block $label | |
| (if | |
| (i32.const 1) | |
| (br $label) | |
| (br $label) | |
| ) | |
| ) | |
| ) | |
| (func $if-block-br-4-eithre | |
| (block $label | |
| (if | |
| (i32.const 1) | |
| (drop (i32.const 2)) | |
| (drop (i32.const 3)) | |
| ) | |
| ) | |
| ) | |
| (func $if-block-br-5-value (result i32) | |
| (block $label (result i32) | |
| (if (result i32) | |
| (i32.const 1) | |
| (i32.const 2) | |
| (i32.const 3) | |
| ) | |
| ) | |
| ) | |
| (func $restructure-if-outerType-change | |
| (loop $label$1 | |
| (br_if $label$1 | |
| (block $label$2 | |
| (block $label$3 | |
| (if | |
| (block $label$4 | |
| (unreachable) | |
| ) | |
| (br $label$3) | |
| ) | |
| ) | |
| (unreachable) | |
| ) | |
| ) | |
| ) | |
| ) | |
| (func $if-arm-unreachable | |
| (block $label$1 | |
| (if | |
| (unreachable) ;; unreachable condition | |
| (nop) | |
| (unreachable) | |
| ) | |
| ) | |
| ) | |
| (func $propagate-type-if-we-optimize | |
| (if | |
| (i32.const 1) | |
| (nop) | |
| (block | |
| (drop | |
| (loop $label$3 (result i64) | |
| (br_if $label$3 | |
| (block $label$4 (result i32) | |
| (if | |
| (i32.const 0) | |
| (unreachable) | |
| (unreachable) | |
| ) | |
| ) | |
| ) | |
| (i64.const -9) | |
| ) | |
| ) | |
| (unreachable) | |
| ) | |
| ) | |
| ) | |
| (func $br-value-blocktypechange (result f32) | |
| (global.set $global$0 | |
| (i32.const 0) | |
| ) | |
| (block $label$1 (result f32) | |
| (global.set $global$0 | |
| (i32.const 0) | |
| ) | |
| (br_if $label$1 | |
| (unreachable) | |
| (i32.const 0) | |
| ) | |
| ) | |
| ) | |
| ) |