summaryrefslogtreecommitdiff
path: root/test/lit/passes/flatten_simplify-locals-nonesting_souperify-single-use_enable-threads.wast
diff options
context:
space:
mode:
Diffstat (limited to 'test/lit/passes/flatten_simplify-locals-nonesting_souperify-single-use_enable-threads.wast')
-rw-r--r--test/lit/passes/flatten_simplify-locals-nonesting_souperify-single-use_enable-threads.wast882
1 files changed, 525 insertions, 357 deletions
diff --git a/test/lit/passes/flatten_simplify-locals-nonesting_souperify-single-use_enable-threads.wast b/test/lit/passes/flatten_simplify-locals-nonesting_souperify-single-use_enable-threads.wast
index ea693d502..76b4e6e51 100644
--- a/test/lit/passes/flatten_simplify-locals-nonesting_souperify-single-use_enable-threads.wast
+++ b/test/lit/passes/flatten_simplify-locals-nonesting_souperify-single-use_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)
+ )
)
)
)
@@ -377,7 +385,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
@@ -392,10 +400,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)
+ )
)
)
)
@@ -414,7 +424,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
@@ -432,10 +442,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)
+ )
)
)
)
@@ -451,7 +463,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
@@ -466,10 +478,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)
+ )
)
)
)
@@ -481,7 +495,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
@@ -498,10 +512,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)
+ )
)
)
)
@@ -525,7 +541,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
@@ -565,18 +581,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)
+ )
+ )
)
)
)
@@ -602,7 +620,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
@@ -622,10 +640,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)
+ )
)
)
)
@@ -650,7 +670,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
@@ -670,10 +690,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)
+ )
)
)
)
@@ -700,7 +722,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
@@ -710,7 +732,7 @@
;; CHECK-NEXT: )
;; CHECK-NEXT: )
;; CHECK-NEXT: )
- ;; CHECK-NEXT: (block
+ ;; CHECK-NEXT: (else
;; CHECK-NEXT: (nop)
;; CHECK-NEXT: (nop)
;; CHECK-NEXT: (local.set $x
@@ -745,16 +767,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)
+ )
)
)
)
@@ -818,7 +844,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
@@ -826,18 +852,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: )
@@ -850,13 +882,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)
@@ -870,7 +910,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
@@ -878,18 +918,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: )
@@ -905,13 +951,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)
)
@@ -1123,8 +1177,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)
@@ -1139,8 +1195,10 @@
(local $x f64)
(if
(i32.const 0)
- (local.set $x
- (f64.const 1)
+ (then
+ (local.set $x
+ (f64.const 1)
+ )
)
)
(local.get $x)
@@ -1153,11 +1211,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)
@@ -1172,8 +1234,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)
+ )
)
)
)
@@ -1203,7 +1269,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)
@@ -1214,7 +1280,7 @@
;; CHECK-NEXT: )
;; CHECK-NEXT: )
;; CHECK-NEXT: )
- ;; CHECK-NEXT: (block
+ ;; CHECK-NEXT: (else
;; CHECK-NEXT: (nop)
;; CHECK-NEXT: (nop)
;; CHECK-NEXT: (nop)
@@ -1242,16 +1308,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)
+ )
)
)
)
@@ -1321,7 +1391,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)
@@ -1334,8 +1404,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: )
@@ -1353,14 +1425,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!
@@ -1378,7 +1454,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)
@@ -1388,8 +1464,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: )
@@ -1407,14 +1485,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!
@@ -1434,7 +1516,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)
@@ -1444,8 +1526,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: )
@@ -1470,14 +1554,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!
@@ -1501,7 +1589,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)
@@ -1513,8 +1601,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: )
@@ -1539,14 +1629,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!
@@ -1571,7 +1665,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: )
@@ -1580,8 +1674,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: )
@@ -1606,16 +1702,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
@@ -1639,12 +1739,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)
@@ -1654,7 +1754,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)
@@ -1703,19 +1803,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)
)
)
)
@@ -1749,11 +1855,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: )
@@ -1770,11 +1880,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
@@ -2215,7 +2329,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
@@ -2224,7 +2338,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)
@@ -2235,7 +2349,7 @@
;; CHECK-NEXT: )
;; CHECK-NEXT: )
;; CHECK-NEXT: )
- ;; CHECK-NEXT: (block
+ ;; CHECK-NEXT: (else
;; CHECK-NEXT: (nop)
;; CHECK-NEXT: (nop)
;; CHECK-NEXT: (nop)
@@ -2248,7 +2362,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
@@ -2257,7 +2371,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)
@@ -2268,7 +2382,7 @@
;; CHECK-NEXT: )
;; CHECK-NEXT: )
;; CHECK-NEXT: )
- ;; CHECK-NEXT: (block
+ ;; CHECK-NEXT: (else
;; CHECK-NEXT: (nop)
;; CHECK-NEXT: (nop)
;; CHECK-NEXT: (nop)
@@ -2300,37 +2414,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)
+ )
+ )
)
)
)
@@ -3376,14 +3502,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: )
@@ -3396,7 +3522,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: )
@@ -3423,23 +3549,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)
)
)
)
@@ -3466,7 +3598,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: )
@@ -3532,7 +3664,9 @@
(block $label$4 (result i32)
(if
(i32.const 1337)
- (unreachable)
+ (then
+ (unreachable)
+ )
)
(local.get $var$0)
)
@@ -3594,11 +3728,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
@@ -3624,7 +3758,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)
@@ -3658,22 +3794,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)
)
)
)
@@ -3852,54 +3994,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: )
@@ -3914,33 +4058,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)
)
)
)
@@ -4164,7 +4312,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: )
@@ -4189,7 +4337,9 @@
)
)
)
- (unreachable)
+ (then
+ (unreachable)
+ )
)
)
;; CHECK: (func $zext-numGets-hasAnotherUse (param $var$0 i32) (param $var$1 i32)
@@ -4247,7 +4397,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: )
@@ -4279,7 +4429,9 @@
(local.get $temp)
)
)
- (unreachable)
+ (then
+ (unreachable)
+ )
)
)
;; CHECK: (func $flipped-needs-right-origin (param $var$0 i32) (result i32)
@@ -4320,7 +4472,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: )
@@ -4355,7 +4507,9 @@
(i32.const 4)
)
)
- (unreachable)
+ (then
+ (unreachable)
+ )
)
(i32.const 5)
)
@@ -4427,7 +4581,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
@@ -4457,14 +4611,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
@@ -4497,36 +4653,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: )
@@ -4565,28 +4727,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