summaryrefslogtreecommitdiff
path: root/test/lit/passes/flatten_simplify-locals-nonesting_souperify_enable-threads.wast
diff options
context:
space:
mode:
Diffstat (limited to 'test/lit/passes/flatten_simplify-locals-nonesting_souperify_enable-threads.wast')
-rw-r--r--test/lit/passes/flatten_simplify-locals-nonesting_souperify_enable-threads.wast882
1 files changed, 525 insertions, 357 deletions
diff --git a/test/lit/passes/flatten_simplify-locals-nonesting_souperify_enable-threads.wast b/test/lit/passes/flatten_simplify-locals-nonesting_souperify_enable-threads.wast
index e8d423058..5c11e34e3 100644
--- a/test/lit/passes/flatten_simplify-locals-nonesting_souperify_enable-threads.wast
+++ b/test/lit/passes/flatten_simplify-locals-nonesting_souperify_enable-threads.wast
@@ -143,7 +143,7 @@
;; CHECK-NEXT: )
;; CHECK-NEXT: (if
;; CHECK-NEXT: (local.get $8)
- ;; CHECK-NEXT: (block
+ ;; CHECK-NEXT: (then
;; CHECK-NEXT: (block
;; CHECK-NEXT: (nop)
;; CHECK-NEXT: (nop)
@@ -180,7 +180,7 @@
;; CHECK-NEXT: )
;; CHECK-NEXT: (unreachable)
;; CHECK-NEXT: )
- ;; CHECK-NEXT: (block
+ ;; CHECK-NEXT: (else
;; CHECK-NEXT: (unreachable)
;; CHECK-NEXT: (unreachable)
;; CHECK-NEXT: )
@@ -197,28 +197,32 @@
(local.get $x)
(local.get $y)
)
- (block
- (local.set $i
- (i64.eq
- (local.get $a)
- (local.get $x)
+ (then
+ (block
+ (local.set $i
+ (i64.eq
+ (local.get $a)
+ (local.get $x)
+ )
)
- )
- (local.set $j
- (i64.ne
- (local.get $a)
- (local.get $y)
+ (local.set $j
+ (i64.ne
+ (local.get $a)
+ (local.get $y)
+ )
)
- )
- (local.set $r
- (i32.and
- (local.get $i)
- (local.get $j)
+ (local.set $r
+ (i32.and
+ (local.get $i)
+ (local.get $j)
+ )
)
+ (return (local.get $r))
)
- (return (local.get $r))
)
- (unreachable)
+ (else
+ (unreachable)
+ )
)
)
;; Figure 3, simplified to an if
@@ -244,7 +248,7 @@
;; CHECK-NEXT: )
;; CHECK-NEXT: (if
;; CHECK-NEXT: (local.get $2)
- ;; CHECK-NEXT: (block
+ ;; CHECK-NEXT: (then
;; CHECK-NEXT: (nop)
;; CHECK-NEXT: (nop)
;; CHECK-NEXT: (local.set $x
@@ -254,7 +258,7 @@
;; CHECK-NEXT: )
;; CHECK-NEXT: )
;; CHECK-NEXT: )
- ;; CHECK-NEXT: (block
+ ;; CHECK-NEXT: (else
;; CHECK-NEXT: (nop)
;; CHECK-NEXT: (nop)
;; CHECK-NEXT: (local.set $x
@@ -289,16 +293,20 @@
(local.get $x)
(i32.const 1)
)
- (local.set $x
- (i32.add
- (local.get $x)
- (i32.const 1)
+ (then
+ (local.set $x
+ (i32.add
+ (local.get $x)
+ (i32.const 1)
+ )
)
)
- (local.set $x
- (i32.add
- (local.get $x)
- (i32.const 2)
+ (else
+ (local.set $x
+ (i32.add
+ (local.get $x)
+ (i32.const 2)
+ )
)
)
)
@@ -445,7 +453,7 @@
;; CHECK-NEXT: (nop)
;; CHECK-NEXT: (if
;; CHECK-NEXT: (local.get $x)
- ;; CHECK-NEXT: (block
+ ;; CHECK-NEXT: (then
;; CHECK-NEXT: (nop)
;; CHECK-NEXT: (nop)
;; CHECK-NEXT: (local.set $x
@@ -460,10 +468,12 @@
(func $various-conditions-1 (param $x i32)
(if
(local.get $x)
- (local.set $x
- (i32.add
- (local.get $x)
- (i32.const 1)
+ (then
+ (local.set $x
+ (i32.add
+ (local.get $x)
+ (i32.const 1)
+ )
)
)
)
@@ -482,7 +492,7 @@
;; CHECK-NEXT: )
;; CHECK-NEXT: (if
;; CHECK-NEXT: (local.get $2)
- ;; CHECK-NEXT: (block
+ ;; CHECK-NEXT: (then
;; CHECK-NEXT: (nop)
;; CHECK-NEXT: (nop)
;; CHECK-NEXT: (local.set $x
@@ -500,10 +510,12 @@
(local.get $x)
(i32.const 0)
)
- (local.set $x
- (i32.sub
- (local.get $x)
- (i32.const 2)
+ (then
+ (local.set $x
+ (i32.sub
+ (local.get $x)
+ (i32.const 2)
+ )
)
)
)
@@ -519,7 +531,7 @@
;; CHECK-NEXT: )
;; CHECK-NEXT: (if
;; CHECK-NEXT: (local.get $1)
- ;; CHECK-NEXT: (block
+ ;; CHECK-NEXT: (then
;; CHECK-NEXT: (nop)
;; CHECK-NEXT: (nop)
;; CHECK-NEXT: (local.set $x
@@ -534,10 +546,12 @@
(func $various-conditions-3 (param $x i32)
(if
(i32.reinterpret_f32 (f32.const 0))
- (local.set $x
- (i32.sub
- (local.get $x)
- (i32.const 4)
+ (then
+ (local.set $x
+ (i32.sub
+ (local.get $x)
+ (i32.const 4)
+ )
)
)
)
@@ -549,7 +563,7 @@
;; CHECK-NEXT: (unreachable)
;; CHECK-NEXT: (if
;; CHECK-NEXT: (unreachable)
- ;; CHECK-NEXT: (block
+ ;; CHECK-NEXT: (then
;; CHECK-NEXT: (nop)
;; CHECK-NEXT: (nop)
;; CHECK-NEXT: (local.set $x
@@ -566,10 +580,12 @@
(func $various-conditions-4 (param $x i32)
(if
(unreachable)
- (local.set $x
- (i32.add
- (local.get $x)
- (i32.const 3)
+ (then
+ (local.set $x
+ (i32.add
+ (local.get $x)
+ (i32.const 3)
+ )
)
)
)
@@ -593,7 +609,7 @@
;; CHECK-NEXT: )
;; CHECK-NEXT: (if
;; CHECK-NEXT: (local.get $3)
- ;; CHECK-NEXT: (block
+ ;; CHECK-NEXT: (then
;; CHECK-NEXT: (nop)
;; CHECK-NEXT: (local.set $5
;; CHECK-NEXT: (i32.ctz
@@ -633,18 +649,20 @@
(i32.eqz
(local.get $x)
)
- (local.set $x
- (i32.add
- (i32.ctz
- (local.get $y)
- )
- (i32.sub
- (i32.clz
- (local.get $x)
- )
- (i32.popcnt
+ (then
+ (local.set $x
+ (i32.add
+ (i32.ctz
(local.get $y)
)
+ (i32.sub
+ (i32.clz
+ (local.get $x)
+ )
+ (i32.popcnt
+ (local.get $y)
+ )
+ )
)
)
)
@@ -670,7 +688,7 @@
;; CHECK-NEXT: )
;; CHECK-NEXT: (if
;; CHECK-NEXT: (local.get $3)
- ;; CHECK-NEXT: (block
+ ;; CHECK-NEXT: (then
;; CHECK-NEXT: (nop)
;; CHECK-NEXT: (nop)
;; CHECK-NEXT: (local.set $x
@@ -690,10 +708,12 @@
(i32.const 1)
)
)
- (local.set $x
- (i32.add
- (local.get $x)
- (i32.const 2)
+ (then
+ (local.set $x
+ (i32.add
+ (local.get $x)
+ (i32.const 2)
+ )
)
)
)
@@ -718,7 +738,7 @@
;; CHECK-NEXT: )
;; CHECK-NEXT: (if
;; CHECK-NEXT: (local.get $3)
- ;; CHECK-NEXT: (block
+ ;; CHECK-NEXT: (then
;; CHECK-NEXT: (nop)
;; CHECK-NEXT: (nop)
;; CHECK-NEXT: (local.set $x
@@ -738,10 +758,12 @@
(i32.const 1)
)
)
- (local.set $x
- (i32.add
- (local.get $x)
- (i32.const 2)
+ (then
+ (local.set $x
+ (i32.add
+ (local.get $x)
+ (i32.const 2)
+ )
)
)
)
@@ -768,7 +790,7 @@
;; CHECK-NEXT: )
;; CHECK-NEXT: (if
;; CHECK-NEXT: (local.get $2)
- ;; CHECK-NEXT: (block
+ ;; CHECK-NEXT: (then
;; CHECK-NEXT: (nop)
;; CHECK-NEXT: (nop)
;; CHECK-NEXT: (local.set $x
@@ -778,7 +800,7 @@
;; CHECK-NEXT: )
;; CHECK-NEXT: )
;; CHECK-NEXT: )
- ;; CHECK-NEXT: (block
+ ;; CHECK-NEXT: (else
;; CHECK-NEXT: (nop)
;; CHECK-NEXT: (nop)
;; CHECK-NEXT: (local.set $x
@@ -813,16 +835,20 @@
(local.get $x)
(i32.const 1)
)
- (local.set $x
- (i32.add
- (local.get $x)
- (i32.const 1)
+ (then
+ (local.set $x
+ (i32.add
+ (local.get $x)
+ (i32.const 1)
+ )
)
)
- (local.set $x
- (i32.add
- (local.get $x)
- (i32.const 2)
+ (else
+ (local.set $x
+ (i32.add
+ (local.get $x)
+ (i32.const 2)
+ )
)
)
)
@@ -886,7 +912,7 @@
;; CHECK-NEXT: (block
;; CHECK-NEXT: (if
;; CHECK-NEXT: (i32.const 1)
- ;; CHECK-NEXT: (block
+ ;; CHECK-NEXT: (then
;; CHECK-NEXT: (nop)
;; CHECK-NEXT: (local.set $1
;; CHECK-NEXT: (i32.load
@@ -894,18 +920,24 @@
;; CHECK-NEXT: )
;; CHECK-NEXT: )
;; CHECK-NEXT: )
- ;; CHECK-NEXT: (local.set $1
- ;; CHECK-NEXT: (i32.const 0)
+ ;; CHECK-NEXT: (else
+ ;; CHECK-NEXT: (local.set $1
+ ;; CHECK-NEXT: (i32.const 0)
+ ;; CHECK-NEXT: )
;; CHECK-NEXT: )
;; CHECK-NEXT: )
;; CHECK-NEXT: (nop)
;; CHECK-NEXT: (if
;; CHECK-NEXT: (local.get $1)
- ;; CHECK-NEXT: (local.set $3
- ;; CHECK-NEXT: (i32.const 0)
+ ;; CHECK-NEXT: (then
+ ;; CHECK-NEXT: (local.set $3
+ ;; CHECK-NEXT: (i32.const 0)
+ ;; CHECK-NEXT: )
;; CHECK-NEXT: )
- ;; CHECK-NEXT: (local.set $3
- ;; CHECK-NEXT: (i32.const 1)
+ ;; CHECK-NEXT: (else
+ ;; CHECK-NEXT: (local.set $3
+ ;; CHECK-NEXT: (i32.const 1)
+ ;; CHECK-NEXT: )
;; CHECK-NEXT: )
;; CHECK-NEXT: )
;; CHECK-NEXT: )
@@ -918,13 +950,21 @@
(if (result i32)
(if (result i32)
(i32.const 1)
- (i32.load
+ (then
+ (i32.load
+ (i32.const 0)
+ )
+ )
+ (else
(i32.const 0)
)
+ )
+ (then
(i32.const 0)
)
- (i32.const 0)
- (i32.const 1)
+ (else
+ (i32.const 1)
+ )
)
)
;; CHECK: (func $bad-phi-value-2 (param $x i32) (result i32)
@@ -938,7 +978,7 @@
;; CHECK-NEXT: (block
;; CHECK-NEXT: (if
;; CHECK-NEXT: (i32.const 1)
- ;; CHECK-NEXT: (block
+ ;; CHECK-NEXT: (then
;; CHECK-NEXT: (nop)
;; CHECK-NEXT: (local.set $2
;; CHECK-NEXT: (i32.load
@@ -946,18 +986,24 @@
;; CHECK-NEXT: )
;; CHECK-NEXT: )
;; CHECK-NEXT: )
- ;; CHECK-NEXT: (local.set $2
- ;; CHECK-NEXT: (i32.const 0)
+ ;; CHECK-NEXT: (else
+ ;; CHECK-NEXT: (local.set $2
+ ;; CHECK-NEXT: (i32.const 0)
+ ;; CHECK-NEXT: )
;; CHECK-NEXT: )
;; CHECK-NEXT: )
;; CHECK-NEXT: (nop)
;; CHECK-NEXT: (if
;; CHECK-NEXT: (local.get $2)
- ;; CHECK-NEXT: (local.set $x
- ;; CHECK-NEXT: (i32.const 1)
+ ;; CHECK-NEXT: (then
+ ;; CHECK-NEXT: (local.set $x
+ ;; CHECK-NEXT: (i32.const 1)
+ ;; CHECK-NEXT: )
;; CHECK-NEXT: )
- ;; CHECK-NEXT: (local.set $x
- ;; CHECK-NEXT: (i32.const 2)
+ ;; CHECK-NEXT: (else
+ ;; CHECK-NEXT: (local.set $x
+ ;; CHECK-NEXT: (i32.const 2)
+ ;; CHECK-NEXT: )
;; CHECK-NEXT: )
;; CHECK-NEXT: )
;; CHECK-NEXT: )
@@ -973,13 +1019,21 @@
(if
(if (result i32)
(i32.const 1)
- (i32.load
+ (then
+ (i32.load
+ (i32.const 0)
+ )
+ )
+ (else
(i32.const 0)
)
- (i32.const 0)
)
- (local.set $x (i32.const 1))
- (local.set $x (i32.const 2))
+ (then
+ (local.set $x (i32.const 1))
+ )
+ (else
+ (local.set $x (i32.const 2))
+ )
)
(local.get $x)
)
@@ -1191,8 +1245,10 @@
;; CHECK-NEXT: (block
;; CHECK-NEXT: (if
;; CHECK-NEXT: (i32.const 0)
- ;; CHECK-NEXT: (local.set $x
- ;; CHECK-NEXT: (f64.const 1)
+ ;; CHECK-NEXT: (then
+ ;; CHECK-NEXT: (local.set $x
+ ;; CHECK-NEXT: (f64.const 1)
+ ;; CHECK-NEXT: )
;; CHECK-NEXT: )
;; CHECK-NEXT: )
;; CHECK-NEXT: (nop)
@@ -1207,8 +1263,10 @@
(local $x f64)
(if
(i32.const 0)
- (local.set $x
- (f64.const 1)
+ (then
+ (local.set $x
+ (f64.const 1)
+ )
)
)
(local.get $x)
@@ -1221,11 +1279,15 @@
;; CHECK-NEXT: (block $label$1
;; CHECK-NEXT: (if
;; CHECK-NEXT: (i32.const 0)
- ;; CHECK-NEXT: (local.set $0
- ;; CHECK-NEXT: (f64.const 0)
+ ;; CHECK-NEXT: (then
+ ;; CHECK-NEXT: (local.set $0
+ ;; CHECK-NEXT: (f64.const 0)
+ ;; CHECK-NEXT: )
;; CHECK-NEXT: )
- ;; CHECK-NEXT: (local.set $0
- ;; CHECK-NEXT: (f64.const 1)
+ ;; CHECK-NEXT: (else
+ ;; CHECK-NEXT: (local.set $0
+ ;; CHECK-NEXT: (f64.const 1)
+ ;; CHECK-NEXT: )
;; CHECK-NEXT: )
;; CHECK-NEXT: )
;; CHECK-NEXT: (nop)
@@ -1240,8 +1302,12 @@
(block $label$1 (result f64)
(if (result f64)
(i32.const 0)
- (f64.const 0)
- (f64.const 1)
+ (then
+ (f64.const 0)
+ )
+ (else
+ (f64.const 1)
+ )
)
)
)
@@ -1271,7 +1337,7 @@
;; CHECK-NEXT: )
;; CHECK-NEXT: (if
;; CHECK-NEXT: (local.get $5)
- ;; CHECK-NEXT: (block
+ ;; CHECK-NEXT: (then
;; CHECK-NEXT: (nop)
;; CHECK-NEXT: (nop)
;; CHECK-NEXT: (nop)
@@ -1282,7 +1348,7 @@
;; CHECK-NEXT: )
;; CHECK-NEXT: )
;; CHECK-NEXT: )
- ;; CHECK-NEXT: (block
+ ;; CHECK-NEXT: (else
;; CHECK-NEXT: (nop)
;; CHECK-NEXT: (nop)
;; CHECK-NEXT: (nop)
@@ -1310,16 +1376,20 @@
(local.get $x)
(local.get $y)
)
- (local.set $i
- (i32.eq
- (local.get $x)
- (local.get $y)
+ (then
+ (local.set $i
+ (i32.eq
+ (local.get $x)
+ (local.get $y)
+ )
)
)
- (local.set $i
- (i32.add
- (local.get $x)
- (local.get $y)
+ (else
+ (local.set $i
+ (i32.add
+ (local.get $x)
+ (local.get $y)
+ )
)
)
)
@@ -1389,7 +1459,7 @@
;; CHECK-NEXT: (nop)
;; CHECK-NEXT: (if
;; CHECK-NEXT: (local.get $x)
- ;; CHECK-NEXT: (block
+ ;; CHECK-NEXT: (then
;; CHECK-NEXT: (block
;; CHECK-NEXT: (local.set $x
;; CHECK-NEXT: (i32.const 1)
@@ -1402,8 +1472,10 @@
;; CHECK-NEXT: )
;; CHECK-NEXT: (unreachable)
;; CHECK-NEXT: )
- ;; CHECK-NEXT: (local.set $x
- ;; CHECK-NEXT: (i32.const 2)
+ ;; CHECK-NEXT: (else
+ ;; CHECK-NEXT: (local.set $x
+ ;; CHECK-NEXT: (i32.const 2)
+ ;; CHECK-NEXT: )
;; CHECK-NEXT: )
;; CHECK-NEXT: )
;; CHECK-NEXT: )
@@ -1421,14 +1493,18 @@
(func $in-unreachable-1 (param $x i32) (param $y i32) (result i32)
(if
(local.get $x)
- (block
- (local.set $x
- (i32.const 1)
+ (then
+ (block
+ (local.set $x
+ (i32.const 1)
+ )
+ (return (local.get $x))
)
- (return (local.get $x))
)
- (local.set $x
- (i32.const 2)
+ (else
+ (local.set $x
+ (i32.const 2)
+ )
)
)
;; no phi here!
@@ -1446,7 +1522,7 @@
;; CHECK-NEXT: (nop)
;; CHECK-NEXT: (if
;; CHECK-NEXT: (local.get $x)
- ;; CHECK-NEXT: (block
+ ;; CHECK-NEXT: (then
;; CHECK-NEXT: (block
;; CHECK-NEXT: (local.set $x
;; CHECK-NEXT: (i32.const 1)
@@ -1456,8 +1532,10 @@
;; CHECK-NEXT: )
;; CHECK-NEXT: (unreachable)
;; CHECK-NEXT: )
- ;; CHECK-NEXT: (local.set $x
- ;; CHECK-NEXT: (i32.const 2)
+ ;; CHECK-NEXT: (else
+ ;; CHECK-NEXT: (local.set $x
+ ;; CHECK-NEXT: (i32.const 2)
+ ;; CHECK-NEXT: )
;; CHECK-NEXT: )
;; CHECK-NEXT: )
;; CHECK-NEXT: )
@@ -1475,14 +1553,18 @@
(func $in-unreachable-2 (param $x i32) (param $y i32) (result i32)
(if
(local.get $x)
- (block
- (local.set $x
- (i32.const 1)
+ (then
+ (block
+ (local.set $x
+ (i32.const 1)
+ )
+ (unreachable)
)
- (unreachable)
)
- (local.set $x
- (i32.const 2)
+ (else
+ (local.set $x
+ (i32.const 2)
+ )
)
)
;; no phi here!
@@ -1502,7 +1584,7 @@
;; CHECK-NEXT: (nop)
;; CHECK-NEXT: (if
;; CHECK-NEXT: (local.get $x)
- ;; CHECK-NEXT: (block
+ ;; CHECK-NEXT: (then
;; CHECK-NEXT: (block
;; CHECK-NEXT: (local.set $x
;; CHECK-NEXT: (i32.const 1)
@@ -1512,8 +1594,10 @@
;; CHECK-NEXT: )
;; CHECK-NEXT: (unreachable)
;; CHECK-NEXT: )
- ;; CHECK-NEXT: (local.set $x
- ;; CHECK-NEXT: (i32.const 2)
+ ;; CHECK-NEXT: (else
+ ;; CHECK-NEXT: (local.set $x
+ ;; CHECK-NEXT: (i32.const 2)
+ ;; CHECK-NEXT: )
;; CHECK-NEXT: )
;; CHECK-NEXT: )
;; CHECK-NEXT: )
@@ -1538,14 +1622,18 @@
(block $out
(if
(local.get $x)
- (block
- (local.set $x
- (i32.const 1)
+ (then
+ (block
+ (local.set $x
+ (i32.const 1)
+ )
+ (br $out)
)
- (br $out)
)
- (local.set $x
- (i32.const 2)
+ (else
+ (local.set $x
+ (i32.const 2)
+ )
)
)
;; no phi here!
@@ -1569,7 +1657,7 @@
;; CHECK-NEXT: (nop)
;; CHECK-NEXT: (if
;; CHECK-NEXT: (local.get $x)
- ;; CHECK-NEXT: (block
+ ;; CHECK-NEXT: (then
;; CHECK-NEXT: (block
;; CHECK-NEXT: (local.set $x
;; CHECK-NEXT: (i32.const 1)
@@ -1581,8 +1669,10 @@
;; CHECK-NEXT: )
;; CHECK-NEXT: (unreachable)
;; CHECK-NEXT: )
- ;; CHECK-NEXT: (local.set $x
- ;; CHECK-NEXT: (i32.const 2)
+ ;; CHECK-NEXT: (else
+ ;; CHECK-NEXT: (local.set $x
+ ;; CHECK-NEXT: (i32.const 2)
+ ;; CHECK-NEXT: )
;; CHECK-NEXT: )
;; CHECK-NEXT: )
;; CHECK-NEXT: )
@@ -1607,14 +1697,18 @@
(block $out
(if
(local.get $x)
- (block
- (local.set $x
- (i32.const 1)
+ (then
+ (block
+ (local.set $x
+ (i32.const 1)
+ )
+ (br_table $out $out $out (i32.const 1))
)
- (br_table $out $out $out (i32.const 1))
)
- (local.set $x
- (i32.const 2)
+ (else
+ (local.set $x
+ (i32.const 2)
+ )
)
)
;; no phi here!
@@ -1639,7 +1733,7 @@
;; CHECK-NEXT: (nop)
;; CHECK-NEXT: (if
;; CHECK-NEXT: (local.get $x)
- ;; CHECK-NEXT: (block
+ ;; CHECK-NEXT: (then
;; CHECK-NEXT: (local.set $x
;; CHECK-NEXT: (i32.const 1)
;; CHECK-NEXT: )
@@ -1648,8 +1742,10 @@
;; CHECK-NEXT: (local.get $x)
;; CHECK-NEXT: )
;; CHECK-NEXT: )
- ;; CHECK-NEXT: (local.set $x
- ;; CHECK-NEXT: (i32.const 2)
+ ;; CHECK-NEXT: (else
+ ;; CHECK-NEXT: (local.set $x
+ ;; CHECK-NEXT: (i32.const 2)
+ ;; CHECK-NEXT: )
;; CHECK-NEXT: )
;; CHECK-NEXT: )
;; CHECK-NEXT: )
@@ -1674,16 +1770,20 @@
(block $out
(if
(local.get $x)
- (block
- (local.set $x
- (i32.const 1)
- )
- (br_if $out
- (local.get $x)
+ (then
+ (block
+ (local.set $x
+ (i32.const 1)
+ )
+ (br_if $out
+ (local.get $x)
+ )
)
)
- (local.set $x
- (i32.const 2)
+ (else
+ (local.set $x
+ (i32.const 2)
+ )
)
)
;; there *IS* a phi here since it was a br_if
@@ -1707,12 +1807,12 @@
;; CHECK-NEXT: (nop)
;; CHECK-NEXT: (if
;; CHECK-NEXT: (local.get $2)
- ;; CHECK-NEXT: (block
+ ;; CHECK-NEXT: (then
;; CHECK-NEXT: (block
;; CHECK-NEXT: (nop)
;; CHECK-NEXT: (if
;; CHECK-NEXT: (local.get $0)
- ;; CHECK-NEXT: (block
+ ;; CHECK-NEXT: (then
;; CHECK-NEXT: (block
;; CHECK-NEXT: (local.set $1
;; CHECK-NEXT: (i32.const -8531)
@@ -1722,7 +1822,7 @@
;; CHECK-NEXT: )
;; CHECK-NEXT: (unreachable)
;; CHECK-NEXT: )
- ;; CHECK-NEXT: (block
+ ;; CHECK-NEXT: (else
;; CHECK-NEXT: (block
;; CHECK-NEXT: (local.set $1
;; CHECK-NEXT: (i32.const -8531)
@@ -1771,19 +1871,25 @@
(block $label$3
(if
(local.get $2)
- (if
- (local.get $0)
- (block
- (local.set $1
- (i32.const -8531)
+ (then
+ (if
+ (local.get $0)
+ (then
+ (block
+ (local.set $1
+ (i32.const -8531)
+ )
+ (br $label$3)
+ )
)
- (br $label$3)
- )
- (block
- (local.set $1
- (i32.const -8531)
+ (else
+ (block
+ (local.set $1
+ (i32.const -8531)
+ )
+ (br $label$1)
+ )
)
- (br $label$1)
)
)
)
@@ -1817,11 +1923,15 @@
;; CHECK-NEXT: (nop)
;; CHECK-NEXT: (if
;; CHECK-NEXT: (local.get $x)
- ;; CHECK-NEXT: (local.set $x
- ;; CHECK-NEXT: (i32.const 1)
+ ;; CHECK-NEXT: (then
+ ;; CHECK-NEXT: (local.set $x
+ ;; CHECK-NEXT: (i32.const 1)
+ ;; CHECK-NEXT: )
;; CHECK-NEXT: )
- ;; CHECK-NEXT: (local.set $x
- ;; CHECK-NEXT: (i32.const 2)
+ ;; CHECK-NEXT: (else
+ ;; CHECK-NEXT: (local.set $x
+ ;; CHECK-NEXT: (i32.const 2)
+ ;; CHECK-NEXT: )
;; CHECK-NEXT: )
;; CHECK-NEXT: )
;; CHECK-NEXT: )
@@ -1838,11 +1948,15 @@
(unreachable)
(if
(local.get $x)
- (local.set $x
- (i32.const 1)
+ (then
+ (local.set $x
+ (i32.const 1)
+ )
)
- (local.set $x
- (i32.const 2)
+ (else
+ (local.set $x
+ (i32.const 2)
+ )
)
)
(return
@@ -2283,7 +2397,7 @@
;; CHECK-NEXT: )
;; CHECK-NEXT: (if
;; CHECK-NEXT: (local.get $5)
- ;; CHECK-NEXT: (block
+ ;; CHECK-NEXT: (then
;; CHECK-NEXT: (nop)
;; CHECK-NEXT: (local.set $7
;; CHECK-NEXT: (i64.eqz
@@ -2292,7 +2406,7 @@
;; CHECK-NEXT: )
;; CHECK-NEXT: (if
;; CHECK-NEXT: (local.get $7)
- ;; CHECK-NEXT: (block
+ ;; CHECK-NEXT: (then
;; CHECK-NEXT: (nop)
;; CHECK-NEXT: (nop)
;; CHECK-NEXT: (nop)
@@ -2303,7 +2417,7 @@
;; CHECK-NEXT: )
;; CHECK-NEXT: )
;; CHECK-NEXT: )
- ;; CHECK-NEXT: (block
+ ;; CHECK-NEXT: (else
;; CHECK-NEXT: (nop)
;; CHECK-NEXT: (nop)
;; CHECK-NEXT: (nop)
@@ -2316,7 +2430,7 @@
;; CHECK-NEXT: )
;; CHECK-NEXT: )
;; CHECK-NEXT: )
- ;; CHECK-NEXT: (block
+ ;; CHECK-NEXT: (else
;; CHECK-NEXT: (nop)
;; CHECK-NEXT: (local.set $15
;; CHECK-NEXT: (i64.eqz
@@ -2325,7 +2439,7 @@
;; CHECK-NEXT: )
;; CHECK-NEXT: (if
;; CHECK-NEXT: (local.get $15)
- ;; CHECK-NEXT: (block
+ ;; CHECK-NEXT: (then
;; CHECK-NEXT: (nop)
;; CHECK-NEXT: (nop)
;; CHECK-NEXT: (nop)
@@ -2336,7 +2450,7 @@
;; CHECK-NEXT: )
;; CHECK-NEXT: )
;; CHECK-NEXT: )
- ;; CHECK-NEXT: (block
+ ;; CHECK-NEXT: (else
;; CHECK-NEXT: (nop)
;; CHECK-NEXT: (nop)
;; CHECK-NEXT: (nop)
@@ -2368,37 +2482,49 @@
(local.get $x)
(local.get $y)
)
- (if
- (i64.eqz
- (local.get $x)
- )
- (local.set $t
- (i64.add
+ (then
+ (if
+ (i64.eqz
(local.get $x)
- (local.get $y)
)
- )
- (local.set $t
- (i64.sub
- (local.get $x)
- (local.get $y)
+ (then
+ (local.set $t
+ (i64.add
+ (local.get $x)
+ (local.get $y)
+ )
+ )
+ )
+ (else
+ (local.set $t
+ (i64.sub
+ (local.get $x)
+ (local.get $y)
+ )
+ )
)
)
)
- (if
- (i64.eqz
- (local.get $y)
- )
- (local.set $t
- (i64.mul
- (local.get $x)
+ (else
+ (if
+ (i64.eqz
(local.get $y)
)
- )
- (local.set $t
- (i64.div_s
- (local.get $x)
- (local.get $y)
+ (then
+ (local.set $t
+ (i64.mul
+ (local.get $x)
+ (local.get $y)
+ )
+ )
+ )
+ (else
+ (local.set $t
+ (i64.div_s
+ (local.get $x)
+ (local.get $y)
+ )
+ )
)
)
)
@@ -3444,14 +3570,14 @@
;; CHECK-NEXT: (nop)
;; CHECK-NEXT: (if
;; CHECK-NEXT: (local.get $var$2)
- ;; CHECK-NEXT: (block
+ ;; CHECK-NEXT: (then
;; CHECK-NEXT: (loop $label$2
;; CHECK-NEXT: (block
;; CHECK-NEXT: (block
;; CHECK-NEXT: (block $label$3
;; CHECK-NEXT: (if
;; CHECK-NEXT: (i32.const 0)
- ;; CHECK-NEXT: (block
+ ;; CHECK-NEXT: (then
;; CHECK-NEXT: (unreachable)
;; CHECK-NEXT: (unreachable)
;; CHECK-NEXT: )
@@ -3464,7 +3590,7 @@
;; CHECK-NEXT: )
;; CHECK-NEXT: (if
;; CHECK-NEXT: (local.get $6)
- ;; CHECK-NEXT: (block
+ ;; CHECK-NEXT: (then
;; CHECK-NEXT: (unreachable)
;; CHECK-NEXT: (unreachable)
;; CHECK-NEXT: )
@@ -3491,23 +3617,29 @@
(func $bad-phi-type (param $var$0 i64) (param $var$1 i64) (param $var$2 i32) (param $var$3 f32)
(if
(local.get $var$2)
- (drop
- (loop $label$2 (result f64)
- (if
- (block $label$3 (result i32)
- (if
+ (then
+ (drop
+ (loop $label$2 (result f64)
+ (if
+ (block $label$3 (result i32)
+ (if
+ (i32.const 0)
+ (then
+ (unreachable)
+ )
+ )
+ (nop)
(i32.const 0)
+ )
+ (then
(unreachable)
)
- (nop)
- (i32.const 0)
)
- (unreachable)
- )
- (br_if $label$2
- (local.get $var$2)
+ (br_if $label$2
+ (local.get $var$2)
+ )
+ (f64.const 0)
)
- (f64.const 0)
)
)
)
@@ -3534,7 +3666,7 @@
;; CHECK-NEXT: (block $label$4
;; CHECK-NEXT: (if
;; CHECK-NEXT: (i32.const 1337)
- ;; CHECK-NEXT: (block
+ ;; CHECK-NEXT: (then
;; CHECK-NEXT: (unreachable)
;; CHECK-NEXT: (unreachable)
;; CHECK-NEXT: )
@@ -3600,7 +3732,9 @@
(block $label$4 (result i32)
(if
(i32.const 1337)
- (unreachable)
+ (then
+ (unreachable)
+ )
)
(local.get $var$0)
)
@@ -3662,11 +3796,11 @@
;; CHECK-NEXT: (nop)
;; CHECK-NEXT: (if
;; CHECK-NEXT: (local.get $var$0)
- ;; CHECK-NEXT: (block
+ ;; CHECK-NEXT: (then
;; CHECK-NEXT: (unreachable)
;; CHECK-NEXT: (unreachable)
;; CHECK-NEXT: )
- ;; CHECK-NEXT: (block
+ ;; CHECK-NEXT: (else
;; CHECK-NEXT: (block
;; CHECK-NEXT: (block
;; CHECK-NEXT: (loop $label$3
@@ -3692,7 +3826,9 @@
;; CHECK-NEXT: (nop)
;; CHECK-NEXT: (if
;; CHECK-NEXT: (local.get $6)
- ;; CHECK-NEXT: (nop)
+ ;; CHECK-NEXT: (then
+ ;; CHECK-NEXT: (nop)
+ ;; CHECK-NEXT: )
;; CHECK-NEXT: )
;; CHECK-NEXT: )
;; CHECK-NEXT: (nop)
@@ -3726,22 +3862,28 @@
(i32.const 0)
)
)
- (unreachable)
- (block (result f32)
- (if
- (loop $label$3 (result i32)
- (block $label$4 (result i32)
- (i32.clz
- (br_if $label$4
- (local.get $var$0)
- (i32.const 1)
+ (then
+ (unreachable)
+ )
+ (else
+ (block (result f32)
+ (if
+ (loop $label$3 (result i32)
+ (block $label$4 (result i32)
+ (i32.clz
+ (br_if $label$4
+ (local.get $var$0)
+ (i32.const 1)
+ )
)
)
)
+ (then
+ (nop)
+ )
)
- (nop)
+ (f32.const 1)
)
- (f32.const 1)
)
)
)
@@ -3920,54 +4062,56 @@
;; CHECK-NEXT: (nop)
;; CHECK-NEXT: (if
;; CHECK-NEXT: (local.get $var$0)
- ;; CHECK-NEXT: (block $label$2
- ;; CHECK-NEXT: (block $label$3
- ;; CHECK-NEXT: (nop)
- ;; CHECK-NEXT: (local.set $var$1
- ;; CHECK-NEXT: (local.get $var$0)
+ ;; CHECK-NEXT: (then
+ ;; CHECK-NEXT: (block $label$2
+ ;; CHECK-NEXT: (block $label$3
+ ;; CHECK-NEXT: (nop)
+ ;; CHECK-NEXT: (local.set $var$1
+ ;; CHECK-NEXT: (local.get $var$0)
+ ;; CHECK-NEXT: )
+ ;; CHECK-NEXT: (nop)
+ ;; CHECK-NEXT: (local.set $8
+ ;; CHECK-NEXT: (i32.const 12)
+ ;; CHECK-NEXT: )
+ ;; CHECK-NEXT: (br_if $label$3
+ ;; CHECK-NEXT: (local.get $8)
+ ;; CHECK-NEXT: )
+ ;; CHECK-NEXT: (unreachable)
+ ;; CHECK-NEXT: (unreachable)
;; CHECK-NEXT: )
;; CHECK-NEXT: (nop)
- ;; CHECK-NEXT: (local.set $8
- ;; CHECK-NEXT: (i32.const 12)
- ;; CHECK-NEXT: )
- ;; CHECK-NEXT: (br_if $label$3
- ;; CHECK-NEXT: (local.get $8)
+ ;; CHECK-NEXT: (local.set $10
+ ;; CHECK-NEXT: (i32.eqz
+ ;; CHECK-NEXT: (local.get $var$1)
+ ;; CHECK-NEXT: )
;; CHECK-NEXT: )
- ;; CHECK-NEXT: (unreachable)
- ;; CHECK-NEXT: (unreachable)
- ;; CHECK-NEXT: )
- ;; CHECK-NEXT: (nop)
- ;; CHECK-NEXT: (local.set $10
- ;; CHECK-NEXT: (i32.eqz
- ;; CHECK-NEXT: (local.get $var$1)
+ ;; CHECK-NEXT: (br_if $label$2
+ ;; CHECK-NEXT: (local.get $10)
;; CHECK-NEXT: )
- ;; CHECK-NEXT: )
- ;; CHECK-NEXT: (br_if $label$2
- ;; CHECK-NEXT: (local.get $10)
- ;; CHECK-NEXT: )
- ;; CHECK-NEXT: (block
- ;; CHECK-NEXT: (local.set $11
- ;; CHECK-NEXT: (i32.load
- ;; CHECK-NEXT: (i32.const 0)
+ ;; CHECK-NEXT: (block
+ ;; CHECK-NEXT: (local.set $11
+ ;; CHECK-NEXT: (i32.load
+ ;; CHECK-NEXT: (i32.const 0)
+ ;; CHECK-NEXT: )
;; CHECK-NEXT: )
- ;; CHECK-NEXT: )
- ;; CHECK-NEXT: (nop)
- ;; CHECK-NEXT: (local.set $13
- ;; CHECK-NEXT: (i32.ne
- ;; CHECK-NEXT: (local.get $11)
- ;; CHECK-NEXT: (local.get $var$0)
+ ;; CHECK-NEXT: (nop)
+ ;; CHECK-NEXT: (local.set $13
+ ;; CHECK-NEXT: (i32.ne
+ ;; CHECK-NEXT: (local.get $11)
+ ;; CHECK-NEXT: (local.get $var$0)
+ ;; CHECK-NEXT: )
;; CHECK-NEXT: )
- ;; CHECK-NEXT: )
- ;; CHECK-NEXT: (if
- ;; CHECK-NEXT: (local.get $13)
- ;; CHECK-NEXT: (block
- ;; CHECK-NEXT: (unreachable)
- ;; CHECK-NEXT: (unreachable)
+ ;; CHECK-NEXT: (if
+ ;; CHECK-NEXT: (local.get $13)
+ ;; CHECK-NEXT: (then
+ ;; CHECK-NEXT: (unreachable)
+ ;; CHECK-NEXT: (unreachable)
+ ;; CHECK-NEXT: )
;; CHECK-NEXT: )
;; CHECK-NEXT: )
+ ;; CHECK-NEXT: (unreachable)
+ ;; CHECK-NEXT: (unreachable)
;; CHECK-NEXT: )
- ;; CHECK-NEXT: (unreachable)
- ;; CHECK-NEXT: (unreachable)
;; CHECK-NEXT: )
;; CHECK-NEXT: )
;; CHECK-NEXT: )
@@ -3982,33 +4126,37 @@
(i32.const -7)
)
)
- (block $label$2
- (block $label$3
- (local.set $var$1
- (local.get $var$0)
- )
- (br_if $label$3
- (local.tee $var$3
- (i32.const 12)
+ (then
+ (block $label$2
+ (block $label$3
+ (local.set $var$1
+ (local.get $var$0)
)
+ (br_if $label$3
+ (local.tee $var$3
+ (i32.const 12)
+ )
+ )
+ (unreachable)
)
- (unreachable)
- )
- (br_if $label$2
- (i32.eqz
- (local.get $var$1)
+ (br_if $label$2
+ (i32.eqz
+ (local.get $var$1)
+ )
)
- )
- (if
- (i32.ne
- (i32.load
- (i32.const 0)
+ (if
+ (i32.ne
+ (i32.load
+ (i32.const 0)
+ )
+ (local.get $var$0)
+ )
+ (then
+ (unreachable)
)
- (local.get $var$0)
)
(unreachable)
)
- (unreachable)
)
)
)
@@ -4232,7 +4380,7 @@
;; CHECK-NEXT: )
;; CHECK-NEXT: (if
;; CHECK-NEXT: (local.get $8)
- ;; CHECK-NEXT: (block
+ ;; CHECK-NEXT: (then
;; CHECK-NEXT: (unreachable)
;; CHECK-NEXT: (unreachable)
;; CHECK-NEXT: )
@@ -4257,7 +4405,9 @@
)
)
)
- (unreachable)
+ (then
+ (unreachable)
+ )
)
)
;; CHECK: (func $zext-numGets-hasAnotherUse (param $var$0 i32) (param $var$1 i32)
@@ -4315,7 +4465,7 @@
;; CHECK-NEXT: )
;; CHECK-NEXT: (if
;; CHECK-NEXT: (local.get $11)
- ;; CHECK-NEXT: (block
+ ;; CHECK-NEXT: (then
;; CHECK-NEXT: (unreachable)
;; CHECK-NEXT: (unreachable)
;; CHECK-NEXT: )
@@ -4347,7 +4497,9 @@
(local.get $temp)
)
)
- (unreachable)
+ (then
+ (unreachable)
+ )
)
)
;; CHECK: (func $flipped-needs-right-origin (param $var$0 i32) (result i32)
@@ -4388,7 +4540,7 @@
;; CHECK-NEXT: )
;; CHECK-NEXT: (if
;; CHECK-NEXT: (local.get $5)
- ;; CHECK-NEXT: (block
+ ;; CHECK-NEXT: (then
;; CHECK-NEXT: (unreachable)
;; CHECK-NEXT: (unreachable)
;; CHECK-NEXT: )
@@ -4423,7 +4575,9 @@
(i32.const 4)
)
)
- (unreachable)
+ (then
+ (unreachable)
+ )
)
(i32.const 5)
)
@@ -4495,7 +4649,7 @@
;; CHECK-NEXT: (block
;; CHECK-NEXT: (if
;; CHECK-NEXT: (i32.const 0)
- ;; CHECK-NEXT: (block
+ ;; CHECK-NEXT: (then
;; CHECK-NEXT: (block
;; CHECK-NEXT: (nop)
;; CHECK-NEXT: (local.set $var$2
@@ -4525,14 +4679,16 @@
(loop $label$1
(if
(i32.const 0)
- (block
- (local.set $var$2
- (i32.add
- (i32.const 0)
- (i32.const 1)
+ (then
+ (block
+ (local.set $var$2
+ (i32.add
+ (i32.const 0)
+ (i32.const 1)
+ )
)
+ (br $label$1)
)
- (br $label$1)
)
)
(local.set $var$3
@@ -4565,36 +4721,42 @@
;; CHECK-NEXT: )
;; CHECK-NEXT: (if
;; CHECK-NEXT: (i32.const 0)
- ;; CHECK-NEXT: (loop $label$2
- ;; CHECK-NEXT: (block
- ;; CHECK-NEXT: (nop)
- ;; CHECK-NEXT: (if
- ;; CHECK-NEXT: (local.get $var$1)
+ ;; CHECK-NEXT: (then
+ ;; CHECK-NEXT: (loop $label$2
+ ;; CHECK-NEXT: (block
;; CHECK-NEXT: (nop)
+ ;; CHECK-NEXT: (if
+ ;; CHECK-NEXT: (local.get $var$1)
+ ;; CHECK-NEXT: (then
+ ;; CHECK-NEXT: (nop)
+ ;; CHECK-NEXT: )
+ ;; CHECK-NEXT: )
;; CHECK-NEXT: )
- ;; CHECK-NEXT: )
- ;; CHECK-NEXT: (local.set $var$3
- ;; CHECK-NEXT: (i32.const 1)
- ;; CHECK-NEXT: )
- ;; CHECK-NEXT: (nop)
- ;; CHECK-NEXT: (nop)
- ;; CHECK-NEXT: (local.set $var$1
- ;; CHECK-NEXT: (i32.sub
+ ;; CHECK-NEXT: (local.set $var$3
+ ;; CHECK-NEXT: (i32.const 1)
+ ;; CHECK-NEXT: )
+ ;; CHECK-NEXT: (nop)
+ ;; CHECK-NEXT: (nop)
+ ;; CHECK-NEXT: (local.set $var$1
+ ;; CHECK-NEXT: (i32.sub
+ ;; CHECK-NEXT: (i32.const 0)
+ ;; CHECK-NEXT: (local.get $var$3)
+ ;; CHECK-NEXT: )
+ ;; CHECK-NEXT: )
+ ;; CHECK-NEXT: (br_if $label$2
;; CHECK-NEXT: (i32.const 0)
- ;; CHECK-NEXT: (local.get $var$3)
;; CHECK-NEXT: )
;; CHECK-NEXT: )
- ;; CHECK-NEXT: (br_if $label$2
- ;; CHECK-NEXT: (i32.const 0)
- ;; CHECK-NEXT: )
;; CHECK-NEXT: )
;; CHECK-NEXT: )
;; CHECK-NEXT: (block
;; CHECK-NEXT: (nop)
;; CHECK-NEXT: (if
;; CHECK-NEXT: (local.get $var$1)
- ;; CHECK-NEXT: (local.set $var$3
- ;; CHECK-NEXT: (i32.const 1)
+ ;; CHECK-NEXT: (then
+ ;; CHECK-NEXT: (local.set $var$3
+ ;; CHECK-NEXT: (i32.const 1)
+ ;; CHECK-NEXT: )
;; CHECK-NEXT: )
;; CHECK-NEXT: )
;; CHECK-NEXT: )
@@ -4633,28 +4795,34 @@
)
(if
(i32.const 0)
- (loop $label$2
- (if
- (local.get $var$1)
- (nop)
- )
- (local.set $var$1
- (i32.sub
- (i32.const 0)
- (local.tee $var$3
- (i32.const 1)
+ (then
+ (loop $label$2
+ (if
+ (local.get $var$1)
+ (then
+ (nop)
)
)
- )
- (br_if $label$2
- (i32.const 0)
+ (local.set $var$1
+ (i32.sub
+ (i32.const 0)
+ (local.tee $var$3
+ (i32.const 1)
+ )
+ )
+ )
+ (br_if $label$2
+ (i32.const 0)
+ )
)
)
)
(if
(local.get $var$1)
- (local.set $var$3
- (i32.const 1)
+ (then
+ (local.set $var$3
+ (i32.const 1)
+ )
)
)
(i32.store