summaryrefslogtreecommitdiff
path: root/test/lit/passes/once-reduction.wast
diff options
context:
space:
mode:
Diffstat (limited to 'test/lit/passes/once-reduction.wast')
-rw-r--r--test/lit/passes/once-reduction.wast444
1 files changed, 329 insertions, 115 deletions
diff --git a/test/lit/passes/once-reduction.wast b/test/lit/passes/once-reduction.wast
index 45170a0e1..af9f4f113 100644
--- a/test/lit/passes/once-reduction.wast
+++ b/test/lit/passes/once-reduction.wast
@@ -14,7 +14,9 @@
;; A minimal "once" function. It is so trivial we can remove its body.
(if
(global.get $once)
- (return)
+ (then
+ (return)
+ )
)
(global.set $once (i32.const 1))
)
@@ -40,7 +42,9 @@
;; CHECK: (func $once (type $0)
;; CHECK-NEXT: (if
;; CHECK-NEXT: (global.get $once)
- ;; CHECK-NEXT: (return)
+ ;; CHECK-NEXT: (then
+ ;; CHECK-NEXT: (return)
+ ;; CHECK-NEXT: )
;; CHECK-NEXT: )
;; CHECK-NEXT: (global.set $once
;; CHECK-NEXT: (i32.const 1)
@@ -52,7 +56,9 @@
(func $once
(if
(global.get $once)
- (return)
+ (then
+ (return)
+ )
)
(global.set $once (i32.const 1))
;; Add some more content in the function.
@@ -62,7 +68,7 @@
;; CHECK: (func $caller-if-1 (type $0)
;; CHECK-NEXT: (if
;; CHECK-NEXT: (i32.const 1)
- ;; CHECK-NEXT: (block
+ ;; CHECK-NEXT: (then
;; CHECK-NEXT: (call $once)
;; CHECK-NEXT: (nop)
;; CHECK-NEXT: (nop)
@@ -76,11 +82,13 @@
;; Add more calls, and ones that are conditional.
(if
(i32.const 1)
- (block
- (call $once)
- (call $once)
- (call $once)
- (call $once)
+ (then
+ (block
+ (call $once)
+ (call $once)
+ (call $once)
+ (call $once)
+ )
)
)
(call $once)
@@ -90,8 +98,10 @@
;; CHECK: (func $caller-if-2 (type $0)
;; CHECK-NEXT: (if
;; CHECK-NEXT: (i32.const 1)
- ;; CHECK-NEXT: (call $once)
- ;; CHECK-NEXT: (block
+ ;; CHECK-NEXT: (then
+ ;; CHECK-NEXT: (call $once)
+ ;; CHECK-NEXT: )
+ ;; CHECK-NEXT: (else
;; CHECK-NEXT: (call $once)
;; CHECK-NEXT: (nop)
;; CHECK-NEXT: )
@@ -104,11 +114,15 @@
;; call after the if is *not* optimized.
(if
(i32.const 1)
- (call $once)
- (block
- (call $once)
+ (then
(call $once)
)
+ (else
+ (block
+ (call $once)
+ (call $once)
+ )
+ )
)
(call $once)
(call $once)
@@ -118,7 +132,9 @@
;; CHECK-NEXT: (loop $loop
;; CHECK-NEXT: (if
;; CHECK-NEXT: (i32.const 1)
- ;; CHECK-NEXT: (call $once)
+ ;; CHECK-NEXT: (then
+ ;; CHECK-NEXT: (call $once)
+ ;; CHECK-NEXT: )
;; CHECK-NEXT: )
;; CHECK-NEXT: (call $once)
;; CHECK-NEXT: (nop)
@@ -134,7 +150,9 @@
(loop $loop
(if
(i32.const 1)
- (call $once)
+ (then
+ (call $once)
+ )
)
(call $once)
(call $once)
@@ -148,7 +166,9 @@
;; CHECK-NEXT: (loop $loop
;; CHECK-NEXT: (if
;; CHECK-NEXT: (i32.const 1)
- ;; CHECK-NEXT: (call $once)
+ ;; CHECK-NEXT: (then
+ ;; CHECK-NEXT: (call $once)
+ ;; CHECK-NEXT: )
;; CHECK-NEXT: )
;; CHECK-NEXT: (br_if $loop
;; CHECK-NEXT: (i32.const 1)
@@ -162,7 +182,9 @@
(loop $loop
(if
(i32.const 1)
- (call $once)
+ (then
+ (call $once)
+ )
)
(br_if $loop (i32.const 1))
)
@@ -202,7 +224,9 @@
;; CHECK: (func $once (type $0)
;; CHECK-NEXT: (if
;; CHECK-NEXT: (global.get $once)
- ;; CHECK-NEXT: (return)
+ ;; CHECK-NEXT: (then
+ ;; CHECK-NEXT: (return)
+ ;; CHECK-NEXT: )
;; CHECK-NEXT: )
;; CHECK-NEXT: (global.set $once
;; CHECK-NEXT: (i32.const 1)
@@ -212,7 +236,9 @@
(func $once
(if
(global.get $once)
- (return)
+ (then
+ (return)
+ )
)
(global.set $once (i32.const 1))
(call $foo)
@@ -243,7 +269,9 @@
;; CHECK-NEXT: (nop)
;; CHECK-NEXT: (if
;; CHECK-NEXT: (global.get $once)
- ;; CHECK-NEXT: (return)
+ ;; CHECK-NEXT: (then
+ ;; CHECK-NEXT: (return)
+ ;; CHECK-NEXT: )
;; CHECK-NEXT: )
;; CHECK-NEXT: (global.set $once
;; CHECK-NEXT: (i32.const 1)
@@ -254,7 +282,9 @@
(nop)
(if
(global.get $once)
- (return)
+ (then
+ (return)
+ )
)
(global.set $once (i32.const 1))
(call $foo)
@@ -283,7 +313,9 @@
;; CHECK: (func $once (type $0)
;; CHECK-NEXT: (if
;; CHECK-NEXT: (global.get $once)
- ;; CHECK-NEXT: (return)
+ ;; CHECK-NEXT: (then
+ ;; CHECK-NEXT: (return)
+ ;; CHECK-NEXT: )
;; CHECK-NEXT: )
;; CHECK-NEXT: (nop)
;; CHECK-NEXT: (global.set $once
@@ -294,7 +326,9 @@
(func $once
(if
(global.get $once)
- (return)
+ (then
+ (return)
+ )
)
(nop)
(global.set $once (i32.const 1))
@@ -324,8 +358,12 @@
;; CHECK: (func $once (type $0)
;; CHECK-NEXT: (if
;; CHECK-NEXT: (global.get $once)
- ;; CHECK-NEXT: (return)
- ;; CHECK-NEXT: (call $foo)
+ ;; CHECK-NEXT: (then
+ ;; CHECK-NEXT: (return)
+ ;; CHECK-NEXT: )
+ ;; CHECK-NEXT: (else
+ ;; CHECK-NEXT: (call $foo)
+ ;; CHECK-NEXT: )
;; CHECK-NEXT: )
;; CHECK-NEXT: (global.set $once
;; CHECK-NEXT: (i32.const 1)
@@ -335,8 +373,12 @@
(func $once
(if
(global.get $once)
- (return)
- (call $foo)
+ (then
+ (return)
+ )
+ (else
+ (call $foo)
+ )
)
(global.set $once (i32.const 1))
(call $foo)
@@ -364,7 +406,9 @@
;; CHECK: (func $once (type $0)
;; CHECK-NEXT: (if
;; CHECK-NEXT: (global.get $once1)
- ;; CHECK-NEXT: (return)
+ ;; CHECK-NEXT: (then
+ ;; CHECK-NEXT: (return)
+ ;; CHECK-NEXT: )
;; CHECK-NEXT: )
;; CHECK-NEXT: (global.set $once2
;; CHECK-NEXT: (i32.const 1)
@@ -373,7 +417,9 @@
(func $once
(if
(global.get $once1)
- (return)
+ (then
+ (return)
+ )
)
(global.set $once2 (i32.const 1))
)
@@ -398,7 +444,9 @@
;; CHECK: (func $once (type $0)
;; CHECK-NEXT: (if
;; CHECK-NEXT: (global.get $once)
- ;; CHECK-NEXT: (return)
+ ;; CHECK-NEXT: (then
+ ;; CHECK-NEXT: (return)
+ ;; CHECK-NEXT: )
;; CHECK-NEXT: )
;; CHECK-NEXT: (global.set $once
;; CHECK-NEXT: (i32.const 0)
@@ -407,7 +455,9 @@
(func $once
(if
(global.get $once)
- (return)
+ (then
+ (return)
+ )
)
(global.set $once (i32.const 0))
)
@@ -432,7 +482,9 @@
;; CHECK: (func $once (type $0)
;; CHECK-NEXT: (if
;; CHECK-NEXT: (global.get $once)
- ;; CHECK-NEXT: (return)
+ ;; CHECK-NEXT: (then
+ ;; CHECK-NEXT: (return)
+ ;; CHECK-NEXT: )
;; CHECK-NEXT: )
;; CHECK-NEXT: (global.set $once
;; CHECK-NEXT: (i32.const 1)
@@ -441,7 +493,9 @@
(func $once
(if
(global.get $once)
- (return)
+ (then
+ (return)
+ )
)
(global.set $once (i32.const 1))
)
@@ -475,7 +529,9 @@
(func $once
(if
(global.get $once)
- (return)
+ (then
+ (return)
+ )
)
(global.set $once (i32.const 42))
)
@@ -517,7 +573,9 @@
;; CHECK: (func $once (type $0)
;; CHECK-NEXT: (if
;; CHECK-NEXT: (global.get $once)
- ;; CHECK-NEXT: (return)
+ ;; CHECK-NEXT: (then
+ ;; CHECK-NEXT: (return)
+ ;; CHECK-NEXT: )
;; CHECK-NEXT: )
;; CHECK-NEXT: (global.set $once
;; CHECK-NEXT: (i32.const 1)
@@ -527,7 +585,9 @@
(func $once
(if
(global.get $once)
- (return)
+ (then
+ (return)
+ )
)
(global.set $once (i32.const 1))
(call $once)
@@ -546,7 +606,9 @@
;; CHECK-NEXT: (i32.trunc_f64_s
;; CHECK-NEXT: (global.get $once)
;; CHECK-NEXT: )
- ;; CHECK-NEXT: (return)
+ ;; CHECK-NEXT: (then
+ ;; CHECK-NEXT: (return)
+ ;; CHECK-NEXT: )
;; CHECK-NEXT: )
;; CHECK-NEXT: (global.set $once
;; CHECK-NEXT: (f64.const 1)
@@ -558,7 +620,9 @@
(i32.trunc_f64_s
(global.get $once)
)
- (return)
+ (then
+ (return)
+ )
)
(global.set $once (f64.const 1))
)
@@ -592,7 +656,9 @@
(func $once
(if
(global.get $once)
- (return)
+ (then
+ (return)
+ )
)
(global.set $once (i32.const 1))
)
@@ -617,7 +683,9 @@
;; CHECK: (func $once (type $0)
;; CHECK-NEXT: (if
;; CHECK-NEXT: (global.get $once)
- ;; CHECK-NEXT: (return)
+ ;; CHECK-NEXT: (then
+ ;; CHECK-NEXT: (return)
+ ;; CHECK-NEXT: )
;; CHECK-NEXT: )
;; CHECK-NEXT: (global.set $once
;; CHECK-NEXT: (i32.eqz
@@ -630,7 +698,9 @@
(func $once
(if
(global.get $once)
- (return)
+ (then
+ (return)
+ )
)
(global.set $once (i32.eqz (i32.eqz (i32.const 1))))
)
@@ -657,7 +727,9 @@
;; CHECK: (func $once (type $0) (param $x i32)
;; CHECK-NEXT: (if
;; CHECK-NEXT: (global.get $once)
- ;; CHECK-NEXT: (return)
+ ;; CHECK-NEXT: (then
+ ;; CHECK-NEXT: (return)
+ ;; CHECK-NEXT: )
;; CHECK-NEXT: )
;; CHECK-NEXT: (global.set $once
;; CHECK-NEXT: (i32.const 1)
@@ -666,7 +738,9 @@
(func $once (param $x i32)
(if
(global.get $once)
- (return)
+ (then
+ (return)
+ )
)
(global.set $once (i32.const 1))
)
@@ -697,8 +771,10 @@
;; CHECK: (func $once (type $0) (result i32)
;; CHECK-NEXT: (if
;; CHECK-NEXT: (global.get $once)
- ;; CHECK-NEXT: (return
- ;; CHECK-NEXT: (i32.const 2)
+ ;; CHECK-NEXT: (then
+ ;; CHECK-NEXT: (return
+ ;; CHECK-NEXT: (i32.const 2)
+ ;; CHECK-NEXT: )
;; CHECK-NEXT: )
;; CHECK-NEXT: )
;; CHECK-NEXT: (global.set $once
@@ -709,7 +785,9 @@
(func $once (result i32)
(if
(global.get $once)
- (return (i32.const 2))
+ (then
+ (return (i32.const 2))
+ )
)
(global.set $once (i32.const 1))
(i32.const 3)
@@ -740,7 +818,9 @@
;; CHECK-NEXT: (loop $loop
;; CHECK-NEXT: (if
;; CHECK-NEXT: (global.get $once)
- ;; CHECK-NEXT: (return)
+ ;; CHECK-NEXT: (then
+ ;; CHECK-NEXT: (return)
+ ;; CHECK-NEXT: )
;; CHECK-NEXT: )
;; CHECK-NEXT: (global.set $once
;; CHECK-NEXT: (i32.const 1)
@@ -751,7 +831,9 @@
(loop $loop
(if
(global.get $once)
- (return)
+ (then
+ (return)
+ )
)
(global.set $once (i32.const 1))
)
@@ -777,13 +859,17 @@
;; CHECK: (func $once (type $0)
;; CHECK-NEXT: (if
;; CHECK-NEXT: (global.get $once)
- ;; CHECK-NEXT: (return)
+ ;; CHECK-NEXT: (then
+ ;; CHECK-NEXT: (return)
+ ;; CHECK-NEXT: )
;; CHECK-NEXT: )
;; CHECK-NEXT: )
(func $once
(if
(global.get $once)
- (return)
+ (then
+ (return)
+ )
)
)
@@ -807,7 +893,9 @@
;; CHECK: (func $once (type $0)
;; CHECK-NEXT: (if
;; CHECK-NEXT: (global.get $once)
- ;; CHECK-NEXT: (return)
+ ;; CHECK-NEXT: (then
+ ;; CHECK-NEXT: (return)
+ ;; CHECK-NEXT: )
;; CHECK-NEXT: )
;; CHECK-NEXT: (global.set $once
;; CHECK-NEXT: (i32.const 1)
@@ -816,7 +904,9 @@
(func $once
(if
(global.get $once)
- (return)
+ (then
+ (return)
+ )
)
(global.set $once (i32.const 1))
)
@@ -845,7 +935,9 @@
;; CHECK: (func $once (type $0)
;; CHECK-NEXT: (if
;; CHECK-NEXT: (global.get $once)
- ;; CHECK-NEXT: (return)
+ ;; CHECK-NEXT: (then
+ ;; CHECK-NEXT: (return)
+ ;; CHECK-NEXT: )
;; CHECK-NEXT: )
;; CHECK-NEXT: (global.set $once
;; CHECK-NEXT: (i32.const 1)
@@ -857,7 +949,9 @@
(func $once
(if
(global.get $once)
- (return)
+ (then
+ (return)
+ )
)
(global.set $once (i32.const 1))
(drop (global.get $once))
@@ -887,7 +981,9 @@
(func $once
(if
(global.get $once)
- (return)
+ (then
+ (return)
+ )
)
(global.set $once (i32.const 1))
)
@@ -921,7 +1017,9 @@
(func $once
(if
(global.get $once)
- (return)
+ (then
+ (return)
+ )
)
(global.set $once (i32.const 1))
)
@@ -929,53 +1027,79 @@
;; CHECK: (func $caller (type $0)
;; CHECK-NEXT: (if
;; CHECK-NEXT: (i32.const 1)
- ;; CHECK-NEXT: (call $once)
+ ;; CHECK-NEXT: (then
+ ;; CHECK-NEXT: (call $once)
+ ;; CHECK-NEXT: )
;; CHECK-NEXT: )
;; CHECK-NEXT: (if
;; CHECK-NEXT: (i32.const 1)
- ;; CHECK-NEXT: (call $once)
+ ;; CHECK-NEXT: (then
+ ;; CHECK-NEXT: (call $once)
+ ;; CHECK-NEXT: )
;; CHECK-NEXT: )
;; CHECK-NEXT: (if
;; CHECK-NEXT: (i32.const 1)
- ;; CHECK-NEXT: (call $once)
+ ;; CHECK-NEXT: (then
+ ;; CHECK-NEXT: (call $once)
+ ;; CHECK-NEXT: )
;; CHECK-NEXT: )
;; CHECK-NEXT: (call $once)
;; CHECK-NEXT: (if
;; CHECK-NEXT: (i32.const 1)
- ;; CHECK-NEXT: (nop)
+ ;; CHECK-NEXT: (then
+ ;; CHECK-NEXT: (nop)
+ ;; CHECK-NEXT: )
;; CHECK-NEXT: )
;; CHECK-NEXT: (nop)
;; CHECK-NEXT: (if
;; CHECK-NEXT: (i32.const 1)
- ;; CHECK-NEXT: (nop)
- ;; CHECK-NEXT: (nop)
+ ;; CHECK-NEXT: (then
+ ;; CHECK-NEXT: (nop)
+ ;; CHECK-NEXT: )
+ ;; CHECK-NEXT: (else
+ ;; CHECK-NEXT: (nop)
+ ;; CHECK-NEXT: )
;; CHECK-NEXT: )
;; CHECK-NEXT: (nop)
;; CHECK-NEXT: (if
;; CHECK-NEXT: (i32.const 1)
- ;; CHECK-NEXT: (nop)
- ;; CHECK-NEXT: (nop)
+ ;; CHECK-NEXT: (then
+ ;; CHECK-NEXT: (nop)
+ ;; CHECK-NEXT: )
+ ;; CHECK-NEXT: (else
+ ;; CHECK-NEXT: (nop)
+ ;; CHECK-NEXT: )
;; CHECK-NEXT: )
;; CHECK-NEXT: (nop)
;; CHECK-NEXT: (if
;; CHECK-NEXT: (i32.const 1)
- ;; CHECK-NEXT: (nop)
+ ;; CHECK-NEXT: (then
+ ;; CHECK-NEXT: (nop)
+ ;; CHECK-NEXT: )
;; CHECK-NEXT: )
;; CHECK-NEXT: (nop)
;; CHECK-NEXT: (if
;; CHECK-NEXT: (i32.const 1)
- ;; CHECK-NEXT: (nop)
- ;; CHECK-NEXT: (nop)
+ ;; CHECK-NEXT: (then
+ ;; CHECK-NEXT: (nop)
+ ;; CHECK-NEXT: )
+ ;; CHECK-NEXT: (else
+ ;; CHECK-NEXT: (nop)
+ ;; CHECK-NEXT: )
;; CHECK-NEXT: )
;; CHECK-NEXT: (nop)
;; CHECK-NEXT: (if
;; CHECK-NEXT: (i32.const 1)
- ;; CHECK-NEXT: (nop)
+ ;; CHECK-NEXT: (then
+ ;; CHECK-NEXT: (nop)
+ ;; CHECK-NEXT: )
;; CHECK-NEXT: )
;; CHECK-NEXT: (nop)
;; CHECK-NEXT: (if
;; CHECK-NEXT: (i32.const 1)
- ;; CHECK-NEXT: (nop)
+ ;; CHECK-NEXT: (then
+ ;; CHECK-NEXT: (nop)
+ ;; CHECK-NEXT: )
;; CHECK-NEXT: )
;; CHECK-NEXT: (nop)
;; CHECK-NEXT: (nop)
@@ -983,53 +1107,79 @@
(func $caller
(if
(i32.const 1)
- (call $once)
+ (then
+ (call $once)
+ )
)
(if
(i32.const 1)
- (call $once)
+ (then
+ (call $once)
+ )
)
(if
(i32.const 1)
- (call $once)
+ (then
+ (call $once)
+ )
)
(call $once)
(if
(i32.const 1)
- (call $once)
+ (then
+ (call $once)
+ )
)
(call $once)
(if
(i32.const 1)
- (nop)
- (nop)
+ (then
+ (nop)
+ )
+ (else
+ (nop)
+ )
)
(call $once)
(if
(i32.const 1)
- (nop)
- (call $once)
+ (then
+ (nop)
+ )
+ (else
+ (call $once)
+ )
)
(call $once)
(if
(i32.const 1)
- (call $once)
+ (then
+ (call $once)
+ )
)
(call $once)
(if
(i32.const 1)
- (nop)
- (call $once)
+ (then
+ (nop)
+ )
+ (else
+ (call $once)
+ )
)
(call $once)
(if
(i32.const 1)
- (call $once)
+ (then
+ (call $once)
+ )
)
(call $once)
(if
(i32.const 1)
- (call $once)
+ (then
+ (call $once)
+ )
)
(call $once)
(call $once)
@@ -1056,7 +1206,9 @@
(func $once
(if
(global.get $once)
- (return)
+ (then
+ (return)
+ )
)
(global.set $once (i32.const 1))
)
@@ -1066,7 +1218,9 @@
;; CHECK-NEXT: (do
;; CHECK-NEXT: (if
;; CHECK-NEXT: (i32.const 1)
- ;; CHECK-NEXT: (call $once)
+ ;; CHECK-NEXT: (then
+ ;; CHECK-NEXT: (call $once)
+ ;; CHECK-NEXT: )
;; CHECK-NEXT: )
;; CHECK-NEXT: )
;; CHECK-NEXT: (catch $tag
@@ -1081,7 +1235,9 @@
(do
(if
(i32.const 1)
- (call $once)
+ (then
+ (call $once)
+ )
)
)
(catch $tag
@@ -1111,7 +1267,9 @@
;; CHECK: (func $once1 (type $0)
;; CHECK-NEXT: (if
;; CHECK-NEXT: (global.get $once1)
- ;; CHECK-NEXT: (return)
+ ;; CHECK-NEXT: (then
+ ;; CHECK-NEXT: (return)
+ ;; CHECK-NEXT: )
;; CHECK-NEXT: )
;; CHECK-NEXT: (global.set $once1
;; CHECK-NEXT: (i32.const 1)
@@ -1128,7 +1286,9 @@
(func $once1
(if
(global.get $once1)
- (return)
+ (then
+ (return)
+ )
)
(global.set $once1 (i32.const 1))
(call $once1)
@@ -1144,7 +1304,9 @@
;; CHECK: (func $many1 (type $0)
;; CHECK-NEXT: (if
;; CHECK-NEXT: (global.get $many1)
- ;; CHECK-NEXT: (return)
+ ;; CHECK-NEXT: (then
+ ;; CHECK-NEXT: (return)
+ ;; CHECK-NEXT: )
;; CHECK-NEXT: )
;; CHECK-NEXT: (global.set $many1
;; CHECK-NEXT: (i32.const 0)
@@ -1161,7 +1323,9 @@
(func $many1
(if
(global.get $many1)
- (return)
+ (then
+ (return)
+ )
)
(global.set $many1 (i32.const 0)) ;; prevent this global being "once"
(call $many2)
@@ -1177,7 +1341,9 @@
;; CHECK: (func $once2 (type $0)
;; CHECK-NEXT: (if
;; CHECK-NEXT: (global.get $once2)
- ;; CHECK-NEXT: (return)
+ ;; CHECK-NEXT: (then
+ ;; CHECK-NEXT: (return)
+ ;; CHECK-NEXT: )
;; CHECK-NEXT: )
;; CHECK-NEXT: (global.set $once2
;; CHECK-NEXT: (i32.const 2)
@@ -1194,7 +1360,9 @@
(func $once2
(if
(global.get $once2)
- (return)
+ (then
+ (return)
+ )
)
(global.set $once2 (i32.const 2))
(call $once2)
@@ -1210,7 +1378,9 @@
;; CHECK: (func $many2 (type $0)
;; CHECK-NEXT: (if
;; CHECK-NEXT: (global.get $many2)
- ;; CHECK-NEXT: (return)
+ ;; CHECK-NEXT: (then
+ ;; CHECK-NEXT: (return)
+ ;; CHECK-NEXT: )
;; CHECK-NEXT: )
;; CHECK-NEXT: (global.set $many1
;; CHECK-NEXT: (i32.const 0)
@@ -1227,7 +1397,9 @@
(func $many2
(if
(global.get $many2)
- (return)
+ (then
+ (return)
+ )
)
(global.set $many1 (i32.const 0))
(call $many1)
@@ -1256,7 +1428,9 @@
(func $once
(if
(global.get $once)
- (return)
+ (then
+ (return)
+ )
)
(global.set $once (i32.const 1))
)
@@ -1324,7 +1498,9 @@
;; CHECK: (func $once (type $0)
;; CHECK-NEXT: (if
;; CHECK-NEXT: (global.get $once)
- ;; CHECK-NEXT: (return)
+ ;; CHECK-NEXT: (then
+ ;; CHECK-NEXT: (return)
+ ;; CHECK-NEXT: )
;; CHECK-NEXT: )
;; CHECK-NEXT: (global.set $once
;; CHECK-NEXT: (i32.const 1)
@@ -1333,7 +1509,9 @@
(func $once
(if
(global.get $once)
- (return)
+ (then
+ (return)
+ )
)
(global.set $once (i32.const 1))
)
@@ -1362,7 +1540,9 @@
;; CHECK: (func $once (type $0)
;; CHECK-NEXT: (if
;; CHECK-NEXT: (global.get $once)
- ;; CHECK-NEXT: (return)
+ ;; CHECK-NEXT: (then
+ ;; CHECK-NEXT: (return)
+ ;; CHECK-NEXT: )
;; CHECK-NEXT: )
;; CHECK-NEXT: (global.set $once
;; CHECK-NEXT: (i32.const 1)
@@ -1371,7 +1551,9 @@
(func $once
(if
(global.get $once)
- (return)
+ (then
+ (return)
+ )
)
(global.set $once (i32.const 1))
)
@@ -1406,7 +1588,9 @@
;; two lines here (the early-exit logic).
(if
(global.get $once)
- (return)
+ (then
+ (return)
+ )
)
(global.set $once (i32.const 1))
(call $once.1)
@@ -1420,7 +1604,9 @@
;; out.
(if
(global.get $once.1)
- (return)
+ (then
+ (return)
+ )
)
(global.set $once.1 (i32.const 1))
)
@@ -1501,7 +1687,9 @@
;; logic.
(if
(global.get $once)
- (return)
+ (then
+ (return)
+ )
)
(global.set $once (i32.const 1))
(call $once.1)
@@ -1510,7 +1698,9 @@
;; CHECK: (func $once.1 (type $0)
;; CHECK-NEXT: (if
;; CHECK-NEXT: (global.get $once.1)
- ;; CHECK-NEXT: (return)
+ ;; CHECK-NEXT: (then
+ ;; CHECK-NEXT: (return)
+ ;; CHECK-NEXT: )
;; CHECK-NEXT: )
;; CHECK-NEXT: (global.set $once.1
;; CHECK-NEXT: (i32.const 1)
@@ -1523,7 +1713,9 @@
;; cannot do so here (it would risk an infinite loop).
(if
(global.get $once.1)
- (return)
+ (then
+ (return)
+ )
)
(global.set $once.1 (i32.const 1))
(call $once) ;; This call was added.
@@ -1593,7 +1785,9 @@
;; CHECK: (func $once (type $0)
;; CHECK-NEXT: (if
;; CHECK-NEXT: (global.get $once)
- ;; CHECK-NEXT: (return)
+ ;; CHECK-NEXT: (then
+ ;; CHECK-NEXT: (return)
+ ;; CHECK-NEXT: )
;; CHECK-NEXT: )
;; CHECK-NEXT: (global.set $once
;; CHECK-NEXT: (i32.const 1)
@@ -1607,7 +1801,9 @@
(func $once
(if
(global.get $once)
- (return)
+ (then
+ (return)
+ )
)
(global.set $once (i32.const 1))
(call $once.1)
@@ -1634,7 +1830,9 @@
;; CHECK: (func $once.1 (type $0)
;; CHECK-NEXT: (if
;; CHECK-NEXT: (global.get $once.1)
- ;; CHECK-NEXT: (return)
+ ;; CHECK-NEXT: (then
+ ;; CHECK-NEXT: (return)
+ ;; CHECK-NEXT: )
;; CHECK-NEXT: )
;; CHECK-NEXT: (global.set $once.1
;; CHECK-NEXT: (i32.const 1)
@@ -1648,7 +1846,9 @@
(func $once.1
(if
(global.get $once.1)
- (return)
+ (then
+ (return)
+ )
)
(global.set $once.1 (i32.const 1))
(call $once)
@@ -1662,7 +1862,9 @@
;; CHECK: (func $once.2 (type $0)
;; CHECK-NEXT: (if
;; CHECK-NEXT: (global.get $once.2)
- ;; CHECK-NEXT: (return)
+ ;; CHECK-NEXT: (then
+ ;; CHECK-NEXT: (return)
+ ;; CHECK-NEXT: )
;; CHECK-NEXT: )
;; CHECK-NEXT: (global.set $once.2
;; CHECK-NEXT: (i32.const 1)
@@ -1676,7 +1878,9 @@
(func $once.2
(if
(global.get $once.2)
- (return)
+ (then
+ (return)
+ )
)
(global.set $once.2 (i32.const 1))
(call $once)
@@ -1699,7 +1903,9 @@
;; CHECK: (func $once (type $0)
;; CHECK-NEXT: (if
;; CHECK-NEXT: (global.get $once)
- ;; CHECK-NEXT: (return)
+ ;; CHECK-NEXT: (then
+ ;; CHECK-NEXT: (return)
+ ;; CHECK-NEXT: )
;; CHECK-NEXT: )
;; CHECK-NEXT: (global.set $once
;; CHECK-NEXT: (i32.const 1)
@@ -1709,7 +1915,9 @@
(func $once
(if
(global.get $once)
- (return)
+ (then
+ (return)
+ )
)
(global.set $once (i32.const 1))
;; A recursive call. This of course does not recurse infinitely since the
@@ -1743,7 +1951,9 @@
;; A minimal "once" function.
(if
(global.get $once)
- (return)
+ (then
+ (return)
+ )
)
(global.set $once (i32.const 1))
)
@@ -1789,7 +1999,9 @@
;; CHECK: (func $once (type $0)
;; CHECK-NEXT: (if
;; CHECK-NEXT: (global.get $once)
- ;; CHECK-NEXT: (return)
+ ;; CHECK-NEXT: (then
+ ;; CHECK-NEXT: (return)
+ ;; CHECK-NEXT: )
;; CHECK-NEXT: )
;; CHECK-NEXT: (global.set $once
;; CHECK-NEXT: (i32.const 1)
@@ -1800,7 +2012,9 @@
;; We should not remove this early-exit logic.
(if
(global.get $once)
- (return)
+ (then
+ (return)
+ )
)
(global.set $once (i32.const 1))
;; A call to a non-"once" function.