summaryrefslogtreecommitdiff
path: root/test/passes
diff options
context:
space:
mode:
Diffstat (limited to 'test/passes')
-rw-r--r--test/passes/code-pushing_ignore-implicit-traps.txt (renamed from test/passes/code-pushing.txt)0
-rw-r--r--test/passes/code-pushing_ignore-implicit-traps.wast (renamed from test/passes/code-pushing.wast)0
-rw-r--r--test/passes/optimize-instructions_optimize-level=2_ignore-implicit-traps.txt (renamed from test/passes/optimize-instructions_optimize-level=2.txt)0
-rw-r--r--test/passes/optimize-instructions_optimize-level=2_ignore-implicit-traps.wast (renamed from test/passes/optimize-instructions_optimize-level=2.wast)0
-rw-r--r--test/passes/remove-unused-brs_shrink-level=1.txt36
-rw-r--r--test/passes/remove-unused-brs_shrink-level=1.wast25
-rw-r--r--test/passes/remove-unused-brs_shrink-level=1_ignore-implicit-traps.txt125
-rw-r--r--test/passes/remove-unused-brs_shrink-level=1_ignore-implicit-traps.wast80
8 files changed, 260 insertions, 6 deletions
diff --git a/test/passes/code-pushing.txt b/test/passes/code-pushing_ignore-implicit-traps.txt
index f09d0dfb5..f09d0dfb5 100644
--- a/test/passes/code-pushing.txt
+++ b/test/passes/code-pushing_ignore-implicit-traps.txt
diff --git a/test/passes/code-pushing.wast b/test/passes/code-pushing_ignore-implicit-traps.wast
index e1cb30f4a..e1cb30f4a 100644
--- a/test/passes/code-pushing.wast
+++ b/test/passes/code-pushing_ignore-implicit-traps.wast
diff --git a/test/passes/optimize-instructions_optimize-level=2.txt b/test/passes/optimize-instructions_optimize-level=2_ignore-implicit-traps.txt
index 243421e8c..243421e8c 100644
--- a/test/passes/optimize-instructions_optimize-level=2.txt
+++ b/test/passes/optimize-instructions_optimize-level=2_ignore-implicit-traps.txt
diff --git a/test/passes/optimize-instructions_optimize-level=2.wast b/test/passes/optimize-instructions_optimize-level=2_ignore-implicit-traps.wast
index 7874907f3..7874907f3 100644
--- a/test/passes/optimize-instructions_optimize-level=2.wast
+++ b/test/passes/optimize-instructions_optimize-level=2_ignore-implicit-traps.wast
diff --git a/test/passes/remove-unused-brs_shrink-level=1.txt b/test/passes/remove-unused-brs_shrink-level=1.txt
index 68015f73f..b81c12abe 100644
--- a/test/passes/remove-unused-brs_shrink-level=1.txt
+++ b/test/passes/remove-unused-brs_shrink-level=1.txt
@@ -4,7 +4,7 @@
(type $2 (func (result i32)))
(memory $0 256 256)
(func $b14 (type $2) (result i32)
- (block $topmost i32
+ (drop
(select
(block $block1 i32
(i32.const 12)
@@ -15,6 +15,34 @@
(i32.const 1)
)
)
+ (drop
+ (if i32
+ (i32.const 1)
+ (i32.load
+ (i32.const 10)
+ )
+ (i32.const 27)
+ )
+ )
+ (drop
+ (if i32
+ (i32.const 1)
+ (i32.rem_s
+ (i32.const 11)
+ (i32.const 12)
+ )
+ (i32.const 27)
+ )
+ )
+ (drop
+ (if i32
+ (i32.const 1)
+ (i32.trunc_u/f64
+ (f64.const 12.34)
+ )
+ (i32.const 27)
+ )
+ )
)
(func $join-br_ifs (type $1)
(block $out
@@ -85,11 +113,11 @@
(nop)
)
)
- (block $out80
- (br_if $out80
+ (block $out83
+ (br_if $out83
(i32.const 1)
)
- (br_if $out80
+ (br_if $out83
(call $b14)
)
)
diff --git a/test/passes/remove-unused-brs_shrink-level=1.wast b/test/passes/remove-unused-brs_shrink-level=1.wast
index 5a2234de6..e48ced178 100644
--- a/test/passes/remove-unused-brs_shrink-level=1.wast
+++ b/test/passes/remove-unused-brs_shrink-level=1.wast
@@ -3,8 +3,8 @@
(type $0 (func (param i32)))
(type $1 (func))
(type $2 (func (result i32)))
- (func $b14 (type $2) (result i32)
- (block $topmost i32
+ (func $b14 (type $2)
+ (drop
(if i32 ;; with shrinking, this can become a select
(i32.const 1)
(block $block1 i32
@@ -15,6 +15,27 @@
)
)
)
+ (drop
+ (if i32
+ (i32.const 1)
+ (i32.load (i32.const 10)) ;; load may have side effects, unless ignored
+ (i32.const 27)
+ )
+ )
+ (drop
+ (if i32
+ (i32.const 1)
+ (i32.rem_s (i32.const 11) (i32.const 12)) ;; rem may have side effects, unless ignored
+ (i32.const 27)
+ )
+ )
+ (drop
+ (if i32
+ (i32.const 1)
+ (i32.trunc_u/f64 (f64.const 12.34)) ;; float to int may have side effects, unless ignored
+ (i32.const 27)
+ )
+ )
)
(func $join-br_ifs
(block $out
diff --git a/test/passes/remove-unused-brs_shrink-level=1_ignore-implicit-traps.txt b/test/passes/remove-unused-brs_shrink-level=1_ignore-implicit-traps.txt
new file mode 100644
index 000000000..35cfd53c8
--- /dev/null
+++ b/test/passes/remove-unused-brs_shrink-level=1_ignore-implicit-traps.txt
@@ -0,0 +1,125 @@
+(module
+ (type $0 (func (param i32)))
+ (type $1 (func))
+ (type $2 (func (result i32)))
+ (memory $0 256 256)
+ (func $b14 (type $2) (result i32)
+ (drop
+ (select
+ (block $block1 i32
+ (i32.const 12)
+ )
+ (block $block3 i32
+ (i32.const 27)
+ )
+ (i32.const 1)
+ )
+ )
+ (drop
+ (select
+ (i32.load
+ (i32.const 10)
+ )
+ (i32.const 27)
+ (i32.const 1)
+ )
+ )
+ (drop
+ (select
+ (i32.rem_s
+ (i32.const 11)
+ (i32.const 12)
+ )
+ (i32.const 27)
+ (i32.const 1)
+ )
+ )
+ (drop
+ (select
+ (i32.trunc_u/f64
+ (f64.const 12.34)
+ )
+ (i32.const 27)
+ (i32.const 1)
+ )
+ )
+ )
+ (func $join-br_ifs (type $1)
+ (block $out
+ (br_if $out
+ (i32.or
+ (i32.const 1)
+ (i32.const 2)
+ )
+ )
+ (nop)
+ (br_if $out
+ (i32.const 3)
+ )
+ )
+ (block $out2
+ (block $out3
+ (br_if $out2
+ (i32.const 1)
+ )
+ (br_if $out3
+ (i32.const 2)
+ )
+ (br_if $out2
+ (i32.const 3)
+ )
+ )
+ (unreachable)
+ )
+ (block $out4
+ (block $out5
+ (br_if $out4
+ (i32.const 1)
+ )
+ (br_if $out5
+ (i32.or
+ (i32.const 2)
+ (i32.const 3)
+ )
+ )
+ (nop)
+ )
+ (unreachable)
+ )
+ (block $out6
+ (block $out7
+ (br_if $out6
+ (i32.or
+ (i32.const 1)
+ (i32.const 2)
+ )
+ )
+ (nop)
+ (br_if $out7
+ (i32.const 3)
+ )
+ )
+ (unreachable)
+ )
+ (if
+ (i32.eqz
+ (i32.or
+ (call $b14)
+ (i32.const 0)
+ )
+ )
+ (block
+ (nop)
+ (nop)
+ )
+ )
+ (block $out83
+ (br_if $out83
+ (i32.const 1)
+ )
+ (br_if $out83
+ (call $b14)
+ )
+ )
+ )
+)
diff --git a/test/passes/remove-unused-brs_shrink-level=1_ignore-implicit-traps.wast b/test/passes/remove-unused-brs_shrink-level=1_ignore-implicit-traps.wast
new file mode 100644
index 000000000..e48ced178
--- /dev/null
+++ b/test/passes/remove-unused-brs_shrink-level=1_ignore-implicit-traps.wast
@@ -0,0 +1,80 @@
+(module
+ (memory 256 256)
+ (type $0 (func (param i32)))
+ (type $1 (func))
+ (type $2 (func (result i32)))
+ (func $b14 (type $2)
+ (drop
+ (if i32 ;; with shrinking, this can become a select
+ (i32.const 1)
+ (block $block1 i32
+ (i32.const 12)
+ )
+ (block $block3 i32
+ (i32.const 27)
+ )
+ )
+ )
+ (drop
+ (if i32
+ (i32.const 1)
+ (i32.load (i32.const 10)) ;; load may have side effects, unless ignored
+ (i32.const 27)
+ )
+ )
+ (drop
+ (if i32
+ (i32.const 1)
+ (i32.rem_s (i32.const 11) (i32.const 12)) ;; rem may have side effects, unless ignored
+ (i32.const 27)
+ )
+ )
+ (drop
+ (if i32
+ (i32.const 1)
+ (i32.trunc_u/f64 (f64.const 12.34)) ;; float to int may have side effects, unless ignored
+ (i32.const 27)
+ )
+ )
+ )
+ (func $join-br_ifs
+ (block $out
+ (br_if $out (i32.const 1))
+ (br_if $out (i32.const 2))
+ (br_if $out (i32.const 3))
+ )
+ (block $out2
+ (block $out3
+ (br_if $out2 (i32.const 1))
+ (br_if $out3 (i32.const 2))
+ (br_if $out2 (i32.const 3))
+ )
+ (unreachable)
+ )
+ (block $out4
+ (block $out5
+ (br_if $out4 (i32.const 1))
+ (br_if $out5 (i32.const 2))
+ (br_if $out5 (i32.const 3))
+ )
+ (unreachable)
+ )
+ (block $out6
+ (block $out7
+ (br_if $out6 (i32.const 1))
+ (br_if $out6 (i32.const 2))
+ (br_if $out7 (i32.const 3))
+ )
+ (unreachable)
+ )
+ (block $out8
+ (br_if $out8 (call $b14)) ;; side effect
+ (br_if $out8 (i32.const 0))
+ )
+ (block $out8
+ (br_if $out8 (i32.const 1))
+ (br_if $out8 (call $b14)) ;; side effect
+ )
+ )
+)
+