diff options
Diffstat (limited to 'test')
-rw-r--r-- | test/passes/dce.txt | 34 | ||||
-rw-r--r-- | test/passes/dce.wast | 29 |
2 files changed, 63 insertions, 0 deletions
diff --git a/test/passes/dce.txt b/test/passes/dce.txt index 22189fb66..98f0ea177 100644 --- a/test/passes/dce.txt +++ b/test/passes/dce.txt @@ -3,6 +3,7 @@ (type $1 (func)) (type $2 (func (result i32))) (type $3 (func (param i32) (result i32))) + (type $4 (func (param i64 i64) (result i64))) (global $x (mut i32) (i32.const 0)) (table 1 1 anyfunc) (elem (i32.const 0) $call-me) @@ -379,4 +380,37 @@ ) ) ) + (func $call-unreach (type $4) (param $var$0 i64) (param $var$1 i64) (result i64) + (local $2 i64) + (if i64 + (i64.eqz + (get_local $var$0) + ) + (block $label$0 i64 + (get_local $var$1) + ) + (block $label$1 i64 + (block i64 + (drop + (i64.sub + (get_local $var$0) + (i64.const 1) + ) + ) + (block + (drop + (block $block i64 + (set_local $2 + (get_local $var$0) + ) + (nop) + (get_local $2) + ) + ) + (unreachable) + ) + ) + ) + ) + ) ) diff --git a/test/passes/dce.wast b/test/passes/dce.wast index 865f373cf..87a5757cd 100644 --- a/test/passes/dce.wast +++ b/test/passes/dce.wast @@ -509,4 +509,33 @@ ) ) ) + (func $call-unreach (param $var$0 i64) (param $var$1 i64) (result i64) + (local $2 i64) + (if i64 + (i64.eqz + (get_local $var$0) + ) + (block $label$0 i64 + (get_local $var$1) + ) + (block $label$1 i64 + (call $call-unreach + (i64.sub + (get_local $var$0) + (i64.const 1) + ) + (i64.mul + (block i64 + (set_local $2 + (get_local $var$0) + ) + (nop) + (get_local $2) + ) + (unreachable) + ) + ) + ) + ) + ) ) |