summaryrefslogtreecommitdiff
path: root/test/passes
diff options
context:
space:
mode:
Diffstat (limited to 'test/passes')
-rw-r--r--test/passes/bysyncify_optimize-level=1.txt11
-rw-r--r--test/passes/remove-unused-brs.txt51
-rw-r--r--test/passes/remove-unused-brs.wast48
3 files changed, 105 insertions, 5 deletions
diff --git a/test/passes/bysyncify_optimize-level=1.txt b/test/passes/bysyncify_optimize-level=1.txt
index 7b1093964..b2bc87f85 100644
--- a/test/passes/bysyncify_optimize-level=1.txt
+++ b/test/passes/bysyncify_optimize-level=1.txt
@@ -1244,11 +1244,12 @@
)
)
)
- (if
- (i32.eqz
- (global.get $__bysyncify_state)
- )
- (br_if $l
+ (br_if $l
+ (select
+ (i32.eqz
+ (global.get $__bysyncify_state)
+ )
+ (i32.const 0)
(local.get $0)
)
)
diff --git a/test/passes/remove-unused-brs.txt b/test/passes/remove-unused-brs.txt
index 944828d5c..790d943c3 100644
--- a/test/passes/remove-unused-brs.txt
+++ b/test/passes/remove-unused-brs.txt
@@ -2431,4 +2431,55 @@
)
)
)
+ (func $if_br_if (; 115 ;) (type $1)
+ (local $0 i32)
+ (block $label$1
+ (br_if $label$1
+ (select
+ (local.tee $0
+ (i32.const 1024)
+ )
+ (i32.const 0)
+ (i32.eqz
+ (i32.const -4)
+ )
+ )
+ )
+ (br_if $label$1
+ (select
+ (i32.const 1025)
+ (i32.const 0)
+ (i32.eqz
+ (i32.const -5)
+ )
+ )
+ )
+ (br_if $label$1
+ (select
+ (local.tee $0
+ (i32.const 1025)
+ )
+ (i32.const 0)
+ (i32.eqz
+ (i32.const -6)
+ )
+ )
+ )
+ (if
+ (i32.const 1026)
+ (br_if $label$1
+ (local.tee $0
+ (i32.const -7)
+ )
+ )
+ )
+ (i32.store
+ (i32.const 1024)
+ (i32.add
+ (local.get $0)
+ (i32.const 1)
+ )
+ )
+ )
+ )
)
diff --git a/test/passes/remove-unused-brs.wast b/test/passes/remove-unused-brs.wast
index 15a56b2d9..c20e352f0 100644
--- a/test/passes/remove-unused-brs.wast
+++ b/test/passes/remove-unused-brs.wast
@@ -2039,5 +2039,53 @@
)
)
)
+ (func $if_br_if
+ (local $0 i32)
+ (block $label$1
+ (if
+ (local.tee $0 ;; note side effect; it's ok
+ (i32.const 1024)
+ )
+ (br_if $label$1
+ (i32.eqz
+ (i32.const -4)
+ )
+ )
+ )
+ (if
+ (i32.const 1025)
+ (br_if $label$1
+ (i32.eqz
+ (i32.const -5)
+ )
+ )
+ )
+ (if
+ (local.tee $0 ;; note side effect; it's ok
+ (i32.const 1025)
+ )
+ (br_if $label$1
+ (i32.eqz
+ (i32.const -6)
+ )
+ )
+ )
+ (if
+ (i32.const 1026)
+ (br_if $label$1
+ (local.tee $0 ;; but here it is *not* ok
+ (i32.const -7)
+ )
+ )
+ )
+ (i32.store
+ (i32.const 1024)
+ (i32.add
+ (local.get $0)
+ (i32.const 1)
+ )
+ )
+ )
+ )
)