diff options
Diffstat (limited to 'test')
-rw-r--r-- | test/example/c-api-kitchen-sink.txt | 980 | ||||
-rw-r--r-- | test/example/c-api-kitchen-sink.txt.txt | 490 | ||||
-rw-r--r-- | test/example/relooper-fuzz.txt | 64 | ||||
-rw-r--r-- | test/example/relooper-fuzz1.txt | 284 |
4 files changed, 841 insertions, 977 deletions
diff --git a/test/example/c-api-kitchen-sink.txt b/test/example/c-api-kitchen-sink.txt index e541b1704..0d27fa464 100644 --- a/test/example/c-api-kitchen-sink.txt +++ b/test/example/c-api-kitchen-sink.txt @@ -381,10 +381,13 @@ raw: ) (func $two-blocks (type $v) (local $0 i32) - (block + (block $block$2$break (call_import $check (i32.const 0) ) + (block + (br $block$2$break) + ) ) (block (call_import $check @@ -394,12 +397,13 @@ raw: ) (func $two-blocks-plus-code (type $v) (local $0 i32) - (block + (block $block$2$break (call_import $check (i32.const 0) ) (block (i32.const 77) + (br $block$2$break) ) ) (block @@ -410,11 +414,14 @@ raw: ) (func $loop (type $v) (local $0 i32) - (loop $shape$0$break $shape$0$continue - (block + (loop $shape$0$continue + (block $block$2$break (call_import $check (i32.const 0) ) + (block + (br $block$2$break) + ) ) (block (call_import $check @@ -428,13 +435,14 @@ raw: ) (func $loop-plus-code (type $v) (local $0 i32) - (loop $shape$0$break $shape$0$continue - (block + (loop $shape$0$continue + (block $block$2$break (call_import $check (i32.const 0) ) (block (i32.const 33) + (br $block$2$break) ) ) (block @@ -453,18 +461,16 @@ raw: (call_import $check (i32.const 0) ) - (block $shape$1$break - (if - (i32.const 55) - (block - (call_import $check - (i32.const 1) - ) + (if + (i32.const 55) + (block + (call_import $check + (i32.const 1) ) - (block - (call_import $check - (i32.const 2) - ) + ) + (block + (call_import $check + (i32.const 2) ) ) ) @@ -474,23 +480,21 @@ raw: (call_import $check (i32.const 0) ) - (block $shape$1$break - (if - (i32.const 55) + (if + (i32.const 55) + (block + (i32.const 10) (block - (i32.const 10) - (block - (call_import $check - (i32.const 1) - ) + (call_import $check + (i32.const 1) ) ) + ) + (block + (i32.const 20) (block - (i32.const 20) - (block - (call_import $check - (i32.const 2) - ) + (call_import $check + (i32.const 2) ) ) ) @@ -498,22 +502,21 @@ raw: ) (func $if (type $v) (local $0 i32) - (block + (block $block$3$break (call_import $check (i32.const 0) ) - (block $shape$1$break - (if - (i32.const 55) + (if + (i32.const 55) + (block + (call_import $check + (i32.const 1) + ) (block - (call_import $check - (i32.const 1) - ) - (block - (br $shape$1$break) - ) + (br $block$3$break) ) ) + (br $block$3$break) ) ) (block @@ -524,26 +527,27 @@ raw: ) (func $if-plus-code (type $v) (local $0 i32) - (block + (block $block$3$break (call_import $check (i32.const 0) ) - (block $shape$1$break - (if - (i32.const 55) + (if + (i32.const 55) + (block + (i32.const -1) (block - (i32.const -1) + (call_import $check + (i32.const 1) + ) (block - (call_import $check - (i32.const 1) - ) - (block - (i32.const -3) - (br $shape$1$break) - ) + (i32.const -3) + (br $block$3$break) ) ) + ) + (block (i32.const -2) + (br $block$3$break) ) ) ) @@ -555,28 +559,26 @@ raw: ) (func $if-else (type $v) (local $0 i32) - (block + (block $block$4$break (call_import $check (i32.const 0) ) - (block $shape$1$break - (if - (i32.const 55) + (if + (i32.const 55) + (block + (call_import $check + (i32.const 1) + ) (block - (call_import $check - (i32.const 1) - ) - (block - (br $shape$1$break) - ) + (br $block$4$break) + ) + ) + (block + (call_import $check + (i32.const 2) ) (block - (call_import $check - (i32.const 2) - ) - (block - (br $shape$1$break) - ) + (br $block$4$break) ) ) ) @@ -589,20 +591,25 @@ raw: ) (func $loop-tail (type $v) (local $0 i32) - (loop $shape$0$break $shape$0$continue - (block - (call_import $check - (i32.const 0) - ) - ) - (block - (call_import $check - (i32.const 1) + (block $block$3$break + (loop $shape$0$continue + (block $block$2$break + (call_import $check + (i32.const 0) + ) + (block + (br $block$2$break) + ) ) - (if - (i32.const 10) - (br $shape$0$continue) - (br $shape$0$break) + (block + (call_import $check + (i32.const 1) + ) + (if + (i32.const 10) + (br $shape$0$continue) + (br $block$3$break) + ) ) ) ) @@ -614,93 +621,81 @@ raw: ) (func $nontrivial-loop-plus-phi-to-head (type $v) (local $0 i32) - (block + (block $block$2$break (call_import $check (i32.const 0) ) (block (i32.const 10) + (br $block$2$break) ) ) (block - (loop $shape$1$break $shape$1$continue - (block - (call_import $check - (i32.const 1) - ) - (if - (i32.eqz - (i32.const -2) - ) - (block - (i32.const 20) - (br $shape$1$break) - ) - ) - ) - (block - (call_import $check - (i32.const 2) - ) - (if - (i32.const -6) - (block - (set_local $0 - (i32.const 4) + (block $block$7$break + (block $block$4$break + (loop $shape$1$continue + (block $block$3$break + (call_import $check + (i32.const 1) + ) + (if + (i32.const -2) + (br $block$3$break) + (block + (i32.const 20) + (br $block$7$break) + ) ) - (br $shape$1$break) ) (block - (i32.const 30) - (br $shape$1$continue) + (call_import $check + (i32.const 2) + ) + (if + (i32.const -6) + (br $block$4$break) + (block + (i32.const 30) + (br $shape$1$continue) + ) + ) ) ) ) - ) - (block - (block $shape$4$break - (if - (i32.eq - (get_local $0) - (i32.const 4) + (block + (block $block$6$break + (call_import $check + (i32.const 3) ) - (block + (if + (i32.const -10) (block (call_import $check - (i32.const 3) - ) - (block $shape$6$break - (if - (i32.const -10) - (block - (call_import $check - (i32.const 4) - ) - (block - (br $shape$6$break) - ) - ) - ) - ) - ) - (block - (call_import $check - (i32.const 5) + (i32.const 4) ) (block - (i32.const 40) - (br $shape$4$break) + (br $block$6$break) ) ) + (br $block$6$break) ) ) - ) - (block - (call_import $check - (i32.const 6) + (block + (call_import $check + (i32.const 5) + ) + (block + (i32.const 40) + (br $block$7$break) + ) ) ) ) + (block + (call_import $check + (i32.const 6) + ) + ) ) ) (func $switch (type $v) @@ -708,43 +703,41 @@ raw: (call_import $check (i32.const 0) ) - (block $shape$1$break - (block $switch$1$leave - (block $switch$1$default - (block $switch$1$case$3 - (block $switch$1$case$2 - (br_table $switch$1$default $switch$1$default $switch$1$case$2 $switch$1$default $switch$1$case$3 $switch$1$case$2 $switch$1$default - (i32.const -99) - ) - ) - (block - (block - (call_import $check - (i32.const 1) - ) - ) + (block $switch$1$leave + (block $switch$1$default + (block $switch$1$case$3 + (block $switch$1$case$2 + (br_table $switch$1$default $switch$1$default $switch$1$case$2 $switch$1$default $switch$1$case$3 $switch$1$case$2 $switch$1$default + (i32.const -99) ) - (br $switch$1$leave) ) (block - (i32.const 55) (block (call_import $check - (i32.const 2) + (i32.const 1) ) ) ) (br $switch$1$leave) ) (block + (i32.const 55) (block (call_import $check - (i32.const 3) + (i32.const 2) ) ) ) (br $switch$1$leave) ) + (block + (block + (call_import $check + (i32.const 3) + ) + ) + ) + (br $switch$1$leave) ) ) (func $duffs-device (type $v) @@ -756,58 +749,66 @@ raw: (local $5 f64) (local $6 i32) (block - (call_import $check - (i32.const 0) + (block $block$3$break + (block $block$2$break + (call_import $check + (i32.const 0) + ) + (if + (i32.const 10) + (block + (set_local $3 + (i32.const 2) + ) + (br $block$2$break) + ) + (block + (set_local $3 + (i32.const 3) + ) + (br $block$3$break) + ) + ) + ) ) + ) + (loop $shape$1$continue (if - (i32.const 10) - (set_local $3 + (i32.eq + (get_local $3) (i32.const 2) ) - (set_local $3 - (i32.const 3) + (block + (set_local $3 + (i32.const 0) + ) + (call_import $check + (i32.const 1) + ) + (block + (set_local $3 + (i32.const 3) + ) + (br $shape$1$continue) + ) ) - ) - ) - (loop $shape$1$break $shape$1$continue - (block $shape$2$break (if (i32.eq (get_local $3) - (i32.const 2) + (i32.const 3) ) (block (set_local $3 (i32.const 0) ) (call_import $check - (i32.const 1) - ) - (block - (set_local $3 - (i32.const 3) - ) - (br $shape$1$continue) - ) - ) - (if - (i32.eq - (get_local $3) - (i32.const 3) + (i32.const 2) ) (block (set_local $3 - (i32.const 0) - ) - (call_import $check (i32.const 2) ) - (block - (set_local $3 - (i32.const 2) - ) - (br $shape$1$continue) - ) + (br $shape$1$continue) ) ) ) @@ -847,7 +848,7 @@ optimized: ) ) (func $loop (type $v) - (loop $shape$0$break $shape$0$continue + (loop $shape$0$continue (call_import $check (i32.const 0) ) @@ -885,21 +886,6 @@ optimized: (i32.const 2) ) ) - (func $if-plus-code (type $v) - (call_import $check - (i32.const 0) - ) - (if - (i32.const 55) - (call_import $check - (i32.const 1) - ) - (i32.const -2) - ) - (call_import $check - (i32.const 2) - ) - ) (func $if-else (type $v) (call_import $check (i32.const 0) @@ -918,17 +904,19 @@ optimized: ) ) (func $loop-tail (type $v) - (loop $shape$0$break $shape$0$continue - (call_import $check - (i32.const 0) - ) - (call_import $check - (i32.const 1) - ) - (if - (i32.const 10) - (br $shape$0$continue) - (br $shape$0$break) + (block $block$3$break + (loop $shape$0$continue + (call_import $check + (i32.const 0) + ) + (call_import $check + (i32.const 1) + ) + (if + (i32.const 10) + (br $shape$0$continue) + (br $block$3$break) + ) ) ) (call_import $check @@ -936,50 +924,40 @@ optimized: ) ) (func $nontrivial-loop-plus-phi-to-head (type $v) - (local $0 i32) (call_import $check (i32.const 0) ) - (loop $shape$1$break $shape$1$continue - (call_import $check - (i32.const 1) - ) - (br_if $shape$1$break - (i32.const 0) - ) - (call_import $check - (i32.const 2) - ) - (if - (i32.const -6) - (block - (set_local $0 - (i32.const 4) + (block $block$7$break + (block $block$4$break + (loop $shape$1$continue + (call_import $check + (i32.const 1) + ) + (br_if $block$7$break + (i32.const 0) ) - (br $shape$1$break) - ) - (br $shape$1$continue) - ) - ) - (if - (i32.eq - (get_local $0) - (i32.const 4) - ) - (block - (call_import $check - (i32.const 3) - ) - (if - (i32.const -10) (call_import $check - (i32.const 4) + (i32.const 2) + ) + (if + (i32.const -6) + (br $block$4$break) + (br $shape$1$continue) ) ) + ) + (call_import $check + (i32.const 3) + ) + (if + (i32.const -10) (call_import $check - (i32.const 5) + (i32.const 4) ) ) + (call_import $check + (i32.const 5) + ) ) (call_import $check (i32.const 6) @@ -1020,7 +998,7 @@ optimized: (set_local $0 (i32.const 2) ) - (loop $shape$1$break $shape$1$continue + (loop $shape$1$continue (if (i32.eq (get_local $0) @@ -2246,10 +2224,13 @@ raw: ) (func $two-blocks (type $v) (local $0 i32) - (block + (block $block$2$break (call_import $check (i32.const 0) ) + (block + (br $block$2$break) + ) ) (block (call_import $check @@ -2259,12 +2240,13 @@ raw: ) (func $two-blocks-plus-code (type $v) (local $0 i32) - (block + (block $block$2$break (call_import $check (i32.const 0) ) (block (i32.const 77) + (br $block$2$break) ) ) (block @@ -2275,11 +2257,14 @@ raw: ) (func $loop (type $v) (local $0 i32) - (loop $shape$0$break $shape$0$continue - (block + (loop $shape$0$continue + (block $block$2$break (call_import $check (i32.const 0) ) + (block + (br $block$2$break) + ) ) (block (call_import $check @@ -2293,13 +2278,14 @@ raw: ) (func $loop-plus-code (type $v) (local $0 i32) - (loop $shape$0$break $shape$0$continue - (block + (loop $shape$0$continue + (block $block$2$break (call_import $check (i32.const 0) ) (block (i32.const 33) + (br $block$2$break) ) ) (block @@ -2318,18 +2304,16 @@ raw: (call_import $check (i32.const 0) ) - (block $shape$1$break - (if - (i32.const 55) - (block - (call_import $check - (i32.const 1) - ) + (if + (i32.const 55) + (block + (call_import $check + (i32.const 1) ) - (block - (call_import $check - (i32.const 2) - ) + ) + (block + (call_import $check + (i32.const 2) ) ) ) @@ -2339,23 +2323,21 @@ raw: (call_import $check (i32.const 0) ) - (block $shape$1$break - (if - (i32.const 55) + (if + (i32.const 55) + (block + (i32.const 10) (block - (i32.const 10) - (block - (call_import $check - (i32.const 1) - ) + (call_import $check + (i32.const 1) ) ) + ) + (block + (i32.const 20) (block - (i32.const 20) - (block - (call_import $check - (i32.const 2) - ) + (call_import $check + (i32.const 2) ) ) ) @@ -2363,22 +2345,21 @@ raw: ) (func $if (type $v) (local $0 i32) - (block + (block $block$3$break (call_import $check (i32.const 0) ) - (block $shape$1$break - (if - (i32.const 55) + (if + (i32.const 55) + (block + (call_import $check + (i32.const 1) + ) (block - (call_import $check - (i32.const 1) - ) - (block - (br $shape$1$break) - ) + (br $block$3$break) ) ) + (br $block$3$break) ) ) (block @@ -2389,26 +2370,27 @@ raw: ) (func $if-plus-code (type $v) (local $0 i32) - (block + (block $block$3$break (call_import $check (i32.const 0) ) - (block $shape$1$break - (if - (i32.const 55) + (if + (i32.const 55) + (block + (i32.const -1) (block - (i32.const -1) + (call_import $check + (i32.const 1) + ) (block - (call_import $check - (i32.const 1) - ) - (block - (i32.const -3) - (br $shape$1$break) - ) + (i32.const -3) + (br $block$3$break) ) ) + ) + (block (i32.const -2) + (br $block$3$break) ) ) ) @@ -2420,28 +2402,26 @@ raw: ) (func $if-else (type $v) (local $0 i32) - (block + (block $block$4$break (call_import $check (i32.const 0) ) - (block $shape$1$break - (if - (i32.const 55) + (if + (i32.const 55) + (block + (call_import $check + (i32.const 1) + ) (block - (call_import $check - (i32.const 1) - ) - (block - (br $shape$1$break) - ) + (br $block$4$break) + ) + ) + (block + (call_import $check + (i32.const 2) ) (block - (call_import $check - (i32.const 2) - ) - (block - (br $shape$1$break) - ) + (br $block$4$break) ) ) ) @@ -2454,20 +2434,25 @@ raw: ) (func $loop-tail (type $v) (local $0 i32) - (loop $shape$0$break $shape$0$continue - (block - (call_import $check - (i32.const 0) - ) - ) - (block - (call_import $check - (i32.const 1) + (block $block$3$break + (loop $shape$0$continue + (block $block$2$break + (call_import $check + (i32.const 0) + ) + (block + (br $block$2$break) + ) ) - (if - (i32.const 10) - (br $shape$0$continue) - (br $shape$0$break) + (block + (call_import $check + (i32.const 1) + ) + (if + (i32.const 10) + (br $shape$0$continue) + (br $block$3$break) + ) ) ) ) @@ -2479,93 +2464,81 @@ raw: ) (func $nontrivial-loop-plus-phi-to-head (type $v) (local $0 i32) - (block + (block $block$2$break (call_import $check (i32.const 0) ) (block (i32.const 10) + (br $block$2$break) ) ) (block - (loop $shape$1$break $shape$1$continue - (block - (call_import $check - (i32.const 1) - ) - (if - (i32.eqz - (i32.const -2) - ) - (block - (i32.const 20) - (br $shape$1$break) - ) - ) - ) - (block - (call_import $check - (i32.const 2) - ) - (if - (i32.const -6) - (block - (set_local $0 - (i32.const 4) + (block $block$7$break + (block $block$4$break + (loop $shape$1$continue + (block $block$3$break + (call_import $check + (i32.const 1) + ) + (if + (i32.const -2) + (br $block$3$break) + (block + (i32.const 20) + (br $block$7$break) + ) ) - (br $shape$1$break) ) (block - (i32.const 30) - (br $shape$1$continue) + (call_import $check + (i32.const 2) + ) + (if + (i32.const -6) + (br $block$4$break) + (block + (i32.const 30) + (br $shape$1$continue) + ) + ) ) ) ) - ) - (block - (block $shape$4$break - (if - (i32.eq - (get_local $0) - (i32.const 4) + (block + (block $block$6$break + (call_import $check + (i32.const 3) ) - (block + (if + (i32.const -10) (block (call_import $check - (i32.const 3) - ) - (block $shape$6$break - (if - (i32.const -10) - (block - (call_import $check - (i32.const 4) - ) - (block - (br $shape$6$break) - ) - ) - ) - ) - ) - (block - (call_import $check - (i32.const 5) + (i32.const 4) ) (block - (i32.const 40) - (br $shape$4$break) + (br $block$6$break) ) ) + (br $block$6$break) ) ) - ) - (block - (call_import $check - (i32.const 6) + (block + (call_import $check + (i32.const 5) + ) + (block + (i32.const 40) + (br $block$7$break) + ) ) ) ) + (block + (call_import $check + (i32.const 6) + ) + ) ) ) (func $switch (type $v) @@ -2573,43 +2546,41 @@ raw: (call_import $check (i32.const 0) ) - (block $shape$1$break - (block $switch$1$leave - (block $switch$1$default - (block $switch$1$case$3 - (block $switch$1$case$2 - (br_table $switch$1$default $switch$1$default $switch$1$case$2 $switch$1$default $switch$1$case$3 $switch$1$case$2 $switch$1$default - (i32.const -99) - ) - ) - (block - (block - (call_import $check - (i32.const 1) - ) - ) + (block $switch$1$leave + (block $switch$1$default + (block $switch$1$case$3 + (block $switch$1$case$2 + (br_table $switch$1$default $switch$1$default $switch$1$case$2 $switch$1$default $switch$1$case$3 $switch$1$case$2 $switch$1$default + (i32.const -99) ) - (br $switch$1$leave) ) (block - (i32.const 55) (block (call_import $check - (i32.const 2) + (i32.const 1) ) ) ) (br $switch$1$leave) ) (block + (i32.const 55) (block (call_import $check - (i32.const 3) + (i32.const 2) ) ) ) (br $switch$1$leave) ) + (block + (block + (call_import $check + (i32.const 3) + ) + ) + ) + (br $switch$1$leave) ) ) (func $duffs-device (type $v) @@ -2621,58 +2592,66 @@ raw: (local $5 f64) (local $6 i32) (block - (call_import $check - (i32.const 0) + (block $block$3$break + (block $block$2$break + (call_import $check + (i32.const 0) + ) + (if + (i32.const 10) + (block + (set_local $3 + (i32.const 2) + ) + (br $block$2$break) + ) + (block + (set_local $3 + (i32.const 3) + ) + (br $block$3$break) + ) + ) + ) ) + ) + (loop $shape$1$continue (if - (i32.const 10) - (set_local $3 + (i32.eq + (get_local $3) (i32.const 2) ) - (set_local $3 - (i32.const 3) + (block + (set_local $3 + (i32.const 0) + ) + (call_import $check + (i32.const 1) + ) + (block + (set_local $3 + (i32.const 3) + ) + (br $shape$1$continue) + ) ) - ) - ) - (loop $shape$1$break $shape$1$continue - (block $shape$2$break (if (i32.eq (get_local $3) - (i32.const 2) + (i32.const 3) ) (block (set_local $3 (i32.const 0) ) (call_import $check - (i32.const 1) - ) - (block - (set_local $3 - (i32.const 3) - ) - (br $shape$1$continue) - ) - ) - (if - (i32.eq - (get_local $3) - (i32.const 3) + (i32.const 2) ) (block (set_local $3 - (i32.const 0) - ) - (call_import $check (i32.const 2) ) - (block - (set_local $3 - (i32.const 2) - ) - (br $shape$1$continue) - ) + (br $shape$1$continue) ) ) ) @@ -2716,7 +2695,7 @@ optimized: ) ) (func $loop (type $v) - (loop $shape$0$break $shape$0$continue + (loop $shape$0$continue (call_import $check (i32.const 0) ) @@ -2754,21 +2733,6 @@ optimized: (i32.const 2) ) ) - (func $if-plus-code (type $v) - (call_import $check - (i32.const 0) - ) - (if - (i32.const 55) - (call_import $check - (i32.const 1) - ) - (i32.const -2) - ) - (call_import $check - (i32.const 2) - ) - ) (func $if-else (type $v) (call_import $check (i32.const 0) @@ -2787,17 +2751,19 @@ optimized: ) ) (func $loop-tail (type $v) - (loop $shape$0$break $shape$0$continue - (call_import $check - (i32.const 0) - ) - (call_import $check - (i32.const 1) - ) - (if - (i32.const 10) - (br $shape$0$continue) - (br $shape$0$break) + (block $block$3$break + (loop $shape$0$continue + (call_import $check + (i32.const 0) + ) + (call_import $check + (i32.const 1) + ) + (if + (i32.const 10) + (br $shape$0$continue) + (br $block$3$break) + ) ) ) (call_import $check @@ -2805,50 +2771,40 @@ optimized: ) ) (func $nontrivial-loop-plus-phi-to-head (type $v) - (local $0 i32) (call_import $check (i32.const 0) ) - (loop $shape$1$break $shape$1$continue - (call_import $check - (i32.const 1) - ) - (br_if $shape$1$break - (i32.const 0) - ) - (call_import $check - (i32.const 2) - ) - (if - (i32.const -6) - (block - (set_local $0 - (i32.const 4) + (block $block$7$break + (block $block$4$break + (loop $shape$1$continue + (call_import $check + (i32.const 1) + ) + (br_if $block$7$break + (i32.const 0) ) - (br $shape$1$break) - ) - (br $shape$1$continue) - ) - ) - (if - (i32.eq - (get_local $0) - (i32.const 4) - ) - (block - (call_import $check - (i32.const 3) - ) - (if - (i32.const -10) (call_import $check - (i32.const 4) + (i32.const 2) + ) + (if + (i32.const -6) + (br $block$4$break) + (br $shape$1$continue) ) ) + ) + (call_import $check + (i32.const 3) + ) + (if + (i32.const -10) (call_import $check - (i32.const 5) + (i32.const 4) ) ) + (call_import $check + (i32.const 5) + ) ) (call_import $check (i32.const 6) @@ -2889,7 +2845,7 @@ optimized: (set_local $0 (i32.const 2) ) - (loop $shape$1$break $shape$1$continue + (loop $shape$1$continue (if (i32.eq (get_local $0) diff --git a/test/example/c-api-kitchen-sink.txt.txt b/test/example/c-api-kitchen-sink.txt.txt index 8206ac3d4..0ba8ccf94 100644 --- a/test/example/c-api-kitchen-sink.txt.txt +++ b/test/example/c-api-kitchen-sink.txt.txt @@ -375,10 +375,13 @@ ) (func $two-blocks (type $v) (local $0 i32) - (block + (block $block$2$break (call_import $check (i32.const 0) ) + (block + (br $block$2$break) + ) ) (block (call_import $check @@ -388,12 +391,13 @@ ) (func $two-blocks-plus-code (type $v) (local $0 i32) - (block + (block $block$2$break (call_import $check (i32.const 0) ) (block (i32.const 77) + (br $block$2$break) ) ) (block @@ -404,11 +408,14 @@ ) (func $loop (type $v) (local $0 i32) - (loop $shape$0$break $shape$0$continue - (block + (loop $shape$0$continue + (block $block$2$break (call_import $check (i32.const 0) ) + (block + (br $block$2$break) + ) ) (block (call_import $check @@ -422,13 +429,14 @@ ) (func $loop-plus-code (type $v) (local $0 i32) - (loop $shape$0$break $shape$0$continue - (block + (loop $shape$0$continue + (block $block$2$break (call_import $check (i32.const 0) ) (block (i32.const 33) + (br $block$2$break) ) ) (block @@ -447,18 +455,16 @@ (call_import $check (i32.const 0) ) - (block $shape$1$break - (if - (i32.const 55) - (block - (call_import $check - (i32.const 1) - ) + (if + (i32.const 55) + (block + (call_import $check + (i32.const 1) ) - (block - (call_import $check - (i32.const 2) - ) + ) + (block + (call_import $check + (i32.const 2) ) ) ) @@ -468,23 +474,21 @@ (call_import $check (i32.const 0) ) - (block $shape$1$break - (if - (i32.const 55) + (if + (i32.const 55) + (block + (i32.const 10) (block - (i32.const 10) - (block - (call_import $check - (i32.const 1) - ) + (call_import $check + (i32.const 1) ) ) + ) + (block + (i32.const 20) (block - (i32.const 20) - (block - (call_import $check - (i32.const 2) - ) + (call_import $check + (i32.const 2) ) ) ) @@ -492,22 +496,21 @@ ) (func $if (type $v) (local $0 i32) - (block + (block $block$3$break (call_import $check (i32.const 0) ) - (block $shape$1$break - (if - (i32.const 55) + (if + (i32.const 55) + (block + (call_import $check + (i32.const 1) + ) (block - (call_import $check - (i32.const 1) - ) - (block - (br $shape$1$break) - ) + (br $block$3$break) ) ) + (br $block$3$break) ) ) (block @@ -518,26 +521,27 @@ ) (func $if-plus-code (type $v) (local $0 i32) - (block + (block $block$3$break (call_import $check (i32.const 0) ) - (block $shape$1$break - (if - (i32.const 55) + (if + (i32.const 55) + (block + (i32.const -1) (block - (i32.const -1) + (call_import $check + (i32.const 1) + ) (block - (call_import $check - (i32.const 1) - ) - (block - (i32.const -3) - (br $shape$1$break) - ) + (i32.const -3) + (br $block$3$break) ) ) + ) + (block (i32.const -2) + (br $block$3$break) ) ) ) @@ -549,28 +553,26 @@ ) (func $if-else (type $v) (local $0 i32) - (block + (block $block$4$break (call_import $check (i32.const 0) ) - (block $shape$1$break - (if - (i32.const 55) + (if + (i32.const 55) + (block + (call_import $check + (i32.const 1) + ) (block - (call_import $check - (i32.const 1) - ) - (block - (br $shape$1$break) - ) + (br $block$4$break) + ) + ) + (block + (call_import $check + (i32.const 2) ) (block - (call_import $check - (i32.const 2) - ) - (block - (br $shape$1$break) - ) + (br $block$4$break) ) ) ) @@ -583,20 +585,25 @@ ) (func $loop-tail (type $v) (local $0 i32) - (loop $shape$0$break $shape$0$continue - (block - (call_import $check - (i32.const 0) - ) - ) - (block - (call_import $check - (i32.const 1) + (block $block$3$break + (loop $shape$0$continue + (block $block$2$break + (call_import $check + (i32.const 0) + ) + (block + (br $block$2$break) + ) ) - (if - (i32.const 10) - (br $shape$0$continue) - (br $shape$0$break) + (block + (call_import $check + (i32.const 1) + ) + (if + (i32.const 10) + (br $shape$0$continue) + (br $block$3$break) + ) ) ) ) @@ -608,93 +615,81 @@ ) (func $nontrivial-loop-plus-phi-to-head (type $v) (local $0 i32) - (block + (block $block$2$break (call_import $check (i32.const 0) ) (block (i32.const 10) + (br $block$2$break) ) ) (block - (loop $shape$1$break $shape$1$continue - (block - (call_import $check - (i32.const 1) - ) - (if - (i32.eqz - (i32.const -2) - ) - (block - (i32.const 20) - (br $shape$1$break) - ) - ) - ) - (block - (call_import $check - (i32.const 2) - ) - (if - (i32.const -6) - (block - (set_local $0 - (i32.const 4) + (block $block$7$break + (block $block$4$break + (loop $shape$1$continue + (block $block$3$break + (call_import $check + (i32.const 1) + ) + (if + (i32.const -2) + (br $block$3$break) + (block + (i32.const 20) + (br $block$7$break) + ) ) - (br $shape$1$break) ) (block - (i32.const 30) - (br $shape$1$continue) + (call_import $check + (i32.const 2) + ) + (if + (i32.const -6) + (br $block$4$break) + (block + (i32.const 30) + (br $shape$1$continue) + ) + ) ) ) ) - ) - (block - (block $shape$4$break - (if - (i32.eq - (get_local $0) - (i32.const 4) + (block + (block $block$6$break + (call_import $check + (i32.const 3) ) - (block + (if + (i32.const -10) (block (call_import $check - (i32.const 3) - ) - (block $shape$6$break - (if - (i32.const -10) - (block - (call_import $check - (i32.const 4) - ) - (block - (br $shape$6$break) - ) - ) - ) - ) - ) - (block - (call_import $check - (i32.const 5) + (i32.const 4) ) (block - (i32.const 40) - (br $shape$4$break) + (br $block$6$break) ) ) + (br $block$6$break) ) ) - ) - (block - (call_import $check - (i32.const 6) + (block + (call_import $check + (i32.const 5) + ) + (block + (i32.const 40) + (br $block$7$break) + ) ) ) ) + (block + (call_import $check + (i32.const 6) + ) + ) ) ) (func $switch (type $v) @@ -702,43 +697,41 @@ (call_import $check (i32.const 0) ) - (block $shape$1$break - (block $switch$1$leave - (block $switch$1$default - (block $switch$1$case$3 - (block $switch$1$case$2 - (br_table $switch$1$default $switch$1$default $switch$1$case$2 $switch$1$default $switch$1$case$3 $switch$1$case$2 $switch$1$default - (i32.const -99) - ) - ) - (block - (block - (call_import $check - (i32.const 1) - ) - ) + (block $switch$1$leave + (block $switch$1$default + (block $switch$1$case$3 + (block $switch$1$case$2 + (br_table $switch$1$default $switch$1$default $switch$1$case$2 $switch$1$default $switch$1$case$3 $switch$1$case$2 $switch$1$default + (i32.const -99) ) - (br $switch$1$leave) ) (block - (i32.const 55) (block (call_import $check - (i32.const 2) + (i32.const 1) ) ) ) (br $switch$1$leave) ) (block + (i32.const 55) (block (call_import $check - (i32.const 3) + (i32.const 2) ) ) ) (br $switch$1$leave) ) + (block + (block + (call_import $check + (i32.const 3) + ) + ) + ) + (br $switch$1$leave) ) ) (func $duffs-device (type $v) @@ -750,58 +743,66 @@ (local $5 f64) (local $6 i32) (block - (call_import $check - (i32.const 0) + (block $block$3$break + (block $block$2$break + (call_import $check + (i32.const 0) + ) + (if + (i32.const 10) + (block + (set_local $3 + (i32.const 2) + ) + (br $block$2$break) + ) + (block + (set_local $3 + (i32.const 3) + ) + (br $block$3$break) + ) + ) + ) ) + ) + (loop $shape$1$continue (if - (i32.const 10) - (set_local $3 + (i32.eq + (get_local $3) (i32.const 2) ) - (set_local $3 - (i32.const 3) + (block + (set_local $3 + (i32.const 0) + ) + (call_import $check + (i32.const 1) + ) + (block + (set_local $3 + (i32.const 3) + ) + (br $shape$1$continue) + ) ) - ) - ) - (loop $shape$1$break $shape$1$continue - (block $shape$2$break (if (i32.eq (get_local $3) - (i32.const 2) + (i32.const 3) ) (block (set_local $3 (i32.const 0) ) (call_import $check - (i32.const 1) - ) - (block - (set_local $3 - (i32.const 3) - ) - (br $shape$1$continue) - ) - ) - (if - (i32.eq - (get_local $3) - (i32.const 3) + (i32.const 2) ) (block (set_local $3 - (i32.const 0) - ) - (call_import $check (i32.const 2) ) - (block - (set_local $3 - (i32.const 2) - ) - (br $shape$1$continue) - ) + (br $shape$1$continue) ) ) ) @@ -840,7 +841,7 @@ ) ) (func $loop (type $v) - (loop $shape$0$break $shape$0$continue + (loop $shape$0$continue (call_import $check (i32.const 0) ) @@ -878,21 +879,6 @@ (i32.const 2) ) ) - (func $if-plus-code (type $v) - (call_import $check - (i32.const 0) - ) - (if - (i32.const 55) - (call_import $check - (i32.const 1) - ) - (i32.const -2) - ) - (call_import $check - (i32.const 2) - ) - ) (func $if-else (type $v) (call_import $check (i32.const 0) @@ -911,17 +897,19 @@ ) ) (func $loop-tail (type $v) - (loop $shape$0$break $shape$0$continue - (call_import $check - (i32.const 0) - ) - (call_import $check - (i32.const 1) - ) - (if - (i32.const 10) - (br $shape$0$continue) - (br $shape$0$break) + (block $block$3$break + (loop $shape$0$continue + (call_import $check + (i32.const 0) + ) + (call_import $check + (i32.const 1) + ) + (if + (i32.const 10) + (br $shape$0$continue) + (br $block$3$break) + ) ) ) (call_import $check @@ -929,50 +917,40 @@ ) ) (func $nontrivial-loop-plus-phi-to-head (type $v) - (local $0 i32) (call_import $check (i32.const 0) ) - (loop $shape$1$break $shape$1$continue - (call_import $check - (i32.const 1) - ) - (br_if $shape$1$break - (i32.const 0) - ) - (call_import $check - (i32.const 2) - ) - (if - (i32.const -6) - (block - (set_local $0 - (i32.const 4) + (block $block$7$break + (block $block$4$break + (loop $shape$1$continue + (call_import $check + (i32.const 1) + ) + (br_if $block$7$break + (i32.const 0) ) - (br $shape$1$break) - ) - (br $shape$1$continue) - ) - ) - (if - (i32.eq - (get_local $0) - (i32.const 4) - ) - (block - (call_import $check - (i32.const 3) - ) - (if - (i32.const -10) (call_import $check - (i32.const 4) + (i32.const 2) + ) + (if + (i32.const -6) + (br $block$4$break) + (br $shape$1$continue) ) ) + ) + (call_import $check + (i32.const 3) + ) + (if + (i32.const -10) (call_import $check - (i32.const 5) + (i32.const 4) ) ) + (call_import $check + (i32.const 5) + ) ) (call_import $check (i32.const 6) @@ -1013,7 +991,7 @@ (set_local $0 (i32.const 2) ) - (loop $shape$1$break $shape$1$continue + (loop $shape$1$continue (if (i32.eq (get_local $0) diff --git a/test/example/relooper-fuzz.txt b/test/example/relooper-fuzz.txt index 6da66a8c9..b4e6c8b57 100644 --- a/test/example/relooper-fuzz.txt +++ b/test/example/relooper-fuzz.txt @@ -154,44 +154,49 @@ ) (block (block - (block - (call_import $print - (i32.const 0) - ) - (set_local $0 - (call $check) - ) - ) - (block $shape$1$break - (if - (i32.eq - (i32.rem_u - (get_local $0) - (i32.const 2) + (block $block$6$break + (block $block$5$break + (block + (call_import $print + (i32.const 0) + ) + (set_local $0 + (call $check) ) - (i32.const 0) - ) - (set_local $1 - (i32.const 6) ) - (block - (block - (call_import $print - (i32.const 8) + (if + (i32.eq + (i32.rem_u + (get_local $0) + (i32.const 2) ) - (set_local $0 - (call $check) + (i32.const 0) + ) + (block + (set_local $1 + (i32.const 6) ) + (br $block$6$break) ) (block - (br $shape$1$break) + (block + (call_import $print + (i32.const 8) + ) + (set_local $0 + (call $check) + ) + ) + (block + (br $block$5$break) + ) ) ) ) ) ) - (loop $shape$3$break $shape$3$continue - (block $shape$4$break + (loop $shape$3$continue + (block $block$5$break (if (i32.eq (get_local $1) @@ -229,7 +234,7 @@ ) ) (block - (block + (block $block$3$break (block (call_import $print (i32.const 4) @@ -261,6 +266,7 @@ ) (br $shape$3$continue) ) + (br $block$3$break) ) ) ) @@ -460,7 +466,7 @@ (call $check) ) ) - (loop $shape$3$break $shape$3$continue + (loop $shape$3$continue (if (i32.eq (get_local $0) diff --git a/test/example/relooper-fuzz1.txt b/test/example/relooper-fuzz1.txt index baef772c8..437dab062 100644 --- a/test/example/relooper-fuzz1.txt +++ b/test/example/relooper-fuzz1.txt @@ -165,26 +165,16 @@ (i32.const 3) ) (block - (block - (block - (call_import $print - (i32.const 0) - ) - (set_local $0 - (call $check) - ) - ) - (block $shape$1$break - (if - (i32.eq - (i32.rem_u - (get_local $0) - (i32.const 4) + (block $block$10$break + (block $block$4$break + (block $block$3$break + (block + (call_import $print + (i32.const 0) + ) + (set_local $0 + (call $check) ) - (i32.const 0) - ) - (set_local $1 - (i32.const 3) ) (if (i32.eq @@ -192,127 +182,87 @@ (get_local $0) (i32.const 4) ) - (i32.const 2) - ) - (block - (block - (call_import $print - (i32.const 7) - ) - (set_local $0 - (call $check) - ) - ) - (if - (i32.eq - (i32.rem_u - (get_local $0) - (i32.const 3) - ) - (i32.const 0) - ) - (block - (set_local $1 - (i32.const 3) - ) - (br $shape$1$break) - ) - (block - (set_local $1 - (i32.const 10) - ) - (br $shape$1$break) - ) - ) - ) - (set_local $1 - (i32.const 4) - ) - ) - ) - ) - ) - (block - (block $shape$3$break - (if - (i32.eq - (get_local $1) - (i32.const 3) - ) - (block - (block - (call_import $print - (i32.const 2) - ) - (set_local $0 - (call $check) - ) + (i32.const 0) ) + (br $block$3$break) (if (i32.eq (i32.rem_u (get_local $0) - (i32.const 2) - ) - (i32.const 0) - ) - (block - (set_local $1 (i32.const 4) ) - (br $shape$3$break) + (i32.const 2) ) (block - (set_local $1 - (i32.const 10) + (block + (call_import $print + (i32.const 7) + ) + (set_local $0 + (call $check) + ) + ) + (if + (i32.eq + (i32.rem_u + (get_local $0) + (i32.const 3) + ) + (i32.const 0) + ) + (br $block$3$break) + (br $block$10$break) ) - (br $shape$3$break) ) + (br $block$4$break) ) ) ) - ) - (block $shape$5$break - (if - (i32.eq - (get_local $1) - (i32.const 4) - ) - (loop $shape$6$break $shape$6$continue - (set_local $1 - (i32.const 0) - ) - (block - (call_import $print - (i32.const 3) - ) - (set_local $0 - (call $check) - ) + (block + (block + (call_import $print + (i32.const 2) ) - (block - (set_local $1 - (i32.const 4) - ) - (br $shape$6$continue) + (set_local $0 + (call $check) ) ) (if (i32.eq - (get_local $1) - (i32.const 10) - ) - (block - (call_import $print - (i32.const 9) - ) - (set_local $0 - (call $check) + (i32.rem_u + (get_local $0) + (i32.const 2) ) + (i32.const 0) ) + (br $block$4$break) + (br $block$10$break) ) ) ) + (loop $shape$6$continue + (block + (call_import $print + (i32.const 3) + ) + (set_local $0 + (call $check) + ) + ) + (block + (br $shape$6$continue) + ) + ) + ) + (block + (block + (call_import $print + (i32.const 9) + ) + (set_local $0 + (call $check) + ) + ) ) ) ) @@ -482,96 +432,70 @@ (i32.const 124) (i32.const 3) ) - (call_import $print - (i32.const 0) - ) - (if - (i32.eq - (set_local $0 + (block $block$10$break + (block $block$4$break + (call_import $print + (i32.const 0) + ) + (if + (i32.ne + (i32.rem_u + (set_local $0 + (call $check) + ) + (i32.const 4) + ) + (i32.const 0) + ) (if (i32.eq (i32.rem_u - (set_local $0 - (call $check) - ) + (get_local $0) (i32.const 4) ) - (i32.const 0) + (i32.const 2) ) - (i32.const 3) - (if - (i32.eq - (i32.rem_u - (get_local $0) - (i32.const 4) - ) - (i32.const 2) + (block + (call_import $print + (i32.const 7) ) - (block - (call_import $print - (i32.const 7) - ) - (if - (i32.eq - (i32.rem_u - (call $check) - (i32.const 3) - ) - (i32.const 0) + (br_if $block$10$break + (i32.ne + (i32.rem_u + (call $check) + (i32.const 3) ) - (i32.const 3) - (i32.const 10) + (i32.const 0) ) ) - (i32.const 4) ) + (br $block$4$break) ) ) - (i32.const 3) - ) - (block (call_import $print (i32.const 2) ) - (set_local $0 - (if - (i32.eq - (i32.rem_u - (call $check) - (i32.const 2) - ) - (i32.const 0) + (br_if $block$10$break + (i32.ne + (i32.rem_u + (call $check) + (i32.const 2) ) - (i32.const 4) - (i32.const 10) + (i32.const 0) ) ) ) - ) - (if - (i32.eq - (get_local $0) - (i32.const 4) - ) - (loop $shape$6$break $shape$6$continue + (loop $shape$6$continue (call_import $print (i32.const 3) ) (call $check) (br $shape$6$continue) ) - (if - (i32.eq - (get_local $0) - (i32.const 10) - ) - (block - (call_import $print - (i32.const 9) - ) - (call $check) - ) - ) ) + (call_import $print + (i32.const 9) + ) + (call $check) ) ) |