diff options
Diffstat (limited to 'test/passes/flatten_rereloop.txt')
-rw-r--r-- | test/passes/flatten_rereloop.txt | 789 |
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) + ) +) |