summaryrefslogtreecommitdiff
path: root/test/lit/basic
diff options
context:
space:
mode:
Diffstat (limited to 'test/lit/basic')
-rw-r--r--test/lit/basic/exception-handling-old.wast32
-rw-r--r--test/lit/basic/exception-handling.wast116
-rw-r--r--test/lit/basic/polymorphic_stack.wast80
-rw-r--r--test/lit/basic/reference-types.wast200
-rw-r--r--test/lit/basic/reg_switch.wast32
-rw-r--r--test/lit/basic/unit.wat352
-rw-r--r--test/lit/basic/unreachable-code.wast192
-rw-r--r--test/lit/basic/untaken-br_if.wast56
8 files changed, 749 insertions, 311 deletions
diff --git a/test/lit/basic/exception-handling-old.wast b/test/lit/basic/exception-handling-old.wast
index c082c1977..6fcb33ed4 100644
--- a/test/lit/basic/exception-handling-old.wast
+++ b/test/lit/basic/exception-handling-old.wast
@@ -1160,8 +1160,12 @@
;; CHECK-TEXT-NEXT: (throw $e-i32
;; CHECK-TEXT-NEXT: (if (result i32)
;; CHECK-TEXT-NEXT: (pop i32)
- ;; CHECK-TEXT-NEXT: (i32.const 0)
- ;; CHECK-TEXT-NEXT: (i32.const 3)
+ ;; CHECK-TEXT-NEXT: (then
+ ;; CHECK-TEXT-NEXT: (i32.const 0)
+ ;; CHECK-TEXT-NEXT: )
+ ;; CHECK-TEXT-NEXT: (else
+ ;; CHECK-TEXT-NEXT: (i32.const 3)
+ ;; CHECK-TEXT-NEXT: )
;; CHECK-TEXT-NEXT: )
;; CHECK-TEXT-NEXT: )
;; CHECK-TEXT-NEXT: )
@@ -1176,8 +1180,12 @@
;; CHECK-BIN-NEXT: (throw $e-i32
;; CHECK-BIN-NEXT: (if (result i32)
;; CHECK-BIN-NEXT: (pop i32)
- ;; CHECK-BIN-NEXT: (i32.const 0)
- ;; CHECK-BIN-NEXT: (i32.const 3)
+ ;; CHECK-BIN-NEXT: (then
+ ;; CHECK-BIN-NEXT: (i32.const 0)
+ ;; CHECK-BIN-NEXT: )
+ ;; CHECK-BIN-NEXT: (else
+ ;; CHECK-BIN-NEXT: (i32.const 3)
+ ;; CHECK-BIN-NEXT: )
;; CHECK-BIN-NEXT: )
;; CHECK-BIN-NEXT: )
;; CHECK-BIN-NEXT: )
@@ -1191,8 +1199,12 @@
(if (result i32)
;; pop is within an if condition, so this is OK.
(pop i32)
- (i32.const 0)
- (i32.const 3)
+ (then
+ (i32.const 0)
+ )
+ (else
+ (i32.const 3)
+ )
)
)
)
@@ -1764,8 +1776,12 @@
;; CHECK-BIN-NODEBUG-NEXT: (throw $tag$0
;; CHECK-BIN-NODEBUG-NEXT: (if (result i32)
;; CHECK-BIN-NODEBUG-NEXT: (pop i32)
-;; CHECK-BIN-NODEBUG-NEXT: (i32.const 0)
-;; CHECK-BIN-NODEBUG-NEXT: (i32.const 3)
+;; CHECK-BIN-NODEBUG-NEXT: (then
+;; CHECK-BIN-NODEBUG-NEXT: (i32.const 0)
+;; CHECK-BIN-NODEBUG-NEXT: )
+;; CHECK-BIN-NODEBUG-NEXT: (else
+;; CHECK-BIN-NODEBUG-NEXT: (i32.const 3)
+;; CHECK-BIN-NODEBUG-NEXT: )
;; CHECK-BIN-NODEBUG-NEXT: )
;; CHECK-BIN-NODEBUG-NEXT: )
;; CHECK-BIN-NODEBUG-NEXT: )
diff --git a/test/lit/basic/exception-handling.wast b/test/lit/basic/exception-handling.wast
index b94f89e1a..e1fa9c14d 100644
--- a/test/lit/basic/exception-handling.wast
+++ b/test/lit/basic/exception-handling.wast
@@ -79,12 +79,20 @@
;; CHECK-TEXT-NEXT: (local $null-exn nullexnref)
;; CHECK-TEXT-NEXT: (if (result exnref)
;; CHECK-TEXT-NEXT: (i32.const 1)
- ;; CHECK-TEXT-NEXT: (if (result nullexnref)
- ;; CHECK-TEXT-NEXT: (i32.const 1)
- ;; CHECK-TEXT-NEXT: (local.get $null-exn)
- ;; CHECK-TEXT-NEXT: (ref.null noexn)
+ ;; CHECK-TEXT-NEXT: (then
+ ;; CHECK-TEXT-NEXT: (if (result nullexnref)
+ ;; CHECK-TEXT-NEXT: (i32.const 1)
+ ;; CHECK-TEXT-NEXT: (then
+ ;; CHECK-TEXT-NEXT: (local.get $null-exn)
+ ;; CHECK-TEXT-NEXT: )
+ ;; CHECK-TEXT-NEXT: (else
+ ;; CHECK-TEXT-NEXT: (ref.null noexn)
+ ;; CHECK-TEXT-NEXT: )
+ ;; CHECK-TEXT-NEXT: )
+ ;; CHECK-TEXT-NEXT: )
+ ;; CHECK-TEXT-NEXT: (else
+ ;; CHECK-TEXT-NEXT: (local.get $exn)
;; CHECK-TEXT-NEXT: )
- ;; CHECK-TEXT-NEXT: (local.get $exn)
;; CHECK-TEXT-NEXT: )
;; CHECK-TEXT-NEXT: )
;; CHECK-BIN: (func $exnref-nullexnref-test (type $3) (result exnref)
@@ -92,23 +100,39 @@
;; CHECK-BIN-NEXT: (local $null-exn nullexnref)
;; CHECK-BIN-NEXT: (if (result exnref)
;; CHECK-BIN-NEXT: (i32.const 1)
- ;; CHECK-BIN-NEXT: (if (result nullexnref)
- ;; CHECK-BIN-NEXT: (i32.const 1)
- ;; CHECK-BIN-NEXT: (local.get $null-exn)
- ;; CHECK-BIN-NEXT: (ref.null noexn)
+ ;; CHECK-BIN-NEXT: (then
+ ;; CHECK-BIN-NEXT: (if (result nullexnref)
+ ;; CHECK-BIN-NEXT: (i32.const 1)
+ ;; CHECK-BIN-NEXT: (then
+ ;; CHECK-BIN-NEXT: (local.get $null-exn)
+ ;; CHECK-BIN-NEXT: )
+ ;; CHECK-BIN-NEXT: (else
+ ;; CHECK-BIN-NEXT: (ref.null noexn)
+ ;; CHECK-BIN-NEXT: )
+ ;; CHECK-BIN-NEXT: )
+ ;; CHECK-BIN-NEXT: )
+ ;; CHECK-BIN-NEXT: (else
+ ;; CHECK-BIN-NEXT: (local.get $exn)
;; CHECK-BIN-NEXT: )
- ;; CHECK-BIN-NEXT: (local.get $exn)
;; CHECK-BIN-NEXT: )
;; CHECK-BIN-NEXT: )
(func $exnref-nullexnref-test (result exnref) (local $exn exnref) (local $null-exn nullexnref)
(if (result exnref)
(i32.const 1)
- (if (result nullexnref)
- (i32.const 1)
- (local.get $null-exn)
- (ref.null noexn)
+ (then
+ (if (result nullexnref)
+ (i32.const 1)
+ (then
+ (local.get $null-exn)
+ )
+ (else
+ (ref.null noexn)
+ )
+ )
+ )
+ (else
+ (local.get $exn)
)
- (local.get $exn)
)
)
@@ -631,11 +655,15 @@
;; CHECK-TEXT-NEXT: (try_table (catch $e-i32 $l-catch-inner)
;; CHECK-TEXT-NEXT: (if
;; CHECK-TEXT-NEXT: (i32.const 0)
- ;; CHECK-TEXT-NEXT: (throw $e-i32
- ;; CHECK-TEXT-NEXT: (i32.const 3)
+ ;; CHECK-TEXT-NEXT: (then
+ ;; CHECK-TEXT-NEXT: (throw $e-i32
+ ;; CHECK-TEXT-NEXT: (i32.const 3)
+ ;; CHECK-TEXT-NEXT: )
;; CHECK-TEXT-NEXT: )
- ;; CHECK-TEXT-NEXT: (throw $e-eqref
- ;; CHECK-TEXT-NEXT: (ref.null none)
+ ;; CHECK-TEXT-NEXT: (else
+ ;; CHECK-TEXT-NEXT: (throw $e-eqref
+ ;; CHECK-TEXT-NEXT: (ref.null none)
+ ;; CHECK-TEXT-NEXT: )
;; CHECK-TEXT-NEXT: )
;; CHECK-TEXT-NEXT: )
;; CHECK-TEXT-NEXT: )
@@ -653,11 +681,15 @@
;; CHECK-BIN-NEXT: (try_table (catch $e-i32 $label$2)
;; CHECK-BIN-NEXT: (if
;; CHECK-BIN-NEXT: (i32.const 0)
- ;; CHECK-BIN-NEXT: (throw $e-i32
- ;; CHECK-BIN-NEXT: (i32.const 3)
+ ;; CHECK-BIN-NEXT: (then
+ ;; CHECK-BIN-NEXT: (throw $e-i32
+ ;; CHECK-BIN-NEXT: (i32.const 3)
+ ;; CHECK-BIN-NEXT: )
;; CHECK-BIN-NEXT: )
- ;; CHECK-BIN-NEXT: (throw $e-eqref
- ;; CHECK-BIN-NEXT: (ref.null none)
+ ;; CHECK-BIN-NEXT: (else
+ ;; CHECK-BIN-NEXT: (throw $e-eqref
+ ;; CHECK-BIN-NEXT: (ref.null none)
+ ;; CHECK-BIN-NEXT: )
;; CHECK-BIN-NEXT: )
;; CHECK-BIN-NEXT: )
;; CHECK-BIN-NEXT: )
@@ -675,8 +707,12 @@
(try_table (catch $e-i32 $l-catch-inner)
(if
(i32.const 0)
- (throw $e-i32 (i32.const 3))
- (throw $e-eqref (ref.null eq))
+ (then
+ (throw $e-i32 (i32.const 3))
+ )
+ (else
+ (throw $e-eqref (ref.null eq))
+ )
)
)
)
@@ -725,12 +761,20 @@
;; CHECK-BIN-NODEBUG-NEXT: (local $1 nullexnref)
;; CHECK-BIN-NODEBUG-NEXT: (if (result exnref)
;; CHECK-BIN-NODEBUG-NEXT: (i32.const 1)
-;; CHECK-BIN-NODEBUG-NEXT: (if (result nullexnref)
-;; CHECK-BIN-NODEBUG-NEXT: (i32.const 1)
-;; CHECK-BIN-NODEBUG-NEXT: (local.get $1)
-;; CHECK-BIN-NODEBUG-NEXT: (ref.null noexn)
+;; CHECK-BIN-NODEBUG-NEXT: (then
+;; CHECK-BIN-NODEBUG-NEXT: (if (result nullexnref)
+;; CHECK-BIN-NODEBUG-NEXT: (i32.const 1)
+;; CHECK-BIN-NODEBUG-NEXT: (then
+;; CHECK-BIN-NODEBUG-NEXT: (local.get $1)
+;; CHECK-BIN-NODEBUG-NEXT: )
+;; CHECK-BIN-NODEBUG-NEXT: (else
+;; CHECK-BIN-NODEBUG-NEXT: (ref.null noexn)
+;; CHECK-BIN-NODEBUG-NEXT: )
+;; CHECK-BIN-NODEBUG-NEXT: )
+;; CHECK-BIN-NODEBUG-NEXT: )
+;; CHECK-BIN-NODEBUG-NEXT: (else
+;; CHECK-BIN-NODEBUG-NEXT: (local.get $0)
;; CHECK-BIN-NODEBUG-NEXT: )
-;; CHECK-BIN-NODEBUG-NEXT: (local.get $0)
;; CHECK-BIN-NODEBUG-NEXT: )
;; CHECK-BIN-NODEBUG-NEXT: )
@@ -988,11 +1032,15 @@
;; CHECK-BIN-NODEBUG-NEXT: (try_table (catch $tag$0 $label$2)
;; CHECK-BIN-NODEBUG-NEXT: (if
;; CHECK-BIN-NODEBUG-NEXT: (i32.const 0)
-;; CHECK-BIN-NODEBUG-NEXT: (throw $tag$0
-;; CHECK-BIN-NODEBUG-NEXT: (i32.const 3)
+;; CHECK-BIN-NODEBUG-NEXT: (then
+;; CHECK-BIN-NODEBUG-NEXT: (throw $tag$0
+;; CHECK-BIN-NODEBUG-NEXT: (i32.const 3)
+;; CHECK-BIN-NODEBUG-NEXT: )
;; CHECK-BIN-NODEBUG-NEXT: )
-;; CHECK-BIN-NODEBUG-NEXT: (throw $tag$3
-;; CHECK-BIN-NODEBUG-NEXT: (ref.null none)
+;; CHECK-BIN-NODEBUG-NEXT: (else
+;; CHECK-BIN-NODEBUG-NEXT: (throw $tag$3
+;; CHECK-BIN-NODEBUG-NEXT: (ref.null none)
+;; CHECK-BIN-NODEBUG-NEXT: )
;; CHECK-BIN-NODEBUG-NEXT: )
;; CHECK-BIN-NODEBUG-NEXT: )
;; CHECK-BIN-NODEBUG-NEXT: )
diff --git a/test/lit/basic/polymorphic_stack.wast b/test/lit/basic/polymorphic_stack.wast
index d51117e16..fc743bf2a 100644
--- a/test/lit/basic/polymorphic_stack.wast
+++ b/test/lit/basic/polymorphic_stack.wast
@@ -162,8 +162,10 @@
;; CHECK-TEXT-NEXT: (local $0 f32)
;; CHECK-TEXT-NEXT: (if
;; CHECK-TEXT-NEXT: (i32.const 259)
- ;; CHECK-TEXT-NEXT: (local.tee $0
- ;; CHECK-TEXT-NEXT: (unreachable)
+ ;; CHECK-TEXT-NEXT: (then
+ ;; CHECK-TEXT-NEXT: (local.tee $0
+ ;; CHECK-TEXT-NEXT: (unreachable)
+ ;; CHECK-TEXT-NEXT: )
;; CHECK-TEXT-NEXT: )
;; CHECK-TEXT-NEXT: )
;; CHECK-TEXT-NEXT: )
@@ -171,15 +173,19 @@
;; CHECK-BIN-NEXT: (local $0 f32)
;; CHECK-BIN-NEXT: (if
;; CHECK-BIN-NEXT: (i32.const 259)
- ;; CHECK-BIN-NEXT: (unreachable)
+ ;; CHECK-BIN-NEXT: (then
+ ;; CHECK-BIN-NEXT: (unreachable)
+ ;; CHECK-BIN-NEXT: )
;; CHECK-BIN-NEXT: )
;; CHECK-BIN-NEXT: )
(func $tee2
(local $0 f32)
(if
(i32.const 259)
- (local.set $0
- (unreachable)
+ (then
+ (local.set $0
+ (unreachable)
+ )
)
)
)
@@ -245,8 +251,10 @@
;; CHECK-TEXT: (func $unreachable-in-block-but-code-before (type $FUNCSIG$ii) (param $0 i32) (result i32)
;; CHECK-TEXT-NEXT: (if
;; CHECK-TEXT-NEXT: (local.get $0)
- ;; CHECK-TEXT-NEXT: (return
- ;; CHECK-TEXT-NEXT: (i32.const 127)
+ ;; CHECK-TEXT-NEXT: (then
+ ;; CHECK-TEXT-NEXT: (return
+ ;; CHECK-TEXT-NEXT: (i32.const 127)
+ ;; CHECK-TEXT-NEXT: )
;; CHECK-TEXT-NEXT: )
;; CHECK-TEXT-NEXT: )
;; CHECK-TEXT-NEXT: (block $label$0 (result i32)
@@ -261,8 +269,10 @@
;; CHECK-BIN: (func $unreachable-in-block-but-code-before (type $FUNCSIG$ii) (param $0 i32) (result i32)
;; CHECK-BIN-NEXT: (if
;; CHECK-BIN-NEXT: (local.get $0)
- ;; CHECK-BIN-NEXT: (return
- ;; CHECK-BIN-NEXT: (i32.const 127)
+ ;; CHECK-BIN-NEXT: (then
+ ;; CHECK-BIN-NEXT: (return
+ ;; CHECK-BIN-NEXT: (i32.const 127)
+ ;; CHECK-BIN-NEXT: )
;; CHECK-BIN-NEXT: )
;; CHECK-BIN-NEXT: )
;; CHECK-BIN-NEXT: (block $label$2 (result i32)
@@ -277,8 +287,10 @@
(func $unreachable-in-block-but-code-before (param $0 i32) (result i32)
(if
(local.get $0)
- (return
- (i32.const 127)
+ (then
+ (return
+ (i32.const 127)
+ )
)
)
(block $label$0 (result i32)
@@ -325,11 +337,15 @@
;; CHECK-TEXT-NEXT: (drop
;; CHECK-TEXT-NEXT: (if
;; CHECK-TEXT-NEXT: (i32.const 0)
- ;; CHECK-TEXT-NEXT: (br_if $label$8
+ ;; CHECK-TEXT-NEXT: (then
+ ;; CHECK-TEXT-NEXT: (br_if $label$8
+ ;; CHECK-TEXT-NEXT: (unreachable)
+ ;; CHECK-TEXT-NEXT: (i32.const 0)
+ ;; CHECK-TEXT-NEXT: )
+ ;; CHECK-TEXT-NEXT: )
+ ;; CHECK-TEXT-NEXT: (else
;; CHECK-TEXT-NEXT: (unreachable)
- ;; CHECK-TEXT-NEXT: (i32.const 0)
;; CHECK-TEXT-NEXT: )
- ;; CHECK-TEXT-NEXT: (unreachable)
;; CHECK-TEXT-NEXT: )
;; CHECK-TEXT-NEXT: )
;; CHECK-TEXT-NEXT: )
@@ -340,8 +356,12 @@
;; CHECK-BIN-NEXT: (block $label$2
;; CHECK-BIN-NEXT: (if
;; CHECK-BIN-NEXT: (i32.const 0)
- ;; CHECK-BIN-NEXT: (unreachable)
- ;; CHECK-BIN-NEXT: (unreachable)
+ ;; CHECK-BIN-NEXT: (then
+ ;; CHECK-BIN-NEXT: (unreachable)
+ ;; CHECK-BIN-NEXT: )
+ ;; CHECK-BIN-NEXT: (else
+ ;; CHECK-BIN-NEXT: (unreachable)
+ ;; CHECK-BIN-NEXT: )
;; CHECK-BIN-NEXT: )
;; CHECK-BIN-NEXT: )
;; CHECK-BIN-NEXT: (unreachable)
@@ -353,11 +373,15 @@
(drop
(if
(i32.const 0)
- (br_if $label$8
+ (then
+ (br_if $label$8
+ (unreachable)
+ (i32.const 0)
+ )
+ )
+ (else
(unreachable)
- (i32.const 0)
)
- (unreachable)
)
)
)
@@ -393,7 +417,9 @@
;; CHECK-BIN-NODEBUG-NEXT: (local $0 f32)
;; CHECK-BIN-NODEBUG-NEXT: (if
;; CHECK-BIN-NODEBUG-NEXT: (i32.const 259)
-;; CHECK-BIN-NODEBUG-NEXT: (unreachable)
+;; CHECK-BIN-NODEBUG-NEXT: (then
+;; CHECK-BIN-NODEBUG-NEXT: (unreachable)
+;; CHECK-BIN-NODEBUG-NEXT: )
;; CHECK-BIN-NODEBUG-NEXT: )
;; CHECK-BIN-NODEBUG-NEXT: )
@@ -416,8 +442,10 @@
;; CHECK-BIN-NODEBUG: (func $6 (type $1) (param $0 i32) (result i32)
;; CHECK-BIN-NODEBUG-NEXT: (if
;; CHECK-BIN-NODEBUG-NEXT: (local.get $0)
-;; CHECK-BIN-NODEBUG-NEXT: (return
-;; CHECK-BIN-NODEBUG-NEXT: (i32.const 127)
+;; CHECK-BIN-NODEBUG-NEXT: (then
+;; CHECK-BIN-NODEBUG-NEXT: (return
+;; CHECK-BIN-NODEBUG-NEXT: (i32.const 127)
+;; CHECK-BIN-NODEBUG-NEXT: )
;; CHECK-BIN-NODEBUG-NEXT: )
;; CHECK-BIN-NODEBUG-NEXT: )
;; CHECK-BIN-NODEBUG-NEXT: (block $label$2 (result i32)
@@ -443,8 +471,12 @@
;; CHECK-BIN-NODEBUG-NEXT: (block $label$2
;; CHECK-BIN-NODEBUG-NEXT: (if
;; CHECK-BIN-NODEBUG-NEXT: (i32.const 0)
-;; CHECK-BIN-NODEBUG-NEXT: (unreachable)
-;; CHECK-BIN-NODEBUG-NEXT: (unreachable)
+;; CHECK-BIN-NODEBUG-NEXT: (then
+;; CHECK-BIN-NODEBUG-NEXT: (unreachable)
+;; CHECK-BIN-NODEBUG-NEXT: )
+;; CHECK-BIN-NODEBUG-NEXT: (else
+;; CHECK-BIN-NODEBUG-NEXT: (unreachable)
+;; CHECK-BIN-NODEBUG-NEXT: )
;; CHECK-BIN-NODEBUG-NEXT: )
;; CHECK-BIN-NODEBUG-NEXT: )
;; CHECK-BIN-NODEBUG-NEXT: (unreachable)
diff --git a/test/lit/basic/reference-types.wast b/test/lit/basic/reference-types.wast
index 2b502d789..94d4f3525 100644
--- a/test/lit/basic/reference-types.wast
+++ b/test/lit/basic/reference-types.wast
@@ -525,45 +525,69 @@
;; CHECK-TEXT-NEXT: (drop
;; CHECK-TEXT-NEXT: (if (result eqref)
;; CHECK-TEXT-NEXT: (i32.const 1)
- ;; CHECK-TEXT-NEXT: (local.get $local_eqref)
- ;; CHECK-TEXT-NEXT: (ref.null none)
+ ;; CHECK-TEXT-NEXT: (then
+ ;; CHECK-TEXT-NEXT: (local.get $local_eqref)
+ ;; CHECK-TEXT-NEXT: )
+ ;; CHECK-TEXT-NEXT: (else
+ ;; CHECK-TEXT-NEXT: (ref.null none)
+ ;; CHECK-TEXT-NEXT: )
;; CHECK-TEXT-NEXT: )
;; CHECK-TEXT-NEXT: )
;; CHECK-TEXT-NEXT: (drop
;; CHECK-TEXT-NEXT: (if (result funcref)
;; CHECK-TEXT-NEXT: (i32.const 1)
- ;; CHECK-TEXT-NEXT: (local.get $local_funcref)
- ;; CHECK-TEXT-NEXT: (ref.null nofunc)
+ ;; CHECK-TEXT-NEXT: (then
+ ;; CHECK-TEXT-NEXT: (local.get $local_funcref)
+ ;; CHECK-TEXT-NEXT: )
+ ;; CHECK-TEXT-NEXT: (else
+ ;; CHECK-TEXT-NEXT: (ref.null nofunc)
+ ;; CHECK-TEXT-NEXT: )
;; CHECK-TEXT-NEXT: )
;; CHECK-TEXT-NEXT: )
;; CHECK-TEXT-NEXT: (drop
;; CHECK-TEXT-NEXT: (if (result anyref)
;; CHECK-TEXT-NEXT: (i32.const 1)
- ;; CHECK-TEXT-NEXT: (local.get $local_anyref)
- ;; CHECK-TEXT-NEXT: (ref.null none)
+ ;; CHECK-TEXT-NEXT: (then
+ ;; CHECK-TEXT-NEXT: (local.get $local_anyref)
+ ;; CHECK-TEXT-NEXT: )
+ ;; CHECK-TEXT-NEXT: (else
+ ;; CHECK-TEXT-NEXT: (ref.null none)
+ ;; CHECK-TEXT-NEXT: )
;; CHECK-TEXT-NEXT: )
;; CHECK-TEXT-NEXT: )
;; CHECK-TEXT-NEXT: (drop
;; CHECK-TEXT-NEXT: (if (result anyref)
;; CHECK-TEXT-NEXT: (i32.const 1)
- ;; CHECK-TEXT-NEXT: (local.get $local_eqref)
- ;; CHECK-TEXT-NEXT: (local.get $local_eqref)
+ ;; CHECK-TEXT-NEXT: (then
+ ;; CHECK-TEXT-NEXT: (local.get $local_eqref)
+ ;; CHECK-TEXT-NEXT: )
+ ;; CHECK-TEXT-NEXT: (else
+ ;; CHECK-TEXT-NEXT: (local.get $local_eqref)
+ ;; CHECK-TEXT-NEXT: )
;; CHECK-TEXT-NEXT: )
;; CHECK-TEXT-NEXT: )
;; CHECK-TEXT-NEXT: (drop
;; CHECK-TEXT-NEXT: (if (result anyref)
;; CHECK-TEXT-NEXT: (i32.const 1)
- ;; CHECK-TEXT-NEXT: (ref.null none)
- ;; CHECK-TEXT-NEXT: (ref.null none)
+ ;; CHECK-TEXT-NEXT: (then
+ ;; CHECK-TEXT-NEXT: (ref.null none)
+ ;; CHECK-TEXT-NEXT: )
+ ;; CHECK-TEXT-NEXT: (else
+ ;; CHECK-TEXT-NEXT: (ref.null none)
+ ;; CHECK-TEXT-NEXT: )
;; CHECK-TEXT-NEXT: )
;; CHECK-TEXT-NEXT: )
;; CHECK-TEXT-NEXT: (drop
;; CHECK-TEXT-NEXT: (if (result anyref)
;; CHECK-TEXT-NEXT: (i32.const 1)
- ;; CHECK-TEXT-NEXT: (ref.i31
- ;; CHECK-TEXT-NEXT: (i32.const 0)
+ ;; CHECK-TEXT-NEXT: (then
+ ;; CHECK-TEXT-NEXT: (ref.i31
+ ;; CHECK-TEXT-NEXT: (i32.const 0)
+ ;; CHECK-TEXT-NEXT: )
+ ;; CHECK-TEXT-NEXT: )
+ ;; CHECK-TEXT-NEXT: (else
+ ;; CHECK-TEXT-NEXT: (ref.null none)
;; CHECK-TEXT-NEXT: )
- ;; CHECK-TEXT-NEXT: (ref.null none)
;; CHECK-TEXT-NEXT: )
;; CHECK-TEXT-NEXT: )
;; CHECK-TEXT-NEXT: (drop
@@ -1036,45 +1060,69 @@
;; CHECK-BIN-NEXT: (drop
;; CHECK-BIN-NEXT: (if (result eqref)
;; CHECK-BIN-NEXT: (i32.const 1)
- ;; CHECK-BIN-NEXT: (local.get $local_eqref)
- ;; CHECK-BIN-NEXT: (ref.null none)
+ ;; CHECK-BIN-NEXT: (then
+ ;; CHECK-BIN-NEXT: (local.get $local_eqref)
+ ;; CHECK-BIN-NEXT: )
+ ;; CHECK-BIN-NEXT: (else
+ ;; CHECK-BIN-NEXT: (ref.null none)
+ ;; CHECK-BIN-NEXT: )
;; CHECK-BIN-NEXT: )
;; CHECK-BIN-NEXT: )
;; CHECK-BIN-NEXT: (drop
;; CHECK-BIN-NEXT: (if (result funcref)
;; CHECK-BIN-NEXT: (i32.const 1)
- ;; CHECK-BIN-NEXT: (local.get $local_funcref)
- ;; CHECK-BIN-NEXT: (ref.null nofunc)
+ ;; CHECK-BIN-NEXT: (then
+ ;; CHECK-BIN-NEXT: (local.get $local_funcref)
+ ;; CHECK-BIN-NEXT: )
+ ;; CHECK-BIN-NEXT: (else
+ ;; CHECK-BIN-NEXT: (ref.null nofunc)
+ ;; CHECK-BIN-NEXT: )
;; CHECK-BIN-NEXT: )
;; CHECK-BIN-NEXT: )
;; CHECK-BIN-NEXT: (drop
;; CHECK-BIN-NEXT: (if (result anyref)
;; CHECK-BIN-NEXT: (i32.const 1)
- ;; CHECK-BIN-NEXT: (local.get $local_anyref)
- ;; CHECK-BIN-NEXT: (ref.null none)
+ ;; CHECK-BIN-NEXT: (then
+ ;; CHECK-BIN-NEXT: (local.get $local_anyref)
+ ;; CHECK-BIN-NEXT: )
+ ;; CHECK-BIN-NEXT: (else
+ ;; CHECK-BIN-NEXT: (ref.null none)
+ ;; CHECK-BIN-NEXT: )
;; CHECK-BIN-NEXT: )
;; CHECK-BIN-NEXT: )
;; CHECK-BIN-NEXT: (drop
;; CHECK-BIN-NEXT: (if (result anyref)
;; CHECK-BIN-NEXT: (i32.const 1)
- ;; CHECK-BIN-NEXT: (local.get $local_eqref)
- ;; CHECK-BIN-NEXT: (local.get $local_eqref)
+ ;; CHECK-BIN-NEXT: (then
+ ;; CHECK-BIN-NEXT: (local.get $local_eqref)
+ ;; CHECK-BIN-NEXT: )
+ ;; CHECK-BIN-NEXT: (else
+ ;; CHECK-BIN-NEXT: (local.get $local_eqref)
+ ;; CHECK-BIN-NEXT: )
;; CHECK-BIN-NEXT: )
;; CHECK-BIN-NEXT: )
;; CHECK-BIN-NEXT: (drop
;; CHECK-BIN-NEXT: (if (result anyref)
;; CHECK-BIN-NEXT: (i32.const 1)
- ;; CHECK-BIN-NEXT: (ref.null none)
- ;; CHECK-BIN-NEXT: (ref.null none)
+ ;; CHECK-BIN-NEXT: (then
+ ;; CHECK-BIN-NEXT: (ref.null none)
+ ;; CHECK-BIN-NEXT: )
+ ;; CHECK-BIN-NEXT: (else
+ ;; CHECK-BIN-NEXT: (ref.null none)
+ ;; CHECK-BIN-NEXT: )
;; CHECK-BIN-NEXT: )
;; CHECK-BIN-NEXT: )
;; CHECK-BIN-NEXT: (drop
;; CHECK-BIN-NEXT: (if (result anyref)
;; CHECK-BIN-NEXT: (i32.const 1)
- ;; CHECK-BIN-NEXT: (ref.i31
- ;; CHECK-BIN-NEXT: (i32.const 0)
+ ;; CHECK-BIN-NEXT: (then
+ ;; CHECK-BIN-NEXT: (ref.i31
+ ;; CHECK-BIN-NEXT: (i32.const 0)
+ ;; CHECK-BIN-NEXT: )
+ ;; CHECK-BIN-NEXT: )
+ ;; CHECK-BIN-NEXT: (else
+ ;; CHECK-BIN-NEXT: (ref.null none)
;; CHECK-BIN-NEXT: )
- ;; CHECK-BIN-NEXT: (ref.null none)
;; CHECK-BIN-NEXT: )
;; CHECK-BIN-NEXT: )
;; CHECK-BIN-NEXT: (drop
@@ -1420,22 +1468,34 @@
(drop
(if (result eqref)
(i32.const 1)
- (local.get $local_eqref)
- (ref.null eq)
+ (then
+ (local.get $local_eqref)
+ )
+ (else
+ (ref.null eq)
+ )
)
)
(drop
(if (result funcref)
(i32.const 1)
- (local.get $local_funcref)
- (ref.null func)
+ (then
+ (local.get $local_funcref)
+ )
+ (else
+ (ref.null func)
+ )
)
)
(drop
(if (result anyref)
(i32.const 1)
- (local.get $local_anyref)
- (ref.null any)
+ (then
+ (local.get $local_anyref)
+ )
+ (else
+ (ref.null any)
+ )
)
)
@@ -1443,24 +1503,36 @@
(drop
(if (result anyref)
(i32.const 1)
- (local.get $local_eqref)
- (local.get $local_eqref)
+ (then
+ (local.get $local_eqref)
+ )
+ (else
+ (local.get $local_eqref)
+ )
)
)
(drop
(if (result anyref)
(i32.const 1)
- (ref.null eq)
- (ref.null i31)
+ (then
+ (ref.null eq)
+ )
+ (else
+ (ref.null i31)
+ )
)
)
(drop
(if (result anyref)
(i32.const 1)
- (ref.i31
- (i32.const 0)
+ (then
+ (ref.i31
+ (i32.const 0)
+ )
+ )
+ (else
+ (ref.null eq)
)
- (ref.null eq)
)
)
@@ -2201,45 +2273,69 @@
;; CHECK-BIN-NODEBUG-NEXT: (drop
;; CHECK-BIN-NODEBUG-NEXT: (if (result eqref)
;; CHECK-BIN-NODEBUG-NEXT: (i32.const 1)
-;; CHECK-BIN-NODEBUG-NEXT: (local.get $0)
-;; CHECK-BIN-NODEBUG-NEXT: (ref.null none)
+;; CHECK-BIN-NODEBUG-NEXT: (then
+;; CHECK-BIN-NODEBUG-NEXT: (local.get $0)
+;; CHECK-BIN-NODEBUG-NEXT: )
+;; CHECK-BIN-NODEBUG-NEXT: (else
+;; CHECK-BIN-NODEBUG-NEXT: (ref.null none)
+;; CHECK-BIN-NODEBUG-NEXT: )
;; CHECK-BIN-NODEBUG-NEXT: )
;; CHECK-BIN-NODEBUG-NEXT: )
;; CHECK-BIN-NODEBUG-NEXT: (drop
;; CHECK-BIN-NODEBUG-NEXT: (if (result funcref)
;; CHECK-BIN-NODEBUG-NEXT: (i32.const 1)
-;; CHECK-BIN-NODEBUG-NEXT: (local.get $1)
-;; CHECK-BIN-NODEBUG-NEXT: (ref.null nofunc)
+;; CHECK-BIN-NODEBUG-NEXT: (then
+;; CHECK-BIN-NODEBUG-NEXT: (local.get $1)
+;; CHECK-BIN-NODEBUG-NEXT: )
+;; CHECK-BIN-NODEBUG-NEXT: (else
+;; CHECK-BIN-NODEBUG-NEXT: (ref.null nofunc)
+;; CHECK-BIN-NODEBUG-NEXT: )
;; CHECK-BIN-NODEBUG-NEXT: )
;; CHECK-BIN-NODEBUG-NEXT: )
;; CHECK-BIN-NODEBUG-NEXT: (drop
;; CHECK-BIN-NODEBUG-NEXT: (if (result anyref)
;; CHECK-BIN-NODEBUG-NEXT: (i32.const 1)
-;; CHECK-BIN-NODEBUG-NEXT: (local.get $2)
-;; CHECK-BIN-NODEBUG-NEXT: (ref.null none)
+;; CHECK-BIN-NODEBUG-NEXT: (then
+;; CHECK-BIN-NODEBUG-NEXT: (local.get $2)
+;; CHECK-BIN-NODEBUG-NEXT: )
+;; CHECK-BIN-NODEBUG-NEXT: (else
+;; CHECK-BIN-NODEBUG-NEXT: (ref.null none)
+;; CHECK-BIN-NODEBUG-NEXT: )
;; CHECK-BIN-NODEBUG-NEXT: )
;; CHECK-BIN-NODEBUG-NEXT: )
;; CHECK-BIN-NODEBUG-NEXT: (drop
;; CHECK-BIN-NODEBUG-NEXT: (if (result anyref)
;; CHECK-BIN-NODEBUG-NEXT: (i32.const 1)
-;; CHECK-BIN-NODEBUG-NEXT: (local.get $0)
-;; CHECK-BIN-NODEBUG-NEXT: (local.get $0)
+;; CHECK-BIN-NODEBUG-NEXT: (then
+;; CHECK-BIN-NODEBUG-NEXT: (local.get $0)
+;; CHECK-BIN-NODEBUG-NEXT: )
+;; CHECK-BIN-NODEBUG-NEXT: (else
+;; CHECK-BIN-NODEBUG-NEXT: (local.get $0)
+;; CHECK-BIN-NODEBUG-NEXT: )
;; CHECK-BIN-NODEBUG-NEXT: )
;; CHECK-BIN-NODEBUG-NEXT: )
;; CHECK-BIN-NODEBUG-NEXT: (drop
;; CHECK-BIN-NODEBUG-NEXT: (if (result anyref)
;; CHECK-BIN-NODEBUG-NEXT: (i32.const 1)
-;; CHECK-BIN-NODEBUG-NEXT: (ref.null none)
-;; CHECK-BIN-NODEBUG-NEXT: (ref.null none)
+;; CHECK-BIN-NODEBUG-NEXT: (then
+;; CHECK-BIN-NODEBUG-NEXT: (ref.null none)
+;; CHECK-BIN-NODEBUG-NEXT: )
+;; CHECK-BIN-NODEBUG-NEXT: (else
+;; CHECK-BIN-NODEBUG-NEXT: (ref.null none)
+;; CHECK-BIN-NODEBUG-NEXT: )
;; CHECK-BIN-NODEBUG-NEXT: )
;; CHECK-BIN-NODEBUG-NEXT: )
;; CHECK-BIN-NODEBUG-NEXT: (drop
;; CHECK-BIN-NODEBUG-NEXT: (if (result anyref)
;; CHECK-BIN-NODEBUG-NEXT: (i32.const 1)
-;; CHECK-BIN-NODEBUG-NEXT: (ref.i31
-;; CHECK-BIN-NODEBUG-NEXT: (i32.const 0)
+;; CHECK-BIN-NODEBUG-NEXT: (then
+;; CHECK-BIN-NODEBUG-NEXT: (ref.i31
+;; CHECK-BIN-NODEBUG-NEXT: (i32.const 0)
+;; CHECK-BIN-NODEBUG-NEXT: )
+;; CHECK-BIN-NODEBUG-NEXT: )
+;; CHECK-BIN-NODEBUG-NEXT: (else
+;; CHECK-BIN-NODEBUG-NEXT: (ref.null none)
;; CHECK-BIN-NODEBUG-NEXT: )
-;; CHECK-BIN-NODEBUG-NEXT: (ref.null none)
;; CHECK-BIN-NODEBUG-NEXT: )
;; CHECK-BIN-NODEBUG-NEXT: )
;; CHECK-BIN-NODEBUG-NEXT: (drop
diff --git a/test/lit/basic/reg_switch.wast b/test/lit/basic/reg_switch.wast
index 5f9dd5d7f..db7494511 100644
--- a/test/lit/basic/reg_switch.wast
+++ b/test/lit/basic/reg_switch.wast
@@ -22,9 +22,11 @@
;; CHECK-TEXT: (func $0 (type $0)
;; CHECK-TEXT-NEXT: (if
;; CHECK-TEXT-NEXT: (i32.const 0)
- ;; CHECK-TEXT-NEXT: (block $A
- ;; CHECK-TEXT-NEXT: (br_table $A
- ;; CHECK-TEXT-NEXT: (i32.const 0)
+ ;; CHECK-TEXT-NEXT: (then
+ ;; CHECK-TEXT-NEXT: (block $A
+ ;; CHECK-TEXT-NEXT: (br_table $A
+ ;; CHECK-TEXT-NEXT: (i32.const 0)
+ ;; CHECK-TEXT-NEXT: )
;; CHECK-TEXT-NEXT: )
;; CHECK-TEXT-NEXT: )
;; CHECK-TEXT-NEXT: )
@@ -32,9 +34,11 @@
;; CHECK-BIN: (func $0 (type $0)
;; CHECK-BIN-NEXT: (if
;; CHECK-BIN-NEXT: (i32.const 0)
- ;; CHECK-BIN-NEXT: (block $label$2
- ;; CHECK-BIN-NEXT: (br_table $label$2
- ;; CHECK-BIN-NEXT: (i32.const 0)
+ ;; CHECK-BIN-NEXT: (then
+ ;; CHECK-BIN-NEXT: (block $label$2
+ ;; CHECK-BIN-NEXT: (br_table $label$2
+ ;; CHECK-BIN-NEXT: (i32.const 0)
+ ;; CHECK-BIN-NEXT: )
;; CHECK-BIN-NEXT: )
;; CHECK-BIN-NEXT: )
;; CHECK-BIN-NEXT: )
@@ -42,9 +46,11 @@
;; CHECK-BIN-NODEBUG: (func $0 (type $0)
;; CHECK-BIN-NODEBUG-NEXT: (if
;; CHECK-BIN-NODEBUG-NEXT: (i32.const 0)
- ;; CHECK-BIN-NODEBUG-NEXT: (block $label$2
- ;; CHECK-BIN-NODEBUG-NEXT: (br_table $label$2
- ;; CHECK-BIN-NODEBUG-NEXT: (i32.const 0)
+ ;; CHECK-BIN-NODEBUG-NEXT: (then
+ ;; CHECK-BIN-NODEBUG-NEXT: (block $label$2
+ ;; CHECK-BIN-NODEBUG-NEXT: (br_table $label$2
+ ;; CHECK-BIN-NODEBUG-NEXT: (i32.const 0)
+ ;; CHECK-BIN-NODEBUG-NEXT: )
;; CHECK-BIN-NODEBUG-NEXT: )
;; CHECK-BIN-NODEBUG-NEXT: )
;; CHECK-BIN-NODEBUG-NEXT: )
@@ -52,9 +58,11 @@
(func $0 (type $0)
(if
(i32.const 0)
- (block $A
- (br_table $A
- (i32.const 0)
+ (then
+ (block $A
+ (br_table $A
+ (i32.const 0)
+ )
)
)
)
diff --git a/test/lit/basic/unit.wat b/test/lit/basic/unit.wat
index 4fc36b3b7..9cdcb5792 100644
--- a/test/lit/basic/unit.wat
+++ b/test/lit/basic/unit.wat
@@ -191,8 +191,10 @@
;; CHECK-TEXT-NEXT: )
;; CHECK-TEXT-NEXT: (i32.const 0)
;; CHECK-TEXT-NEXT: )
- ;; CHECK-TEXT-NEXT: (br $topmost
- ;; CHECK-TEXT-NEXT: (f64.const -3.4)
+ ;; CHECK-TEXT-NEXT: (then
+ ;; CHECK-TEXT-NEXT: (br $topmost
+ ;; CHECK-TEXT-NEXT: (f64.const -3.4)
+ ;; CHECK-TEXT-NEXT: )
;; CHECK-TEXT-NEXT: )
;; CHECK-TEXT-NEXT: )
;; CHECK-TEXT-NEXT: (if
@@ -202,8 +204,10 @@
;; CHECK-TEXT-NEXT: )
;; CHECK-TEXT-NEXT: (f64.const 0)
;; CHECK-TEXT-NEXT: )
- ;; CHECK-TEXT-NEXT: (br $topmost
- ;; CHECK-TEXT-NEXT: (f64.const 5.6)
+ ;; CHECK-TEXT-NEXT: (then
+ ;; CHECK-TEXT-NEXT: (br $topmost
+ ;; CHECK-TEXT-NEXT: (f64.const 5.6)
+ ;; CHECK-TEXT-NEXT: )
;; CHECK-TEXT-NEXT: )
;; CHECK-TEXT-NEXT: )
;; CHECK-TEXT-NEXT: (f64.const 1.2)
@@ -243,8 +247,10 @@
;; CHECK-BIN-NEXT: )
;; CHECK-BIN-NEXT: (i32.const 0)
;; CHECK-BIN-NEXT: )
- ;; CHECK-BIN-NEXT: (br $label$1
- ;; CHECK-BIN-NEXT: (f64.const -3.4)
+ ;; CHECK-BIN-NEXT: (then
+ ;; CHECK-BIN-NEXT: (br $label$1
+ ;; CHECK-BIN-NEXT: (f64.const -3.4)
+ ;; CHECK-BIN-NEXT: )
;; CHECK-BIN-NEXT: )
;; CHECK-BIN-NEXT: )
;; CHECK-BIN-NEXT: (if
@@ -254,8 +260,10 @@
;; CHECK-BIN-NEXT: )
;; CHECK-BIN-NEXT: (f64.const 0)
;; CHECK-BIN-NEXT: )
- ;; CHECK-BIN-NEXT: (br $label$1
- ;; CHECK-BIN-NEXT: (f64.const 5.6)
+ ;; CHECK-BIN-NEXT: (then
+ ;; CHECK-BIN-NEXT: (br $label$1
+ ;; CHECK-BIN-NEXT: (f64.const 5.6)
+ ;; CHECK-BIN-NEXT: )
;; CHECK-BIN-NEXT: )
;; CHECK-BIN-NEXT: )
;; CHECK-BIN-NEXT: (f64.const 1.2)
@@ -295,8 +303,10 @@
)
(i32.const 0)
)
- (br $topmost
- (f64.const -3.4)
+ (then
+ (br $topmost
+ (f64.const -3.4)
+ )
)
)
(if
@@ -306,8 +316,10 @@
)
(f64.const 0)
)
- (br $topmost
- (f64.const 5.6)
+ (then
+ (br $topmost
+ (f64.const 5.6)
+ )
)
)
(f64.const 1.2)
@@ -323,8 +335,10 @@
;; CHECK-TEXT-NEXT: (local.get $x)
;; CHECK-TEXT-NEXT: (f64.const 0)
;; CHECK-TEXT-NEXT: )
- ;; CHECK-TEXT-NEXT: (br $topmost
- ;; CHECK-TEXT-NEXT: (f64.const 1.2)
+ ;; CHECK-TEXT-NEXT: (then
+ ;; CHECK-TEXT-NEXT: (br $topmost
+ ;; CHECK-TEXT-NEXT: (f64.const 1.2)
+ ;; CHECK-TEXT-NEXT: )
;; CHECK-TEXT-NEXT: )
;; CHECK-TEXT-NEXT: )
;; CHECK-TEXT-NEXT: (if
@@ -332,8 +346,10 @@
;; CHECK-TEXT-NEXT: (local.get $Int)
;; CHECK-TEXT-NEXT: (f64.const 0)
;; CHECK-TEXT-NEXT: )
- ;; CHECK-TEXT-NEXT: (br $topmost
- ;; CHECK-TEXT-NEXT: (f64.const -3.4)
+ ;; CHECK-TEXT-NEXT: (then
+ ;; CHECK-TEXT-NEXT: (br $topmost
+ ;; CHECK-TEXT-NEXT: (f64.const -3.4)
+ ;; CHECK-TEXT-NEXT: )
;; CHECK-TEXT-NEXT: )
;; CHECK-TEXT-NEXT: )
;; CHECK-TEXT-NEXT: (if
@@ -341,8 +357,10 @@
;; CHECK-TEXT-NEXT: (local.get $Double)
;; CHECK-TEXT-NEXT: (i32.const 0)
;; CHECK-TEXT-NEXT: )
- ;; CHECK-TEXT-NEXT: (br $topmost
- ;; CHECK-TEXT-NEXT: (f64.const 5.6)
+ ;; CHECK-TEXT-NEXT: (then
+ ;; CHECK-TEXT-NEXT: (br $topmost
+ ;; CHECK-TEXT-NEXT: (f64.const 5.6)
+ ;; CHECK-TEXT-NEXT: )
;; CHECK-TEXT-NEXT: )
;; CHECK-TEXT-NEXT: )
;; CHECK-TEXT-NEXT: (if
@@ -350,8 +368,10 @@
;; CHECK-TEXT-NEXT: (local.get $x)
;; CHECK-TEXT-NEXT: (local.get $y)
;; CHECK-TEXT-NEXT: )
- ;; CHECK-TEXT-NEXT: (br $topmost
- ;; CHECK-TEXT-NEXT: (local.get $x)
+ ;; CHECK-TEXT-NEXT: (then
+ ;; CHECK-TEXT-NEXT: (br $topmost
+ ;; CHECK-TEXT-NEXT: (local.get $x)
+ ;; CHECK-TEXT-NEXT: )
;; CHECK-TEXT-NEXT: )
;; CHECK-TEXT-NEXT: )
;; CHECK-TEXT-NEXT: (local.get $y)
@@ -367,8 +387,10 @@
;; CHECK-BIN-NEXT: (local.get $x)
;; CHECK-BIN-NEXT: (f64.const 0)
;; CHECK-BIN-NEXT: )
- ;; CHECK-BIN-NEXT: (br $label$1
- ;; CHECK-BIN-NEXT: (f64.const 1.2)
+ ;; CHECK-BIN-NEXT: (then
+ ;; CHECK-BIN-NEXT: (br $label$1
+ ;; CHECK-BIN-NEXT: (f64.const 1.2)
+ ;; CHECK-BIN-NEXT: )
;; CHECK-BIN-NEXT: )
;; CHECK-BIN-NEXT: )
;; CHECK-BIN-NEXT: (if
@@ -376,8 +398,10 @@
;; CHECK-BIN-NEXT: (local.get $Int)
;; CHECK-BIN-NEXT: (f64.const 0)
;; CHECK-BIN-NEXT: )
- ;; CHECK-BIN-NEXT: (br $label$1
- ;; CHECK-BIN-NEXT: (f64.const -3.4)
+ ;; CHECK-BIN-NEXT: (then
+ ;; CHECK-BIN-NEXT: (br $label$1
+ ;; CHECK-BIN-NEXT: (f64.const -3.4)
+ ;; CHECK-BIN-NEXT: )
;; CHECK-BIN-NEXT: )
;; CHECK-BIN-NEXT: )
;; CHECK-BIN-NEXT: (if
@@ -385,8 +409,10 @@
;; CHECK-BIN-NEXT: (local.get $Double)
;; CHECK-BIN-NEXT: (i32.const 0)
;; CHECK-BIN-NEXT: )
- ;; CHECK-BIN-NEXT: (br $label$1
- ;; CHECK-BIN-NEXT: (f64.const 5.6)
+ ;; CHECK-BIN-NEXT: (then
+ ;; CHECK-BIN-NEXT: (br $label$1
+ ;; CHECK-BIN-NEXT: (f64.const 5.6)
+ ;; CHECK-BIN-NEXT: )
;; CHECK-BIN-NEXT: )
;; CHECK-BIN-NEXT: )
;; CHECK-BIN-NEXT: (if
@@ -394,8 +420,10 @@
;; CHECK-BIN-NEXT: (local.get $x)
;; CHECK-BIN-NEXT: (local.get $y)
;; CHECK-BIN-NEXT: )
- ;; CHECK-BIN-NEXT: (br $label$1
- ;; CHECK-BIN-NEXT: (local.get $x)
+ ;; CHECK-BIN-NEXT: (then
+ ;; CHECK-BIN-NEXT: (br $label$1
+ ;; CHECK-BIN-NEXT: (local.get $x)
+ ;; CHECK-BIN-NEXT: )
;; CHECK-BIN-NEXT: )
;; CHECK-BIN-NEXT: )
;; CHECK-BIN-NEXT: (local.get $y)
@@ -411,8 +439,10 @@
(local.get $x)
(f64.const 0)
)
- (br $topmost
- (f64.const 1.2)
+ (then
+ (br $topmost
+ (f64.const 1.2)
+ )
)
)
(if
@@ -420,8 +450,10 @@
(local.get $Int)
(f64.const 0)
)
- (br $topmost
- (f64.const -3.4)
+ (then
+ (br $topmost
+ (f64.const -3.4)
+ )
)
)
(if
@@ -429,8 +461,10 @@
(local.get $Double)
(i32.const 0)
)
- (br $topmost
- (f64.const 5.6)
+ (then
+ (br $topmost
+ (f64.const 5.6)
+ )
)
)
(if
@@ -438,8 +472,10 @@
(local.get $x)
(local.get $y)
)
- (br $topmost
- (local.get $x)
+ (then
+ (br $topmost
+ (local.get $x)
+ )
)
)
(local.get $y)
@@ -1497,11 +1533,15 @@
;; CHECK-TEXT-NEXT: (f64.abs
;; CHECK-TEXT-NEXT: (if
;; CHECK-TEXT-NEXT: (i32.const 3)
- ;; CHECK-TEXT-NEXT: (return
- ;; CHECK-TEXT-NEXT: (i32.const 2)
+ ;; CHECK-TEXT-NEXT: (then
+ ;; CHECK-TEXT-NEXT: (return
+ ;; CHECK-TEXT-NEXT: (i32.const 2)
+ ;; CHECK-TEXT-NEXT: )
;; CHECK-TEXT-NEXT: )
- ;; CHECK-TEXT-NEXT: (return
- ;; CHECK-TEXT-NEXT: (i32.const 1)
+ ;; CHECK-TEXT-NEXT: (else
+ ;; CHECK-TEXT-NEXT: (return
+ ;; CHECK-TEXT-NEXT: (i32.const 1)
+ ;; CHECK-TEXT-NEXT: )
;; CHECK-TEXT-NEXT: )
;; CHECK-TEXT-NEXT: )
;; CHECK-TEXT-NEXT: )
@@ -1509,11 +1549,15 @@
;; CHECK-BIN: (func $unreachable-if (type $5) (result i32)
;; CHECK-BIN-NEXT: (if
;; CHECK-BIN-NEXT: (i32.const 3)
- ;; CHECK-BIN-NEXT: (return
- ;; CHECK-BIN-NEXT: (i32.const 2)
+ ;; CHECK-BIN-NEXT: (then
+ ;; CHECK-BIN-NEXT: (return
+ ;; CHECK-BIN-NEXT: (i32.const 2)
+ ;; CHECK-BIN-NEXT: )
;; CHECK-BIN-NEXT: )
- ;; CHECK-BIN-NEXT: (return
- ;; CHECK-BIN-NEXT: (i32.const 1)
+ ;; CHECK-BIN-NEXT: (else
+ ;; CHECK-BIN-NEXT: (return
+ ;; CHECK-BIN-NEXT: (i32.const 1)
+ ;; CHECK-BIN-NEXT: )
;; CHECK-BIN-NEXT: )
;; CHECK-BIN-NEXT: )
;; CHECK-BIN-NEXT: )
@@ -1521,38 +1565,54 @@
(f64.abs
(if ;; note no type - valid in binaryen IR, in wasm must be i32
(i32.const 3)
- (return (i32.const 2))
- (return (i32.const 1))
+ (then
+ (return (i32.const 2))
+ )
+ (else
+ (return (i32.const 1))
+ )
)
)
)
;; CHECK-TEXT: (func $unreachable-if-toplevel (type $5) (result i32)
;; CHECK-TEXT-NEXT: (if
;; CHECK-TEXT-NEXT: (i32.const 3)
- ;; CHECK-TEXT-NEXT: (return
- ;; CHECK-TEXT-NEXT: (i32.const 2)
+ ;; CHECK-TEXT-NEXT: (then
+ ;; CHECK-TEXT-NEXT: (return
+ ;; CHECK-TEXT-NEXT: (i32.const 2)
+ ;; CHECK-TEXT-NEXT: )
;; CHECK-TEXT-NEXT: )
- ;; CHECK-TEXT-NEXT: (return
- ;; CHECK-TEXT-NEXT: (i32.const 1)
+ ;; CHECK-TEXT-NEXT: (else
+ ;; CHECK-TEXT-NEXT: (return
+ ;; CHECK-TEXT-NEXT: (i32.const 1)
+ ;; CHECK-TEXT-NEXT: )
;; CHECK-TEXT-NEXT: )
;; CHECK-TEXT-NEXT: )
;; CHECK-TEXT-NEXT: )
;; CHECK-BIN: (func $unreachable-if-toplevel (type $5) (result i32)
;; CHECK-BIN-NEXT: (if
;; CHECK-BIN-NEXT: (i32.const 3)
- ;; CHECK-BIN-NEXT: (return
- ;; CHECK-BIN-NEXT: (i32.const 2)
+ ;; CHECK-BIN-NEXT: (then
+ ;; CHECK-BIN-NEXT: (return
+ ;; CHECK-BIN-NEXT: (i32.const 2)
+ ;; CHECK-BIN-NEXT: )
;; CHECK-BIN-NEXT: )
- ;; CHECK-BIN-NEXT: (return
- ;; CHECK-BIN-NEXT: (i32.const 1)
+ ;; CHECK-BIN-NEXT: (else
+ ;; CHECK-BIN-NEXT: (return
+ ;; CHECK-BIN-NEXT: (i32.const 1)
+ ;; CHECK-BIN-NEXT: )
;; CHECK-BIN-NEXT: )
;; CHECK-BIN-NEXT: )
;; CHECK-BIN-NEXT: )
(func $unreachable-if-toplevel (result i32)
(if ;; note no type - valid in binaryen IR, in wasm must be i32
(i32.const 3)
- (return (i32.const 2))
- (return (i32.const 1))
+ (then
+ (return (i32.const 2))
+ )
+ (else
+ (return (i32.const 1))
+ )
)
)
;; CHECK-TEXT: (func $unreachable-loop (type $5) (result i32)
@@ -1648,68 +1708,102 @@
;; CHECK-TEXT: (func $unreachable-ifs (type $FUNCSIG$v)
;; CHECK-TEXT-NEXT: (if
;; CHECK-TEXT-NEXT: (unreachable)
- ;; CHECK-TEXT-NEXT: (nop)
+ ;; CHECK-TEXT-NEXT: (then
+ ;; CHECK-TEXT-NEXT: (nop)
+ ;; CHECK-TEXT-NEXT: )
;; CHECK-TEXT-NEXT: )
;; CHECK-TEXT-NEXT: (if
;; CHECK-TEXT-NEXT: (unreachable)
- ;; CHECK-TEXT-NEXT: (unreachable)
+ ;; CHECK-TEXT-NEXT: (then
+ ;; CHECK-TEXT-NEXT: (unreachable)
+ ;; CHECK-TEXT-NEXT: )
;; CHECK-TEXT-NEXT: )
;; CHECK-TEXT-NEXT: (if
;; CHECK-TEXT-NEXT: (unreachable)
- ;; CHECK-TEXT-NEXT: (nop)
- ;; CHECK-TEXT-NEXT: (nop)
+ ;; CHECK-TEXT-NEXT: (then
+ ;; CHECK-TEXT-NEXT: (nop)
+ ;; CHECK-TEXT-NEXT: )
+ ;; CHECK-TEXT-NEXT: (else
+ ;; CHECK-TEXT-NEXT: (nop)
+ ;; CHECK-TEXT-NEXT: )
;; CHECK-TEXT-NEXT: )
;; CHECK-TEXT-NEXT: (if
;; CHECK-TEXT-NEXT: (unreachable)
- ;; CHECK-TEXT-NEXT: (unreachable)
- ;; CHECK-TEXT-NEXT: (nop)
+ ;; CHECK-TEXT-NEXT: (then
+ ;; CHECK-TEXT-NEXT: (unreachable)
+ ;; CHECK-TEXT-NEXT: )
+ ;; CHECK-TEXT-NEXT: (else
+ ;; CHECK-TEXT-NEXT: (nop)
+ ;; CHECK-TEXT-NEXT: )
;; CHECK-TEXT-NEXT: )
;; CHECK-TEXT-NEXT: (if
;; CHECK-TEXT-NEXT: (unreachable)
- ;; CHECK-TEXT-NEXT: (nop)
- ;; CHECK-TEXT-NEXT: (unreachable)
+ ;; CHECK-TEXT-NEXT: (then
+ ;; CHECK-TEXT-NEXT: (nop)
+ ;; CHECK-TEXT-NEXT: )
+ ;; CHECK-TEXT-NEXT: (else
+ ;; CHECK-TEXT-NEXT: (unreachable)
+ ;; CHECK-TEXT-NEXT: )
;; CHECK-TEXT-NEXT: )
;; CHECK-TEXT-NEXT: (if
;; CHECK-TEXT-NEXT: (unreachable)
- ;; CHECK-TEXT-NEXT: (unreachable)
- ;; CHECK-TEXT-NEXT: (unreachable)
+ ;; CHECK-TEXT-NEXT: (then
+ ;; CHECK-TEXT-NEXT: (unreachable)
+ ;; CHECK-TEXT-NEXT: )
+ ;; CHECK-TEXT-NEXT: (else
+ ;; CHECK-TEXT-NEXT: (unreachable)
+ ;; CHECK-TEXT-NEXT: )
;; CHECK-TEXT-NEXT: )
;; CHECK-TEXT-NEXT: (if
;; CHECK-TEXT-NEXT: (i32.const 1)
- ;; CHECK-TEXT-NEXT: (unreachable)
- ;; CHECK-TEXT-NEXT: (nop)
+ ;; CHECK-TEXT-NEXT: (then
+ ;; CHECK-TEXT-NEXT: (unreachable)
+ ;; CHECK-TEXT-NEXT: )
+ ;; CHECK-TEXT-NEXT: (else
+ ;; CHECK-TEXT-NEXT: (nop)
+ ;; CHECK-TEXT-NEXT: )
;; CHECK-TEXT-NEXT: )
;; CHECK-TEXT-NEXT: (if
;; CHECK-TEXT-NEXT: (i32.const 1)
- ;; CHECK-TEXT-NEXT: (nop)
- ;; CHECK-TEXT-NEXT: (unreachable)
+ ;; CHECK-TEXT-NEXT: (then
+ ;; CHECK-TEXT-NEXT: (nop)
+ ;; CHECK-TEXT-NEXT: )
+ ;; CHECK-TEXT-NEXT: (else
+ ;; CHECK-TEXT-NEXT: (unreachable)
+ ;; CHECK-TEXT-NEXT: )
;; CHECK-TEXT-NEXT: )
;; CHECK-TEXT-NEXT: (if
;; CHECK-TEXT-NEXT: (i32.const 1)
- ;; CHECK-TEXT-NEXT: (unreachable)
- ;; CHECK-TEXT-NEXT: (unreachable)
+ ;; CHECK-TEXT-NEXT: (then
+ ;; CHECK-TEXT-NEXT: (unreachable)
+ ;; CHECK-TEXT-NEXT: )
+ ;; CHECK-TEXT-NEXT: (else
+ ;; CHECK-TEXT-NEXT: (unreachable)
+ ;; CHECK-TEXT-NEXT: )
;; CHECK-TEXT-NEXT: )
;; CHECK-TEXT-NEXT: )
;; CHECK-BIN: (func $unreachable-ifs (type $FUNCSIG$v)
;; CHECK-BIN-NEXT: (unreachable)
;; CHECK-BIN-NEXT: )
(func $unreachable-ifs
- (if (unreachable) (nop))
- (if (unreachable) (unreachable))
- (if (unreachable) (nop) (nop))
- (if (unreachable) (unreachable) (nop))
- (if (unreachable) (nop) (unreachable))
- (if (unreachable) (unreachable) (unreachable))
+ (if (unreachable) (then (nop)))
+ (if (unreachable) (then (unreachable)))
+ (if (unreachable) (then (nop) )(else (nop)))
+ (if (unreachable) (then (unreachable) )(else (nop)))
+ (if (unreachable) (then (nop) )(else (unreachable)))
+ (if (unreachable) (then (unreachable) )(else (unreachable)))
;;
- (if (i32.const 1) (unreachable) (nop))
- (if (i32.const 1) (nop) (unreachable))
- (if (i32.const 1) (unreachable) (unreachable))
+ (if (i32.const 1) (then (unreachable) )(else (nop)))
+ (if (i32.const 1) (then (nop) )(else (unreachable)))
+ (if (i32.const 1) (then (unreachable) )(else (unreachable)))
)
;; CHECK-TEXT: (func $unreachable-if-arm (type $FUNCSIG$v)
;; CHECK-TEXT-NEXT: (if
;; CHECK-TEXT-NEXT: (i32.const 1)
- ;; CHECK-TEXT-NEXT: (nop)
- ;; CHECK-TEXT-NEXT: (block
+ ;; CHECK-TEXT-NEXT: (then
+ ;; CHECK-TEXT-NEXT: (nop)
+ ;; CHECK-TEXT-NEXT: )
+ ;; CHECK-TEXT-NEXT: (else
;; CHECK-TEXT-NEXT: (unreachable)
;; CHECK-TEXT-NEXT: (drop
;; CHECK-TEXT-NEXT: (i32.const 1)
@@ -1720,20 +1814,28 @@
;; CHECK-BIN: (func $unreachable-if-arm (type $FUNCSIG$v)
;; CHECK-BIN-NEXT: (if
;; CHECK-BIN-NEXT: (i32.const 1)
- ;; CHECK-BIN-NEXT: (nop)
- ;; CHECK-BIN-NEXT: (unreachable)
+ ;; CHECK-BIN-NEXT: (then
+ ;; CHECK-BIN-NEXT: (nop)
+ ;; CHECK-BIN-NEXT: )
+ ;; CHECK-BIN-NEXT: (else
+ ;; CHECK-BIN-NEXT: (unreachable)
+ ;; CHECK-BIN-NEXT: )
;; CHECK-BIN-NEXT: )
;; CHECK-BIN-NEXT: )
(func $unreachable-if-arm
(if
(i32.const 1)
- (block
- (nop)
+ (then
+ (block
+ (nop)
+ )
)
- (block
- (unreachable)
- (drop
- (i32.const 1)
+ (else
+ (block
+ (unreachable)
+ (drop
+ (i32.const 1)
+ )
)
)
)
@@ -1800,8 +1902,10 @@
;; CHECK-BIN-NODEBUG-NEXT: )
;; CHECK-BIN-NODEBUG-NEXT: (i32.const 0)
;; CHECK-BIN-NODEBUG-NEXT: )
-;; CHECK-BIN-NODEBUG-NEXT: (br $label$1
-;; CHECK-BIN-NODEBUG-NEXT: (f64.const -3.4)
+;; CHECK-BIN-NODEBUG-NEXT: (then
+;; CHECK-BIN-NODEBUG-NEXT: (br $label$1
+;; CHECK-BIN-NODEBUG-NEXT: (f64.const -3.4)
+;; CHECK-BIN-NODEBUG-NEXT: )
;; CHECK-BIN-NODEBUG-NEXT: )
;; CHECK-BIN-NODEBUG-NEXT: )
;; CHECK-BIN-NODEBUG-NEXT: (if
@@ -1811,8 +1915,10 @@
;; CHECK-BIN-NODEBUG-NEXT: )
;; CHECK-BIN-NODEBUG-NEXT: (f64.const 0)
;; CHECK-BIN-NODEBUG-NEXT: )
-;; CHECK-BIN-NODEBUG-NEXT: (br $label$1
-;; CHECK-BIN-NODEBUG-NEXT: (f64.const 5.6)
+;; CHECK-BIN-NODEBUG-NEXT: (then
+;; CHECK-BIN-NODEBUG-NEXT: (br $label$1
+;; CHECK-BIN-NODEBUG-NEXT: (f64.const 5.6)
+;; CHECK-BIN-NODEBUG-NEXT: )
;; CHECK-BIN-NODEBUG-NEXT: )
;; CHECK-BIN-NODEBUG-NEXT: )
;; CHECK-BIN-NODEBUG-NEXT: (f64.const 1.2)
@@ -1829,8 +1935,10 @@
;; CHECK-BIN-NODEBUG-NEXT: (local.get $0)
;; CHECK-BIN-NODEBUG-NEXT: (f64.const 0)
;; CHECK-BIN-NODEBUG-NEXT: )
-;; CHECK-BIN-NODEBUG-NEXT: (br $label$1
-;; CHECK-BIN-NODEBUG-NEXT: (f64.const 1.2)
+;; CHECK-BIN-NODEBUG-NEXT: (then
+;; CHECK-BIN-NODEBUG-NEXT: (br $label$1
+;; CHECK-BIN-NODEBUG-NEXT: (f64.const 1.2)
+;; CHECK-BIN-NODEBUG-NEXT: )
;; CHECK-BIN-NODEBUG-NEXT: )
;; CHECK-BIN-NODEBUG-NEXT: )
;; CHECK-BIN-NODEBUG-NEXT: (if
@@ -1838,8 +1946,10 @@
;; CHECK-BIN-NODEBUG-NEXT: (local.get $3)
;; CHECK-BIN-NODEBUG-NEXT: (f64.const 0)
;; CHECK-BIN-NODEBUG-NEXT: )
-;; CHECK-BIN-NODEBUG-NEXT: (br $label$1
-;; CHECK-BIN-NODEBUG-NEXT: (f64.const -3.4)
+;; CHECK-BIN-NODEBUG-NEXT: (then
+;; CHECK-BIN-NODEBUG-NEXT: (br $label$1
+;; CHECK-BIN-NODEBUG-NEXT: (f64.const -3.4)
+;; CHECK-BIN-NODEBUG-NEXT: )
;; CHECK-BIN-NODEBUG-NEXT: )
;; CHECK-BIN-NODEBUG-NEXT: )
;; CHECK-BIN-NODEBUG-NEXT: (if
@@ -1847,8 +1957,10 @@
;; CHECK-BIN-NODEBUG-NEXT: (local.get $4)
;; CHECK-BIN-NODEBUG-NEXT: (i32.const 0)
;; CHECK-BIN-NODEBUG-NEXT: )
-;; CHECK-BIN-NODEBUG-NEXT: (br $label$1
-;; CHECK-BIN-NODEBUG-NEXT: (f64.const 5.6)
+;; CHECK-BIN-NODEBUG-NEXT: (then
+;; CHECK-BIN-NODEBUG-NEXT: (br $label$1
+;; CHECK-BIN-NODEBUG-NEXT: (f64.const 5.6)
+;; CHECK-BIN-NODEBUG-NEXT: )
;; CHECK-BIN-NODEBUG-NEXT: )
;; CHECK-BIN-NODEBUG-NEXT: )
;; CHECK-BIN-NODEBUG-NEXT: (if
@@ -1856,8 +1968,10 @@
;; CHECK-BIN-NODEBUG-NEXT: (local.get $0)
;; CHECK-BIN-NODEBUG-NEXT: (local.get $1)
;; CHECK-BIN-NODEBUG-NEXT: )
-;; CHECK-BIN-NODEBUG-NEXT: (br $label$1
-;; CHECK-BIN-NODEBUG-NEXT: (local.get $0)
+;; CHECK-BIN-NODEBUG-NEXT: (then
+;; CHECK-BIN-NODEBUG-NEXT: (br $label$1
+;; CHECK-BIN-NODEBUG-NEXT: (local.get $0)
+;; CHECK-BIN-NODEBUG-NEXT: )
;; CHECK-BIN-NODEBUG-NEXT: )
;; CHECK-BIN-NODEBUG-NEXT: )
;; CHECK-BIN-NODEBUG-NEXT: (local.get $1)
@@ -2229,11 +2343,15 @@
;; CHECK-BIN-NODEBUG: (func $29 (type $0) (result i32)
;; CHECK-BIN-NODEBUG-NEXT: (if
;; CHECK-BIN-NODEBUG-NEXT: (i32.const 3)
-;; CHECK-BIN-NODEBUG-NEXT: (return
-;; CHECK-BIN-NODEBUG-NEXT: (i32.const 2)
+;; CHECK-BIN-NODEBUG-NEXT: (then
+;; CHECK-BIN-NODEBUG-NEXT: (return
+;; CHECK-BIN-NODEBUG-NEXT: (i32.const 2)
+;; CHECK-BIN-NODEBUG-NEXT: )
;; CHECK-BIN-NODEBUG-NEXT: )
-;; CHECK-BIN-NODEBUG-NEXT: (return
-;; CHECK-BIN-NODEBUG-NEXT: (i32.const 1)
+;; CHECK-BIN-NODEBUG-NEXT: (else
+;; CHECK-BIN-NODEBUG-NEXT: (return
+;; CHECK-BIN-NODEBUG-NEXT: (i32.const 1)
+;; CHECK-BIN-NODEBUG-NEXT: )
;; CHECK-BIN-NODEBUG-NEXT: )
;; CHECK-BIN-NODEBUG-NEXT: )
;; CHECK-BIN-NODEBUG-NEXT: )
@@ -2241,11 +2359,15 @@
;; CHECK-BIN-NODEBUG: (func $30 (type $0) (result i32)
;; CHECK-BIN-NODEBUG-NEXT: (if
;; CHECK-BIN-NODEBUG-NEXT: (i32.const 3)
-;; CHECK-BIN-NODEBUG-NEXT: (return
-;; CHECK-BIN-NODEBUG-NEXT: (i32.const 2)
+;; CHECK-BIN-NODEBUG-NEXT: (then
+;; CHECK-BIN-NODEBUG-NEXT: (return
+;; CHECK-BIN-NODEBUG-NEXT: (i32.const 2)
+;; CHECK-BIN-NODEBUG-NEXT: )
;; CHECK-BIN-NODEBUG-NEXT: )
-;; CHECK-BIN-NODEBUG-NEXT: (return
-;; CHECK-BIN-NODEBUG-NEXT: (i32.const 1)
+;; CHECK-BIN-NODEBUG-NEXT: (else
+;; CHECK-BIN-NODEBUG-NEXT: (return
+;; CHECK-BIN-NODEBUG-NEXT: (i32.const 1)
+;; CHECK-BIN-NODEBUG-NEXT: )
;; CHECK-BIN-NODEBUG-NEXT: )
;; CHECK-BIN-NODEBUG-NEXT: )
;; CHECK-BIN-NODEBUG-NEXT: )
@@ -2291,7 +2413,11 @@
;; CHECK-BIN-NODEBUG: (func $36 (type $1)
;; CHECK-BIN-NODEBUG-NEXT: (if
;; CHECK-BIN-NODEBUG-NEXT: (i32.const 1)
-;; CHECK-BIN-NODEBUG-NEXT: (nop)
-;; CHECK-BIN-NODEBUG-NEXT: (unreachable)
+;; CHECK-BIN-NODEBUG-NEXT: (then
+;; CHECK-BIN-NODEBUG-NEXT: (nop)
+;; CHECK-BIN-NODEBUG-NEXT: )
+;; CHECK-BIN-NODEBUG-NEXT: (else
+;; CHECK-BIN-NODEBUG-NEXT: (unreachable)
+;; CHECK-BIN-NODEBUG-NEXT: )
;; CHECK-BIN-NODEBUG-NEXT: )
;; CHECK-BIN-NODEBUG-NEXT: )
diff --git a/test/lit/basic/unreachable-code.wast b/test/lit/basic/unreachable-code.wast
index 16ec691a5..0dfb00c40 100644
--- a/test/lit/basic/unreachable-code.wast
+++ b/test/lit/basic/unreachable-code.wast
@@ -15,7 +15,9 @@
;; CHECK-TEXT: (func $a (type $0)
;; CHECK-TEXT-NEXT: (if
;; CHECK-TEXT-NEXT: (i32.const 1)
- ;; CHECK-TEXT-NEXT: (unreachable)
+ ;; CHECK-TEXT-NEXT: (then
+ ;; CHECK-TEXT-NEXT: (unreachable)
+ ;; CHECK-TEXT-NEXT: )
;; CHECK-TEXT-NEXT: )
;; CHECK-TEXT-NEXT: )
;; CHECK-BIN: (type $0 (func))
@@ -23,52 +25,74 @@
;; CHECK-BIN: (func $a (type $0)
;; CHECK-BIN-NEXT: (if
;; CHECK-BIN-NEXT: (i32.const 1)
- ;; CHECK-BIN-NEXT: (unreachable)
+ ;; CHECK-BIN-NEXT: (then
+ ;; CHECK-BIN-NEXT: (unreachable)
+ ;; CHECK-BIN-NEXT: )
;; CHECK-BIN-NEXT: )
;; CHECK-BIN-NEXT: )
(func $a
(if (i32.const 1)
- (unreachable)
+ (then
+ (unreachable)
+ )
)
)
;; CHECK-TEXT: (func $b (type $0)
;; CHECK-TEXT-NEXT: (if
;; CHECK-TEXT-NEXT: (i32.const 1)
- ;; CHECK-TEXT-NEXT: (unreachable)
- ;; CHECK-TEXT-NEXT: (unreachable)
+ ;; CHECK-TEXT-NEXT: (then
+ ;; CHECK-TEXT-NEXT: (unreachable)
+ ;; CHECK-TEXT-NEXT: )
+ ;; CHECK-TEXT-NEXT: (else
+ ;; CHECK-TEXT-NEXT: (unreachable)
+ ;; CHECK-TEXT-NEXT: )
;; CHECK-TEXT-NEXT: )
;; CHECK-TEXT-NEXT: )
;; CHECK-BIN: (func $b (type $0)
;; CHECK-BIN-NEXT: (if
;; CHECK-BIN-NEXT: (i32.const 1)
- ;; CHECK-BIN-NEXT: (unreachable)
- ;; CHECK-BIN-NEXT: (unreachable)
+ ;; CHECK-BIN-NEXT: (then
+ ;; CHECK-BIN-NEXT: (unreachable)
+ ;; CHECK-BIN-NEXT: )
+ ;; CHECK-BIN-NEXT: (else
+ ;; CHECK-BIN-NEXT: (unreachable)
+ ;; CHECK-BIN-NEXT: )
;; CHECK-BIN-NEXT: )
;; CHECK-BIN-NEXT: )
(func $b
(if (i32.const 1)
- (unreachable)
- (unreachable)
+ (then
+ (unreachable)
+ )
+ (else
+ (unreachable)
+ )
)
)
;; CHECK-TEXT: (func $a-block (type $0)
;; CHECK-TEXT-NEXT: (if
;; CHECK-TEXT-NEXT: (i32.const 1)
- ;; CHECK-TEXT-NEXT: (unreachable)
+ ;; CHECK-TEXT-NEXT: (then
+ ;; CHECK-TEXT-NEXT: (unreachable)
+ ;; CHECK-TEXT-NEXT: )
;; CHECK-TEXT-NEXT: )
;; CHECK-TEXT-NEXT: )
;; CHECK-BIN: (func $a-block (type $0)
;; CHECK-BIN-NEXT: (if
;; CHECK-BIN-NEXT: (i32.const 1)
- ;; CHECK-BIN-NEXT: (unreachable)
+ ;; CHECK-BIN-NEXT: (then
+ ;; CHECK-BIN-NEXT: (unreachable)
+ ;; CHECK-BIN-NEXT: )
;; CHECK-BIN-NEXT: )
;; CHECK-BIN-NEXT: )
(func $a-block
(block
(if (i32.const 1)
- (unreachable)
+ (then
+ (unreachable)
+ )
)
)
)
@@ -76,22 +100,34 @@
;; CHECK-TEXT: (func $b-block (type $0)
;; CHECK-TEXT-NEXT: (if
;; CHECK-TEXT-NEXT: (i32.const 1)
- ;; CHECK-TEXT-NEXT: (unreachable)
- ;; CHECK-TEXT-NEXT: (unreachable)
+ ;; CHECK-TEXT-NEXT: (then
+ ;; CHECK-TEXT-NEXT: (unreachable)
+ ;; CHECK-TEXT-NEXT: )
+ ;; CHECK-TEXT-NEXT: (else
+ ;; CHECK-TEXT-NEXT: (unreachable)
+ ;; CHECK-TEXT-NEXT: )
;; CHECK-TEXT-NEXT: )
;; CHECK-TEXT-NEXT: )
;; CHECK-BIN: (func $b-block (type $0)
;; CHECK-BIN-NEXT: (if
;; CHECK-BIN-NEXT: (i32.const 1)
- ;; CHECK-BIN-NEXT: (unreachable)
- ;; CHECK-BIN-NEXT: (unreachable)
+ ;; CHECK-BIN-NEXT: (then
+ ;; CHECK-BIN-NEXT: (unreachable)
+ ;; CHECK-BIN-NEXT: )
+ ;; CHECK-BIN-NEXT: (else
+ ;; CHECK-BIN-NEXT: (unreachable)
+ ;; CHECK-BIN-NEXT: )
;; CHECK-BIN-NEXT: )
;; CHECK-BIN-NEXT: )
(func $b-block
(block
(if (i32.const 1)
- (unreachable)
- (unreachable)
+ (then
+ (unreachable)
+ )
+ (else
+ (unreachable)
+ )
)
)
)
@@ -100,7 +136,9 @@
;; CHECK-TEXT-NEXT: (nop)
;; CHECK-TEXT-NEXT: (if
;; CHECK-TEXT-NEXT: (i32.const 1)
- ;; CHECK-TEXT-NEXT: (unreachable)
+ ;; CHECK-TEXT-NEXT: (then
+ ;; CHECK-TEXT-NEXT: (unreachable)
+ ;; CHECK-TEXT-NEXT: )
;; CHECK-TEXT-NEXT: )
;; CHECK-TEXT-NEXT: (nop)
;; CHECK-TEXT-NEXT: )
@@ -108,14 +146,18 @@
;; CHECK-BIN-NEXT: (nop)
;; CHECK-BIN-NEXT: (if
;; CHECK-BIN-NEXT: (i32.const 1)
- ;; CHECK-BIN-NEXT: (unreachable)
+ ;; CHECK-BIN-NEXT: (then
+ ;; CHECK-BIN-NEXT: (unreachable)
+ ;; CHECK-BIN-NEXT: )
;; CHECK-BIN-NEXT: )
;; CHECK-BIN-NEXT: (nop)
;; CHECK-BIN-NEXT: )
(func $a-prepost
(nop)
(if (i32.const 1)
- (unreachable)
+ (then
+ (unreachable)
+ )
)
(nop)
)
@@ -124,8 +166,12 @@
;; CHECK-TEXT-NEXT: (nop)
;; CHECK-TEXT-NEXT: (if
;; CHECK-TEXT-NEXT: (i32.const 1)
- ;; CHECK-TEXT-NEXT: (unreachable)
- ;; CHECK-TEXT-NEXT: (unreachable)
+ ;; CHECK-TEXT-NEXT: (then
+ ;; CHECK-TEXT-NEXT: (unreachable)
+ ;; CHECK-TEXT-NEXT: )
+ ;; CHECK-TEXT-NEXT: (else
+ ;; CHECK-TEXT-NEXT: (unreachable)
+ ;; CHECK-TEXT-NEXT: )
;; CHECK-TEXT-NEXT: )
;; CHECK-TEXT-NEXT: (nop)
;; CHECK-TEXT-NEXT: )
@@ -133,15 +179,23 @@
;; CHECK-BIN-NEXT: (nop)
;; CHECK-BIN-NEXT: (if
;; CHECK-BIN-NEXT: (i32.const 1)
- ;; CHECK-BIN-NEXT: (unreachable)
- ;; CHECK-BIN-NEXT: (unreachable)
+ ;; CHECK-BIN-NEXT: (then
+ ;; CHECK-BIN-NEXT: (unreachable)
+ ;; CHECK-BIN-NEXT: )
+ ;; CHECK-BIN-NEXT: (else
+ ;; CHECK-BIN-NEXT: (unreachable)
+ ;; CHECK-BIN-NEXT: )
;; CHECK-BIN-NEXT: )
;; CHECK-BIN-NEXT: )
(func $b-prepost
(nop)
(if (i32.const 1)
- (unreachable)
- (unreachable)
+ (then
+ (unreachable)
+ )
+ (else
+ (unreachable)
+ )
)
(nop)
)
@@ -151,7 +205,9 @@
;; CHECK-TEXT-NEXT: (block
;; CHECK-TEXT-NEXT: (if
;; CHECK-TEXT-NEXT: (i32.const 1)
- ;; CHECK-TEXT-NEXT: (unreachable)
+ ;; CHECK-TEXT-NEXT: (then
+ ;; CHECK-TEXT-NEXT: (unreachable)
+ ;; CHECK-TEXT-NEXT: )
;; CHECK-TEXT-NEXT: )
;; CHECK-TEXT-NEXT: )
;; CHECK-TEXT-NEXT: (nop)
@@ -160,7 +216,9 @@
;; CHECK-BIN-NEXT: (nop)
;; CHECK-BIN-NEXT: (if
;; CHECK-BIN-NEXT: (i32.const 1)
- ;; CHECK-BIN-NEXT: (unreachable)
+ ;; CHECK-BIN-NEXT: (then
+ ;; CHECK-BIN-NEXT: (unreachable)
+ ;; CHECK-BIN-NEXT: )
;; CHECK-BIN-NEXT: )
;; CHECK-BIN-NEXT: (nop)
;; CHECK-BIN-NEXT: )
@@ -168,7 +226,9 @@
(nop)
(block
(if (i32.const 1)
- (unreachable)
+ (then
+ (unreachable)
+ )
)
)
(nop)
@@ -179,8 +239,12 @@
;; CHECK-TEXT-NEXT: (block
;; CHECK-TEXT-NEXT: (if
;; CHECK-TEXT-NEXT: (i32.const 1)
- ;; CHECK-TEXT-NEXT: (unreachable)
- ;; CHECK-TEXT-NEXT: (unreachable)
+ ;; CHECK-TEXT-NEXT: (then
+ ;; CHECK-TEXT-NEXT: (unreachable)
+ ;; CHECK-TEXT-NEXT: )
+ ;; CHECK-TEXT-NEXT: (else
+ ;; CHECK-TEXT-NEXT: (unreachable)
+ ;; CHECK-TEXT-NEXT: )
;; CHECK-TEXT-NEXT: )
;; CHECK-TEXT-NEXT: )
;; CHECK-TEXT-NEXT: (nop)
@@ -189,16 +253,24 @@
;; CHECK-BIN-NEXT: (nop)
;; CHECK-BIN-NEXT: (if
;; CHECK-BIN-NEXT: (i32.const 1)
- ;; CHECK-BIN-NEXT: (unreachable)
- ;; CHECK-BIN-NEXT: (unreachable)
+ ;; CHECK-BIN-NEXT: (then
+ ;; CHECK-BIN-NEXT: (unreachable)
+ ;; CHECK-BIN-NEXT: )
+ ;; CHECK-BIN-NEXT: (else
+ ;; CHECK-BIN-NEXT: (unreachable)
+ ;; CHECK-BIN-NEXT: )
;; CHECK-BIN-NEXT: )
;; CHECK-BIN-NEXT: )
(func $b-block-prepost
(nop)
(block
(if (i32.const 1)
- (unreachable)
- (unreachable)
+ (then
+ (unreachable)
+ )
+ (else
+ (unreachable)
+ )
)
)
(nop)
@@ -272,30 +344,42 @@
;; CHECK-BIN-NODEBUG: (func $0 (type $0)
;; CHECK-BIN-NODEBUG-NEXT: (if
;; CHECK-BIN-NODEBUG-NEXT: (i32.const 1)
-;; CHECK-BIN-NODEBUG-NEXT: (unreachable)
+;; CHECK-BIN-NODEBUG-NEXT: (then
+;; CHECK-BIN-NODEBUG-NEXT: (unreachable)
+;; CHECK-BIN-NODEBUG-NEXT: )
;; CHECK-BIN-NODEBUG-NEXT: )
;; CHECK-BIN-NODEBUG-NEXT: )
;; CHECK-BIN-NODEBUG: (func $1 (type $0)
;; CHECK-BIN-NODEBUG-NEXT: (if
;; CHECK-BIN-NODEBUG-NEXT: (i32.const 1)
-;; CHECK-BIN-NODEBUG-NEXT: (unreachable)
-;; CHECK-BIN-NODEBUG-NEXT: (unreachable)
+;; CHECK-BIN-NODEBUG-NEXT: (then
+;; CHECK-BIN-NODEBUG-NEXT: (unreachable)
+;; CHECK-BIN-NODEBUG-NEXT: )
+;; CHECK-BIN-NODEBUG-NEXT: (else
+;; CHECK-BIN-NODEBUG-NEXT: (unreachable)
+;; CHECK-BIN-NODEBUG-NEXT: )
;; CHECK-BIN-NODEBUG-NEXT: )
;; CHECK-BIN-NODEBUG-NEXT: )
;; CHECK-BIN-NODEBUG: (func $2 (type $0)
;; CHECK-BIN-NODEBUG-NEXT: (if
;; CHECK-BIN-NODEBUG-NEXT: (i32.const 1)
-;; CHECK-BIN-NODEBUG-NEXT: (unreachable)
+;; CHECK-BIN-NODEBUG-NEXT: (then
+;; CHECK-BIN-NODEBUG-NEXT: (unreachable)
+;; CHECK-BIN-NODEBUG-NEXT: )
;; CHECK-BIN-NODEBUG-NEXT: )
;; CHECK-BIN-NODEBUG-NEXT: )
;; CHECK-BIN-NODEBUG: (func $3 (type $0)
;; CHECK-BIN-NODEBUG-NEXT: (if
;; CHECK-BIN-NODEBUG-NEXT: (i32.const 1)
-;; CHECK-BIN-NODEBUG-NEXT: (unreachable)
-;; CHECK-BIN-NODEBUG-NEXT: (unreachable)
+;; CHECK-BIN-NODEBUG-NEXT: (then
+;; CHECK-BIN-NODEBUG-NEXT: (unreachable)
+;; CHECK-BIN-NODEBUG-NEXT: )
+;; CHECK-BIN-NODEBUG-NEXT: (else
+;; CHECK-BIN-NODEBUG-NEXT: (unreachable)
+;; CHECK-BIN-NODEBUG-NEXT: )
;; CHECK-BIN-NODEBUG-NEXT: )
;; CHECK-BIN-NODEBUG-NEXT: )
@@ -303,7 +387,9 @@
;; CHECK-BIN-NODEBUG-NEXT: (nop)
;; CHECK-BIN-NODEBUG-NEXT: (if
;; CHECK-BIN-NODEBUG-NEXT: (i32.const 1)
-;; CHECK-BIN-NODEBUG-NEXT: (unreachable)
+;; CHECK-BIN-NODEBUG-NEXT: (then
+;; CHECK-BIN-NODEBUG-NEXT: (unreachable)
+;; CHECK-BIN-NODEBUG-NEXT: )
;; CHECK-BIN-NODEBUG-NEXT: )
;; CHECK-BIN-NODEBUG-NEXT: (nop)
;; CHECK-BIN-NODEBUG-NEXT: )
@@ -312,8 +398,12 @@
;; CHECK-BIN-NODEBUG-NEXT: (nop)
;; CHECK-BIN-NODEBUG-NEXT: (if
;; CHECK-BIN-NODEBUG-NEXT: (i32.const 1)
-;; CHECK-BIN-NODEBUG-NEXT: (unreachable)
-;; CHECK-BIN-NODEBUG-NEXT: (unreachable)
+;; CHECK-BIN-NODEBUG-NEXT: (then
+;; CHECK-BIN-NODEBUG-NEXT: (unreachable)
+;; CHECK-BIN-NODEBUG-NEXT: )
+;; CHECK-BIN-NODEBUG-NEXT: (else
+;; CHECK-BIN-NODEBUG-NEXT: (unreachable)
+;; CHECK-BIN-NODEBUG-NEXT: )
;; CHECK-BIN-NODEBUG-NEXT: )
;; CHECK-BIN-NODEBUG-NEXT: )
@@ -321,7 +411,9 @@
;; CHECK-BIN-NODEBUG-NEXT: (nop)
;; CHECK-BIN-NODEBUG-NEXT: (if
;; CHECK-BIN-NODEBUG-NEXT: (i32.const 1)
-;; CHECK-BIN-NODEBUG-NEXT: (unreachable)
+;; CHECK-BIN-NODEBUG-NEXT: (then
+;; CHECK-BIN-NODEBUG-NEXT: (unreachable)
+;; CHECK-BIN-NODEBUG-NEXT: )
;; CHECK-BIN-NODEBUG-NEXT: )
;; CHECK-BIN-NODEBUG-NEXT: (nop)
;; CHECK-BIN-NODEBUG-NEXT: )
@@ -330,8 +422,12 @@
;; CHECK-BIN-NODEBUG-NEXT: (nop)
;; CHECK-BIN-NODEBUG-NEXT: (if
;; CHECK-BIN-NODEBUG-NEXT: (i32.const 1)
-;; CHECK-BIN-NODEBUG-NEXT: (unreachable)
-;; CHECK-BIN-NODEBUG-NEXT: (unreachable)
+;; CHECK-BIN-NODEBUG-NEXT: (then
+;; CHECK-BIN-NODEBUG-NEXT: (unreachable)
+;; CHECK-BIN-NODEBUG-NEXT: )
+;; CHECK-BIN-NODEBUG-NEXT: (else
+;; CHECK-BIN-NODEBUG-NEXT: (unreachable)
+;; CHECK-BIN-NODEBUG-NEXT: )
;; CHECK-BIN-NODEBUG-NEXT: )
;; CHECK-BIN-NODEBUG-NEXT: )
diff --git a/test/lit/basic/untaken-br_if.wast b/test/lit/basic/untaken-br_if.wast
index 23063d796..bf2ad1ce3 100644
--- a/test/lit/basic/untaken-br_if.wast
+++ b/test/lit/basic/untaken-br_if.wast
@@ -15,11 +15,15 @@
;; CHECK-TEXT: (func $binaryify-untaken-br_if (type $0) (result f32)
;; CHECK-TEXT-NEXT: (if (result f32)
;; CHECK-TEXT-NEXT: (i32.const 1)
- ;; CHECK-TEXT-NEXT: (unreachable)
- ;; CHECK-TEXT-NEXT: (block $label$1 (result f32)
- ;; CHECK-TEXT-NEXT: (br_if $label$1
- ;; CHECK-TEXT-NEXT: (f32.const 1)
- ;; CHECK-TEXT-NEXT: (unreachable)
+ ;; CHECK-TEXT-NEXT: (then
+ ;; CHECK-TEXT-NEXT: (unreachable)
+ ;; CHECK-TEXT-NEXT: )
+ ;; CHECK-TEXT-NEXT: (else
+ ;; CHECK-TEXT-NEXT: (block $label$1 (result f32)
+ ;; CHECK-TEXT-NEXT: (br_if $label$1
+ ;; CHECK-TEXT-NEXT: (f32.const 1)
+ ;; CHECK-TEXT-NEXT: (unreachable)
+ ;; CHECK-TEXT-NEXT: )
;; CHECK-TEXT-NEXT: )
;; CHECK-TEXT-NEXT: )
;; CHECK-TEXT-NEXT: )
@@ -29,23 +33,31 @@
;; CHECK-BIN: (func $binaryify-untaken-br_if (type $0) (result f32)
;; CHECK-BIN-NEXT: (if (result f32)
;; CHECK-BIN-NEXT: (i32.const 1)
- ;; CHECK-BIN-NEXT: (unreachable)
- ;; CHECK-BIN-NEXT: (block $label$3 (result f32)
- ;; CHECK-BIN-NEXT: (drop
- ;; CHECK-BIN-NEXT: (f32.const 1)
- ;; CHECK-BIN-NEXT: )
+ ;; CHECK-BIN-NEXT: (then
;; CHECK-BIN-NEXT: (unreachable)
;; CHECK-BIN-NEXT: )
+ ;; CHECK-BIN-NEXT: (else
+ ;; CHECK-BIN-NEXT: (block $label$3 (result f32)
+ ;; CHECK-BIN-NEXT: (drop
+ ;; CHECK-BIN-NEXT: (f32.const 1)
+ ;; CHECK-BIN-NEXT: )
+ ;; CHECK-BIN-NEXT: (unreachable)
+ ;; CHECK-BIN-NEXT: )
+ ;; CHECK-BIN-NEXT: )
;; CHECK-BIN-NEXT: )
;; CHECK-BIN-NEXT: )
(func $binaryify-untaken-br_if (result f32)
(if (result f32)
(i32.const 1)
- (unreachable)
- (block $label$1 (result f32)
- (br_if $label$1
- (f32.const 1)
- (unreachable)
+ (then
+ (unreachable)
+ )
+ (else
+ (block $label$1 (result f32)
+ (br_if $label$1
+ (f32.const 1)
+ (unreachable)
+ )
)
)
)
@@ -56,12 +68,16 @@
;; CHECK-BIN-NODEBUG: (func $0 (type $0) (result f32)
;; CHECK-BIN-NODEBUG-NEXT: (if (result f32)
;; CHECK-BIN-NODEBUG-NEXT: (i32.const 1)
-;; CHECK-BIN-NODEBUG-NEXT: (unreachable)
-;; CHECK-BIN-NODEBUG-NEXT: (block $label$3 (result f32)
-;; CHECK-BIN-NODEBUG-NEXT: (drop
-;; CHECK-BIN-NODEBUG-NEXT: (f32.const 1)
-;; CHECK-BIN-NODEBUG-NEXT: )
+;; CHECK-BIN-NODEBUG-NEXT: (then
;; CHECK-BIN-NODEBUG-NEXT: (unreachable)
;; CHECK-BIN-NODEBUG-NEXT: )
+;; CHECK-BIN-NODEBUG-NEXT: (else
+;; CHECK-BIN-NODEBUG-NEXT: (block $label$3 (result f32)
+;; CHECK-BIN-NODEBUG-NEXT: (drop
+;; CHECK-BIN-NODEBUG-NEXT: (f32.const 1)
+;; CHECK-BIN-NODEBUG-NEXT: )
+;; CHECK-BIN-NODEBUG-NEXT: (unreachable)
+;; CHECK-BIN-NODEBUG-NEXT: )
+;; CHECK-BIN-NODEBUG-NEXT: )
;; CHECK-BIN-NODEBUG-NEXT: )
;; CHECK-BIN-NODEBUG-NEXT: )