summaryrefslogtreecommitdiff
path: root/test/passes/flatten_rereloop.txt
diff options
context:
space:
mode:
Diffstat (limited to 'test/passes/flatten_rereloop.txt')
-rw-r--r--test/passes/flatten_rereloop.txt789
1 files changed, 789 insertions, 0 deletions
diff --git a/test/passes/flatten_rereloop.txt b/test/passes/flatten_rereloop.txt
index 162336420..de2b3bbea 100644
--- a/test/passes/flatten_rereloop.txt
+++ b/test/passes/flatten_rereloop.txt
@@ -391,3 +391,792 @@
)
)
)
+(module
+ (type $0 (func))
+ (type $1 (func (result i32)))
+ (type $2 (func (param i32) (result i32)))
+ (type $3 (func (param i32)))
+ (func $trivial (; 0 ;) (type $0)
+ (local $0 i32)
+ (return)
+ )
+ (func $trivial2 (; 1 ;) (type $0)
+ (local $0 i32)
+ (block
+ (block
+ (call $trivial)
+ (call $trivial)
+ )
+ (return)
+ )
+ )
+ (func $return-void (; 2 ;) (type $0)
+ (local $0 i32)
+ (return)
+ )
+ (func $return-val (; 3 ;) (type $1) (result i32)
+ (local $0 i32)
+ (local $1 i32)
+ (local $2 i32)
+ (return
+ (i32.const 1)
+ )
+ )
+ (func $ifs (; 4 ;) (type $2) (param $x i32) (result i32)
+ (local $1 i32)
+ (local $2 i32)
+ (local $3 i32)
+ (local $4 i32)
+ (local $5 i32)
+ (local $6 i32)
+ (local $7 i32)
+ (local $8 i32)
+ (local $9 i32)
+ (local $10 i32)
+ (local $11 i32)
+ (local $12 i32)
+ (local $13 i32)
+ (local $14 i32)
+ (local $15 i32)
+ (local $16 i32)
+ (block
+ (local.set $6
+ (local.get $x)
+ )
+ (local.set $1
+ (local.get $6)
+ )
+ (local.set $7
+ (local.get $1)
+ )
+ )
+ (if
+ (local.get $7)
+ (block
+ (block
+ (local.set $8
+ (local.get $x)
+ )
+ (local.set $2
+ (local.get $8)
+ )
+ (local.set $9
+ (local.get $2)
+ )
+ )
+ (if
+ (local.get $9)
+ (block
+ (return
+ (i32.const 2)
+ )
+ )
+ (block
+ (return
+ (i32.const 3)
+ )
+ )
+ )
+ )
+ (block
+ (block
+ (local.set $10
+ (local.get $x)
+ )
+ (local.set $3
+ (local.get $10)
+ )
+ (local.set $11
+ (local.get $3)
+ )
+ )
+ (if
+ (local.get $11)
+ (block
+ (return
+ (i32.const 4)
+ )
+ )
+ (block
+ (return
+ (i32.const 5)
+ )
+ )
+ )
+ )
+ )
+ )
+ (func $loops (; 5 ;) (type $3) (param $x i32)
+ (local $1 i32)
+ (local $2 i32)
+ (local $3 i32)
+ (local $4 i32)
+ (local $5 i32)
+ (local $6 i32)
+ (local $7 i32)
+ (local $8 i32)
+ (local $9 i32)
+ (local $10 i32)
+ (block $block$21$break
+ (block
+ (local.set $4
+ (local.get $x)
+ )
+ (local.set $1
+ (local.get $4)
+ )
+ (local.set $5
+ (local.get $1)
+ )
+ )
+ (if
+ (local.get $5)
+ (loop $shape$2$continue
+ (call $trivial)
+ (block
+ (br $shape$2$continue)
+ )
+ )
+ (br $block$21$break)
+ )
+ )
+ (block
+ (block $block$24$break
+ (loop $shape$4$continue
+ (block
+ (call $trivial)
+ (local.set $6
+ (local.get $x)
+ )
+ (local.set $2
+ (local.get $6)
+ )
+ (local.set $7
+ (local.get $2)
+ )
+ )
+ (if
+ (local.get $7)
+ (br $shape$4$continue)
+ (br $block$24$break)
+ )
+ )
+ )
+ (block
+ (block $block$2$break
+ (loop $shape$6$continue
+ (block
+ (call $trivial)
+ (local.set $8
+ (local.get $x)
+ )
+ (local.set $3
+ (local.get $8)
+ )
+ (local.set $9
+ (local.get $3)
+ )
+ )
+ (if
+ (local.get $9)
+ (br $shape$6$continue)
+ (br $block$2$break)
+ )
+ )
+ )
+ (block
+ (return)
+ )
+ )
+ )
+ )
+ (func $br-out (; 6 ;) (type $3) (param $x i32)
+ (local $1 i32)
+ (block $block$2$break
+ (call $br-out
+ (i32.const 5)
+ )
+ (block
+ (br $block$2$break)
+ )
+ )
+ (block
+ (return)
+ )
+ )
+ (func $unreachable (; 7 ;) (type $3) (param $x i32)
+ (local $1 i32)
+ (local $2 i32)
+ (local $3 i32)
+ (local $4 i32)
+ (local $5 i32)
+ (local $6 i32)
+ (local $7 i32)
+ (block $block$4$break
+ (block
+ (local.set $3
+ (local.get $x)
+ )
+ (local.set $1
+ (local.get $3)
+ )
+ (local.set $4
+ (local.get $1)
+ )
+ )
+ (if
+ (local.get $4)
+ (br $block$4$break)
+ (block
+ (block $block$2$break
+ (call $unreachable
+ (i32.const 5)
+ )
+ (block
+ (br $block$2$break)
+ )
+ )
+ (block
+ (return)
+ )
+ )
+ )
+ )
+ (block
+ (block
+ (local.set $5
+ (local.get $x)
+ )
+ (local.set $2
+ (local.get $5)
+ )
+ (local.set $6
+ (local.get $2)
+ )
+ )
+ (if
+ (local.get $6)
+ (block
+ (block
+ (call $unreachable
+ (i32.const 1)
+ )
+ (unreachable)
+ )
+ )
+ (block
+ (block
+ (call $unreachable
+ (i32.const 3)
+ )
+ (return)
+ )
+ )
+ )
+ )
+ )
+ (func $empty-blocks (; 8 ;) (type $3) (param $x i32)
+ (local $1 i32)
+ (block $block$2$break
+ (block
+ )
+ (block
+ (br $block$2$break)
+ )
+ )
+ (block
+ (return)
+ )
+ )
+ (func $before-and-after (; 9 ;) (type $3) (param $x i32)
+ (local $1 i32)
+ (local $2 i32)
+ (local $3 i32)
+ (local $4 i32)
+ (local $5 i32)
+ (local $6 i32)
+ (local $7 i32)
+ (local $8 i32)
+ (local $9 i32)
+ (local $10 i32)
+ (local $11 i32)
+ (local $12 i32)
+ (local $13 i32)
+ (local $14 i32)
+ (local $15 i32)
+ (local $16 i32)
+ (block $block$4$break
+ (block
+ (block
+ (call $before-and-after
+ (i32.const 1)
+ )
+ (call $before-and-after
+ (i32.const 2)
+ )
+ )
+ (block
+ (call $before-and-after
+ (i32.const 3)
+ )
+ (call $before-and-after
+ (i32.const 4)
+ )
+ (local.set $6
+ (local.get $x)
+ )
+ (local.set $1
+ (local.get $6)
+ )
+ (local.set $7
+ (local.get $1)
+ )
+ )
+ )
+ (if
+ (local.get $7)
+ (br $block$4$break)
+ (block
+ (call $before-and-after
+ (i32.const 5)
+ )
+ (block
+ (br $block$4$break)
+ )
+ )
+ )
+ )
+ (block
+ (block $block$8$break
+ (block
+ (block
+ (call $before-and-after
+ (i32.const 6)
+ )
+ (call $before-and-after
+ (i32.const 7)
+ )
+ )
+ (call $before-and-after
+ (i32.const 8)
+ )
+ )
+ (block
+ (br $block$8$break)
+ )
+ )
+ (block
+ (block $block$10$break
+ (loop $shape$4$continue
+ (block
+ (call $before-and-after
+ (i32.const 9)
+ )
+ (local.set $8
+ (local.get $x)
+ )
+ (local.set $2
+ (local.get $8)
+ )
+ (local.set $9
+ (local.get $2)
+ )
+ )
+ (if
+ (local.get $9)
+ (br $shape$4$continue)
+ (br $block$10$break)
+ )
+ )
+ )
+ (block
+ (block $block$11$break
+ (block
+ (call $before-and-after
+ (i32.const 10)
+ )
+ (block
+ (call $before-and-after
+ (i32.const 11)
+ )
+ (local.set $10
+ (local.get $x)
+ )
+ (local.set $3
+ (local.get $10)
+ )
+ (local.set $11
+ (local.get $3)
+ )
+ )
+ )
+ (if
+ (local.get $11)
+ (block
+ (call $before-and-after
+ (i32.const 12)
+ )
+ (block
+ (br $block$11$break)
+ )
+ )
+ (br $block$11$break)
+ )
+ )
+ (block
+ (block $block$15$break
+ (block
+ (call $before-and-after
+ (i32.const 13)
+ )
+ (local.set $12
+ (local.get $x)
+ )
+ (local.set $4
+ (local.get $12)
+ )
+ (local.set $13
+ (local.get $4)
+ )
+ )
+ (if
+ (local.get $13)
+ (block
+ (call $before-and-after
+ (i32.const 14)
+ )
+ (block
+ (br $block$15$break)
+ )
+ )
+ (block
+ (call $before-and-after
+ (i32.const 15)
+ )
+ (block
+ (br $block$15$break)
+ )
+ )
+ )
+ )
+ (block
+ (block $block$21$break
+ (block
+ (local.set $14
+ (local.get $x)
+ )
+ (local.set $5
+ (local.get $14)
+ )
+ (local.set $15
+ (local.get $5)
+ )
+ )
+ (if
+ (local.get $15)
+ (block
+ (call $before-and-after
+ (i32.const 16)
+ )
+ (block
+ (br $block$21$break)
+ )
+ )
+ (br $block$21$break)
+ )
+ )
+ (block
+ (block $block$28$break
+ (block
+ (block
+ (block
+ (call $before-and-after
+ (i32.const 17)
+ )
+ (call $before-and-after
+ (i32.const 18)
+ )
+ (call $before-and-after
+ (i32.const 19)
+ )
+ )
+ (call $before-and-after
+ (i32.const 20)
+ )
+ )
+ (block
+ (call $before-and-after
+ (i32.const 21)
+ )
+ (call $before-and-after
+ (i32.const 22)
+ )
+ )
+ )
+ (block
+ (br $block$28$break)
+ )
+ )
+ (block
+ (block $block$30$break
+ (block
+ (call $before-and-after
+ (i32.const 23)
+ )
+ (call $before-and-after
+ (i32.const 24)
+ )
+ )
+ (block
+ (br $block$30$break)
+ )
+ )
+ (block
+ (block
+ (call $before-and-after
+ (i32.const 25)
+ )
+ (return)
+ )
+ )
+ )
+ )
+ )
+ )
+ )
+ )
+ )
+ )
+ (func $switch (; 10 ;) (type $3) (param $x i32)
+ (local $1 i32)
+ (local $2 i32)
+ (local $3 i32)
+ (local $4 i32)
+ (local $5 i32)
+ (local $6 i32)
+ (local $7 i32)
+ (block $block$3$break
+ (block
+ (local.set $3
+ (local.get $x)
+ )
+ (local.set $1
+ (local.get $3)
+ )
+ (local.set $4
+ (local.get $1)
+ )
+ )
+ (block
+ (br $block$3$break)
+ )
+ )
+ (block
+ (block $block$9$break
+ (block
+ (call $switch
+ (i32.const 1)
+ )
+ (local.set $5
+ (local.get $x)
+ )
+ (local.set $2
+ (local.get $5)
+ )
+ (local.set $6
+ (local.get $2)
+ )
+ )
+ (block $switch$3$leave
+ (block $switch$3$default
+ (block $switch$3$case$9
+ (br_table $switch$3$case$9 $switch$3$case$9 $switch$3$case$9 $switch$3$default
+ (local.get $6)
+ )
+ )
+ (block
+ (br $block$9$break)
+ )
+ )
+ (block
+ (block
+ (call $switch
+ (i32.const 2)
+ )
+ (block
+ (br $block$9$break)
+ )
+ )
+ )
+ )
+ )
+ (block
+ (block
+ (call $switch
+ (i32.const 3)
+ )
+ (return)
+ )
+ )
+ )
+ )
+ (func $no-return (; 11 ;) (type $0)
+ (local $0 i32)
+ (block $block$6$break
+ (block
+ )
+ (if
+ (i32.const 1)
+ (block
+ (drop
+ (i32.const 2)
+ )
+ (block
+ (br $block$6$break)
+ )
+ )
+ (block
+ (drop
+ (i32.const 3)
+ )
+ (block
+ (br $block$6$break)
+ )
+ )
+ )
+ )
+ (block
+ (return)
+ )
+ )
+ (func $if-br-wat (; 12 ;) (type $3) (param $x i32)
+ (local $1 i32)
+ (local $2 i32)
+ (local $3 i32)
+ (local $4 i32)
+ (local $5 i32)
+ (local $6 i32)
+ (local $7 i32)
+ (block $block$3$break
+ (block $block$4$break
+ (block
+ (call $if-br-wat
+ (i32.const 0)
+ )
+ (local.set $3
+ (local.get $x)
+ )
+ (local.set $1
+ (local.get $3)
+ )
+ (local.set $4
+ (local.get $1)
+ )
+ )
+ (if
+ (local.get $4)
+ (block
+ (call $if-br-wat
+ (i32.const 1)
+ )
+ (block
+ (br $block$4$break)
+ )
+ )
+ (block
+ (block
+ (local.set $5
+ (local.get $x)
+ )
+ (local.set $2
+ (local.get $5)
+ )
+ (local.set $6
+ (local.get $2)
+ )
+ )
+ (if
+ (local.get $6)
+ (br $block$3$break)
+ (br $block$4$break)
+ )
+ )
+ )
+ )
+ (block
+ (call $if-br-wat
+ (i32.const 2)
+ )
+ (block
+ (br $block$3$break)
+ )
+ )
+ )
+ (block
+ (block
+ (call $if-br-wat
+ (i32.const 3)
+ )
+ (return)
+ )
+ )
+ )
+ (func $switcher-to-nowhere (; 13 ;) (type $2) (param $0 i32) (result i32)
+ (local $1 i32)
+ (local $2 i32)
+ (local $3 i32)
+ (local $4 i32)
+ (local $5 i32)
+ (local $6 i32)
+ (local $7 i32)
+ (local $8 i32)
+ (local $9 i32)
+ (local $10 i32)
+ (block
+ (block
+ (local.set $4
+ (local.get $0)
+ )
+ (local.set $1
+ (local.get $4)
+ )
+ (local.set $5
+ (local.get $1)
+ )
+ )
+ (block $switch$1$leave
+ (block $switch$1$default
+ (block $switch$1$case$4
+ (block $switch$1$case$5
+ (br_table $switch$1$case$5 $switch$1$case$4 $switch$1$default
+ (local.get $5)
+ )
+ )
+ (block
+ (block
+ (return
+ (i32.const 1)
+ )
+ )
+ )
+ )
+ (block
+ (block
+ (return
+ (i32.const 2)
+ )
+ )
+ )
+ )
+ (block
+ (block
+ (return
+ (i32.const 3)
+ )
+ )
+ )
+ )
+ )
+ (unreachable)
+ )
+)