summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
Diffstat (limited to 'test')
-rw-r--r--test/passes/precompute-propagate.txt7
-rw-r--r--test/passes/precompute-propagate.wast16
2 files changed, 23 insertions, 0 deletions
diff --git a/test/passes/precompute-propagate.txt b/test/passes/precompute-propagate.txt
index 15abe1f2e..919d8f3e7 100644
--- a/test/passes/precompute-propagate.txt
+++ b/test/passes/precompute-propagate.txt
@@ -2,6 +2,7 @@
(type $0 (func (param i32)))
(type $1 (func (param i32) (result i32)))
(type $2 (func (param i32 i32) (result i32)))
+ (type $3 (func (param i32 i32 i32) (result i32)))
(func $basic (; 0 ;) (type $0) (param $p i32)
(local $x i32)
(set_local $x
@@ -233,4 +234,10 @@
(i32.const 7)
)
)
+ (func $multipass (; 15 ;) (type $3) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
+ (local $3 i32)
+ (nop)
+ (nop)
+ (get_local $2)
+ )
)
diff --git a/test/passes/precompute-propagate.wast b/test/passes/precompute-propagate.wast
index 4cf440829..5cdc720ba 100644
--- a/test/passes/precompute-propagate.wast
+++ b/test/passes/precompute-propagate.wast
@@ -137,5 +137,21 @@
)
)
)
+ (func $multipass (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
+ (local $3 i32)
+ (if
+ (get_local $3)
+ (set_local $3 ;; this set is completely removed, allowing later opts
+ (i32.const 24)
+ )
+ )
+ (if
+ (get_local $3)
+ (set_local $2
+ (i32.const 0)
+ )
+ )
+ (get_local $2)
+ )
)