diff options
Diffstat (limited to 'test/passes')
-rw-r--r-- | test/passes/inlining-optimizing_optimize-level=3.txt | 186 | ||||
-rw-r--r-- | test/passes/simplify-locals.txt | 401 | ||||
-rw-r--r-- | test/passes/simplify-locals.wast | 203 |
3 files changed, 630 insertions, 160 deletions
diff --git a/test/passes/inlining-optimizing_optimize-level=3.txt b/test/passes/inlining-optimizing_optimize-level=3.txt index 0a2d39db3..35d1219fe 100644 --- a/test/passes/inlining-optimizing_optimize-level=3.txt +++ b/test/passes/inlining-optimizing_optimize-level=3.txt @@ -2322,16 +2322,16 @@ (block $label$break$L1 (if (i32.gt_s - (get_local $17) + (get_local $16) (i32.const -1) ) - (set_local $17 + (set_local $16 (if (result i32) (i32.gt_s (get_local $10) (i32.sub (i32.const 2147483647) - (get_local $17) + (get_local $16) ) ) (block (result i32) @@ -2343,7 +2343,7 @@ ) (i32.add (get_local $10) - (get_local $17) + (get_local $16) ) ) ) @@ -2709,7 +2709,7 @@ (set_local $8 (i32.const 1) ) - (set_local $16 + (set_local $17 (i32.load (get_local $6) ) @@ -2724,7 +2724,7 @@ (if (get_local $8) (block - (set_local $17 + (set_local $16 (i32.const -1) ) (br $label$break$L1) @@ -2741,7 +2741,7 @@ (set_local $10 (get_local $6) ) - (set_local $16 + (set_local $17 (i32.const 0) ) (br $do-once5 @@ -2749,7 +2749,7 @@ ) ) ) - (set_local $16 + (set_local $17 (i32.load (tee_local $10 (i32.and @@ -2780,14 +2780,14 @@ (set_local $12 (if (result i32) (i32.lt_s - (get_local $16) + (get_local $17) (i32.const 0) ) (block (result i32) - (set_local $16 + (set_local $17 (i32.sub (i32.const 0) - (get_local $16) + (get_local $17) ) ) (i32.or @@ -2864,7 +2864,7 @@ (i32.const 0) ) (block - (set_local $17 + (set_local $16 (i32.const -1) ) (br $label$break$L1) @@ -2873,7 +2873,7 @@ (set_local $12 (get_local $1) ) - (set_local $16 + (set_local $17 (get_local $6) ) (get_local $8) @@ -2884,7 +2884,7 @@ (set_local $12 (get_local $1) ) - (set_local $16 + (set_local $17 (i32.const 0) ) (get_local $8) @@ -3056,7 +3056,7 @@ (if (get_local $1) (block - (set_local $17 + (set_local $16 (i32.const -1) ) (br $label$break$L1) @@ -3123,7 +3123,7 @@ (i32.const 57) ) (block - (set_local $17 + (set_local $16 (i32.const -1) ) (br $label$break$L1) @@ -3183,7 +3183,7 @@ ) ) (block - (set_local $17 + (set_local $16 (i32.const -1) ) (br $label$break$L1) @@ -3208,7 +3208,7 @@ (if (get_local $8) (block - (set_local $17 + (set_local $16 (i32.const -1) ) (br $label$break$L1) @@ -3260,7 +3260,7 @@ (get_local $28) ) (block - (set_local $17 + (set_local $16 (i32.const 0) ) (br $label$break$L1) @@ -3384,7 +3384,7 @@ (i32.load (get_local $14) ) - (get_local $17) + (get_local $16) ) (set_local $5 (get_local $10) @@ -3398,7 +3398,7 @@ (i32.load (get_local $14) ) - (get_local $17) + (get_local $16) ) (set_local $5 (get_local $10) @@ -3414,14 +3414,14 @@ (get_local $14) ) ) - (get_local $17) + (get_local $16) ) (i32.store offset=4 (get_local $5) (i32.shr_s (i32.shl (i32.lt_s - (get_local $17) + (get_local $16) (i32.const 0) ) (i32.const 31) @@ -3441,7 +3441,7 @@ (i32.load (get_local $14) ) - (get_local $17) + (get_local $16) ) (set_local $5 (get_local $10) @@ -3455,7 +3455,7 @@ (i32.load (get_local $14) ) - (get_local $17) + (get_local $16) ) (set_local $5 (get_local $10) @@ -3469,7 +3469,7 @@ (i32.load (get_local $14) ) - (get_local $17) + (get_local $16) ) (set_local $5 (get_local $10) @@ -3485,14 +3485,14 @@ (get_local $14) ) ) - (get_local $17) + (get_local $16) ) (i32.store offset=4 (get_local $5) (i32.shr_s (i32.shl (i32.lt_s - (get_local $17) + (get_local $16) (i32.const 0) ) (i32.const 31) @@ -3832,7 +3832,7 @@ (call $_pad (get_local $0) (i32.const 32) - (get_local $16) + (get_local $17) (i32.const 0) (get_local $12) ) @@ -4047,6 +4047,12 @@ ) ) ) + (set_local $11 + (i32.or + (get_local $27) + (i32.const 2) + ) + ) (if (i32.eq (tee_local $5 @@ -4093,12 +4099,6 @@ ) ) ) - (set_local $11 - (i32.or - (get_local $27) - (i32.const 2) - ) - ) (i32.store8 (i32.add (get_local $5) @@ -4243,7 +4243,7 @@ (call $_pad (get_local $0) (i32.const 32) - (get_local $16) + (get_local $17) (tee_local $7 (i32.add (tee_local $6 @@ -4302,7 +4302,7 @@ (call $_pad (get_local $0) (i32.const 48) - (get_local $16) + (get_local $17) (get_local $7) (i32.xor (get_local $12) @@ -4370,7 +4370,7 @@ (call $_pad (get_local $0) (i32.const 32) - (get_local $16) + (get_local $17) (get_local $7) (i32.xor (get_local $12) @@ -4379,11 +4379,11 @@ ) (br $do-once49 (select - (get_local $16) + (get_local $17) (get_local $7) (i32.lt_s (get_local $7) - (get_local $16) + (get_local $17) ) ) ) @@ -5356,7 +5356,7 @@ (call $_pad (get_local $0) (i32.const 32) - (get_local $16) + (get_local $17) (tee_local $13 (i32.add (i32.add @@ -5748,7 +5748,7 @@ (call $_pad (get_local $0) (i32.const 48) - (get_local $16) + (get_local $17) (get_local $13) (i32.xor (get_local $12) @@ -6223,7 +6223,7 @@ (call $_pad (get_local $0) (i32.const 32) - (get_local $16) + (get_local $17) (get_local $13) (i32.xor (get_local $12) @@ -6231,11 +6231,11 @@ ) ) (select - (get_local $16) + (get_local $17) (get_local $13) (i32.lt_s (get_local $13) - (get_local $16) + (get_local $17) ) ) ) @@ -6243,7 +6243,7 @@ (call $_pad (get_local $0) (i32.const 32) - (get_local $16) + (get_local $17) (tee_local $7 (i32.add (tee_local $9 @@ -6263,32 +6263,6 @@ ) (get_local $8) ) - (if - (i32.eqz - (i32.and - (tee_local $5 - (i32.load - (get_local $0) - ) - ) - (i32.const 32) - ) - ) - (block - (drop - (call $___fwritex - (get_local $30) - (get_local $9) - (get_local $0) - ) - ) - (set_local $5 - (i32.load - (get_local $0) - ) - ) - ) - ) (set_local $6 (select (select @@ -6313,10 +6287,38 @@ ) ) (if - (i32.eqz - (i32.and - (get_local $5) - (i32.const 32) + (block (result i32) + (if + (i32.eqz + (i32.and + (tee_local $5 + (i32.load + (get_local $0) + ) + ) + (i32.const 32) + ) + ) + (block + (drop + (call $___fwritex + (get_local $30) + (get_local $9) + (get_local $0) + ) + ) + (set_local $5 + (i32.load + (get_local $0) + ) + ) + ) + ) + (i32.eqz + (i32.and + (get_local $5) + (i32.const 32) + ) ) ) (drop @@ -6330,7 +6332,7 @@ (call $_pad (get_local $0) (i32.const 32) - (get_local $16) + (get_local $17) (get_local $7) (i32.xor (get_local $12) @@ -6338,11 +6340,11 @@ ) ) (select - (get_local $16) + (get_local $17) (get_local $7) (i32.lt_s (get_local $7) - (get_local $16) + (get_local $17) ) ) ) @@ -6614,7 +6616,7 @@ (i32.const 0) ) (block - (set_local $17 + (set_local $16 (i32.const -1) ) (br $label$break$L1) @@ -6623,7 +6625,7 @@ (call $_pad (get_local $0) (i32.const 32) - (get_local $16) + (get_local $17) (get_local $5) (get_local $12) ) @@ -6718,7 +6720,7 @@ (call $_pad (get_local $0) (i32.const 32) - (get_local $16) + (get_local $17) (get_local $7) (i32.xor (get_local $12) @@ -6730,10 +6732,10 @@ ) (set_local $10 (select - (get_local $16) + (get_local $17) (get_local $7) (i32.gt_s - (get_local $16) + (get_local $17) (get_local $7) ) ) @@ -6821,9 +6823,9 @@ (get_local $8) ) ) - (get_local $16) + (get_local $17) (i32.lt_s - (get_local $16) + (get_local $17) (get_local $5) ) ) @@ -6949,7 +6951,7 @@ (i32.const 10) ) ) - (set_local $17 + (set_local $16 (i32.const 1) ) (br $label$break$L343) @@ -6973,7 +6975,7 @@ ) ) (block - (set_local $17 + (set_local $16 (i32.const -1) ) (br $label$break$L343) @@ -6990,16 +6992,16 @@ (i32.const 10) ) ) - (set_local $17 + (set_local $16 (i32.const 1) ) ) - (set_local $17 + (set_local $16 (i32.const 1) ) ) ) - (set_local $17 + (set_local $16 (i32.const 0) ) ) @@ -7008,7 +7010,7 @@ (set_global $STACKTOP (get_local $34) ) - (get_local $17) + (get_local $16) ) (func $_pop_arg_336 (; 45 ;) (type $10) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) diff --git a/test/passes/simplify-locals.txt b/test/passes/simplify-locals.txt index 2e380049f..ae1355032 100644 --- a/test/passes/simplify-locals.txt +++ b/test/passes/simplify-locals.txt @@ -7,16 +7,20 @@ (type $5 (func (param i32) (result i32))) (type $6 (func (param i32 i32 i32 i32 i32 i32))) (type $FUNCSIG$iii (func (param i32 i32) (result i32))) - (type $8 (func (param i32 i32))) - (type $9 (func (param i32 i32 i32) (result i32))) - (type $10 (func (param i64))) + (type $FUNCSIG$vf (func (param f32))) + (type $9 (func (param i32 i32))) + (type $10 (func (param i32 i32 i32) (result i32))) + (type $11 (func (param i64))) + (type $12 (func (param i32 f64 f64 f32 i32) (result f64))) (import "env" "waka" (func $waka)) (import "env" "waka_int" (func $waka_int (result i32))) (import "env" "i64sub" (func $_i64Subtract (param i32 i32 i32 i32) (result i32))) (import "env" "moddi" (func $___udivmoddi4 (param i32 i32 i32 i32 i32) (result i32))) (import "env" "lp" (func $lp (param i32 i32) (result i32))) + (import "fuzzing-support" "log-f32" (func $fimport$0 (param f32))) (memory $0 256 256) - (func $contrast (; 5 ;) (type $FUNCSIG$v) + (global $global$0 (mut i32) (i32.const 10)) + (func $contrast (; 6 ;) (type $FUNCSIG$v) (local $x i32) (local $y i32) (local $z i32) @@ -78,7 +82,7 @@ ) ) ) - (func $b0-yes (; 6 ;) (type $4) (param $i1 i32) + (func $b0-yes (; 7 ;) (type $4) (param $i1 i32) (local $x i32) (local $y i32) (local $a i32) @@ -400,7 +404,7 @@ ) ) ) - (func $Ia (; 7 ;) (type $5) (param $a i32) (result i32) + (func $Ia (; 8 ;) (type $5) (param $a i32) (result i32) (local $b i32) (block $switch$0 (block $switch-default$6 @@ -411,7 +415,7 @@ (i32.const 60) ) ) - (func $memories (; 8 ;) (type $6) (param $i2 i32) (param $i3 i32) (param $bi2 i32) (param $bi3 i32) (param $ci3 i32) (param $di3 i32) + (func $memories (; 9 ;) (type $6) (param $i2 i32) (param $i3 i32) (param $bi2 i32) (param $bi3 i32) (param $ci3 i32) (param $di3 i32) (local $set_with_no_get i32) (nop) (i32.store8 @@ -443,7 +447,7 @@ (i32.const 456) ) ) - (func $___remdi3 (; 9 ;) (type $FUNCSIG$iiiii) (param $$a$0 i32) (param $$a$1 i32) (param $$b$0 i32) (param $$b$1 i32) (result i32) + (func $___remdi3 (; 10 ;) (type $FUNCSIG$iiiii) (param $$a$0 i32) (param $$a$1 i32) (param $$b$0 i32) (param $$b$1 i32) (result i32) (local $$1$1 i32) (local $$1$0 i32) (local $$rem i32) @@ -636,7 +640,7 @@ ) ) ) - (func $block-returns (; 10 ;) (type $FUNCSIG$v) + (func $block-returns (; 11 ;) (type $FUNCSIG$v) (local $x i32) (set_local $x (block $out (result i32) @@ -685,12 +689,16 @@ (tee_local $x (if (result i32) (i32.const 1) - (block $block3 (result i32) - (nop) + (block (result i32) + (block $block3 + (nop) + ) (i32.const 14) ) - (block $block5 (result i32) - (nop) + (block (result i32) + (block $block5 + (nop) + ) (i32.const 25) ) ) @@ -706,7 +714,7 @@ ) ) ) - (func $multiple (; 11 ;) (type $6) (param $s i32) (param $r i32) (param $f i32) (param $p i32) (param $t i32) (param $m i32) + (func $multiple (; 12 ;) (type $6) (param $s i32) (param $r i32) (param $f i32) (param $p i32) (param $t i32) (param $m i32) (nop) (set_local $r (i32.add @@ -733,7 +741,7 @@ (get_local $t) ) ) - (func $switch-def (; 12 ;) (type $5) (param $i3 i32) (result i32) + (func $switch-def (; 13 ;) (type $5) (param $i3 i32) (result i32) (local $i1 i32) (set_local $i1 (i32.const 10) @@ -752,7 +760,7 @@ (get_local $i1) ) ) - (func $no-out-of-label (; 13 ;) (type $8) (param $x i32) (param $y i32) + (func $no-out-of-label (; 14 ;) (type $9) (param $x i32) (param $y i32) (nop) (set_local $x (loop $moar (result i32) @@ -778,7 +786,7 @@ (get_local $y) ) ) - (func $freetype-cd (; 14 ;) (type $5) (param $a i32) (result i32) + (func $freetype-cd (; 15 ;) (type $5) (param $a i32) (result i32) (local $e i32) (nop) (tee_local $a @@ -805,7 +813,7 @@ ) ) ) - (func $drop-if-value (; 15 ;) (type $9) (param $x i32) (param $y i32) (param $z i32) (result i32) + (func $drop-if-value (; 16 ;) (type $10) (param $x i32) (param $y i32) (param $z i32) (result i32) (local $temp i32) (drop (if (result i32) @@ -833,7 +841,7 @@ (i32.const 0) ) ) - (func $drop-br_if (; 16 ;) (type $9) (param $label i32) (param $$cond2 i32) (param $$$0151 i32) (result i32) + (func $drop-br_if (; 17 ;) (type $10) (param $label i32) (param $$cond2 i32) (param $$$0151 i32) (result i32) (nop) (tee_local $label (block $label$break$L4 (result i32) @@ -865,7 +873,7 @@ ) ) ) - (func $drop-tee-unreachable (; 17 ;) (type $FUNCSIG$v) + (func $drop-tee-unreachable (; 18 ;) (type $FUNCSIG$v) (local $x i32) (tee_local $x (unreachable) @@ -874,7 +882,7 @@ (get_local $x) ) ) - (func $if-return-but-unreachable (; 18 ;) (type $10) (param $var$0 i64) + (func $if-return-but-unreachable (; 19 ;) (type $11) (param $var$0 i64) (if (unreachable) (drop @@ -885,6 +893,231 @@ ) ) ) + (func $if-one-side (; 20 ;) (type $FUNCSIG$i) (result i32) + (local $x i32) + (nop) + (tee_local $x + (if (result i32) + (i32.const 1) + (block (result i32) + (nop) + (i32.const 2) + ) + (get_local $x) + ) + ) + ) + (func $if-one-side-undo (; 21 ;) (type $FUNCSIG$i) (result i32) + (local $x i32) + (local $y i32) + (set_local $y + (i32.const 0) + ) + (set_local $x + (if (result i32) + (i32.const 1) + (block (result i32) + (nop) + (i32.const 2) + ) + (get_local $x) + ) + ) + (get_local $y) + ) + (func $if-one-side-multi (; 22 ;) (type $5) (param $0 i32) (result i32) + (nop) + (tee_local $0 + (if (result i32) + (i32.lt_s + (get_local $0) + (i32.const -1073741824) + ) + (block (result i32) + (nop) + (i32.const -1073741824) + ) + (block (result i32) + (nop) + (if (result i32) + (i32.gt_s + (get_local $0) + (i32.const 1073741823) + ) + (block (result i32) + (nop) + (i32.const 1073741823) + ) + (get_local $0) + ) + ) + ) + ) + ) + (func $if-one-side-undo-but-its-a-tee (; 23 ;) (type $5) (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $x i32) + (local $y i32) + (local $z i32) + (set_local $x + (if (result i32) + (i32.const -1) + (i32.const -2) + (get_local $x) + ) + ) + (drop + (call $if-one-side-undo-but-its-a-tee + (tee_local $x + (if (result i32) + (i32.const -3) + (i32.const -4) + (get_local $x) + ) + ) + ) + ) + (nop) + (drop + (i32.eqz + (tee_local $y + (if (result i32) + (i32.const -5) + (i32.const -6) + (get_local $y) + ) + ) + ) + ) + (nop) + (drop + (i32.add + (tee_local $z + (if (result i32) + (i32.const -7) + (i32.const -8) + (get_local $z) + ) + ) + (get_local $z) + ) + ) + (if + (block $label$1 (result i32) + (nop) + (nop) + (tee_local $4 + (if (result i32) + (tee_local $4 + (if (result i32) + (i32.const 1) + (block (result i32) + (nop) + (i32.const 2) + ) + (get_local $4) + ) + ) + (block (result i32) + (nop) + (i32.const 0) + ) + (get_local $4) + ) + ) + ) + (unreachable) + ) + (i32.const 0) + ) + (func $splittable-ifs-multicycle (; 24 ;) (type $5) (param $20 i32) (result i32) + (nop) + (tee_local $20 + (if (result i32) + (i32.const 1) + (if (result i32) + (i32.const 2) + (if (result i32) + (i32.const 3) + (i32.const 4) + (get_local $20) + ) + (get_local $20) + ) + (get_local $20) + ) + ) + ) + (func $update-getCounter (; 25 ;) (type $12) (param $0 i32) (param $1 f64) (param $2 f64) (param $3 f32) (param $4 i32) (result f64) + (set_global $global$0 + (i32.sub + (get_global $global$0) + (i32.const 1) + ) + ) + (set_global $global$0 + (i32.sub + (get_global $global$0) + (i32.const 1) + ) + ) + (loop $label$1 (result f64) + (set_global $global$0 + (i32.sub + (get_global $global$0) + (i32.const 1) + ) + ) + (set_global $global$0 + (i32.sub + (get_global $global$0) + (i32.const 1) + ) + ) + (call $fimport$0 + (tee_local $3 + (if (result f32) + (i32.eqz + (get_local $0) + ) + (f32.const 4623408228068004207103214e13) + (get_local $3) + ) + ) + ) + (set_global $global$0 + (i32.sub + (get_global $global$0) + (i32.const 1) + ) + ) + (if (result f64) + (get_global $global$0) + (block $block + (set_global $global$0 + (i32.sub + (get_global $global$0) + (i32.const 1) + ) + ) + (set_local $0 + (i32.const -65) + ) + (set_global $global$0 + (i32.sub + (get_global $global$0) + (i32.const 1) + ) + ) + (br $label$1) + ) + (f64.const -70) + ) + ) + ) ) (module (type $FUNCSIG$v (func)) @@ -1118,20 +1351,24 @@ (drop (if (result i32) (i32.const 1) - (block $block - (drop - (i32.const 2) - ) - (drop - (i32.const 3) + (block + (block $block + (drop + (i32.const 2) + ) + (drop + (i32.const 3) + ) + (br $out) ) - (br $out) (nop) ) - (block $block2 (result i32) - (nop) - (drop - (i32.const 5) + (block (result i32) + (block $block2 + (nop) + (drop + (i32.const 5) + ) ) (i32.const 4) ) @@ -1140,21 +1377,25 @@ (drop (if (result i32) (i32.const 6) - (block $block4 (result i32) - (nop) - (drop - (i32.const 8) + (block (result i32) + (block $block4 + (nop) + (drop + (i32.const 8) + ) ) (i32.const 7) ) - (block $block5 - (drop - (i32.const 9) - ) - (drop - (i32.const 10) + (block + (block $block5 + (drop + (i32.const 9) + ) + (drop + (i32.const 10) + ) + (br $out) ) - (br $out) (nop) ) ) @@ -1241,38 +1482,46 @@ (func $pick (; 16 ;) (type $FUNCSIG$v) (local $x i32) (local $y i32) - (drop + (set_local $x (get_local $y) ) - (if - (i32.const 1) - (drop + (drop + (if (result i32) (i32.const 1) + (block (result i32) + (nop) + (i32.const 1) + ) + (get_local $x) ) ) (drop (get_local $y) ) - (drop + (set_local $x (get_local $y) ) ) (func $pick-2 (; 17 ;) (type $FUNCSIG$v) (local $x i32) (local $y i32) - (drop + (set_local $y (get_local $x) ) - (if - (i32.const 1) - (drop + (drop + (if (result i32) (i32.const 1) + (block (result i32) + (nop) + (i32.const 1) + ) + (get_local $y) ) ) (drop (get_local $x) ) - (drop + (set_local $y (get_local $x) ) ) @@ -1284,29 +1533,39 @@ (nop) (nop) (set_local $z - (get_local $x) + (tee_local $y + (get_local $x) + ) ) (drop (get_local $x) ) - (if - (i32.const 1) - (drop + (set_local $y + (if (result i32) (i32.const 1) + (block (result i32) + (nop) + (i32.const 1) + ) + (get_local $y) ) ) (set_local $x (get_local $z) ) - (if - (i32.const 1) - (drop + (drop + (if (result i32) (i32.const 1) + (block (result i32) + (nop) + (i32.const 1) + ) + (get_local $y) ) ) (nop) (nop) - (drop + (set_local $y (get_local $x) ) (nop) @@ -1315,15 +1574,19 @@ (i32.const 2) ) ) - (if - (i32.const 1) - (drop + (drop + (if (result i32) (i32.const 1) + (block (result i32) + (nop) + (i32.const 1) + ) + (get_local $y) ) ) (nop) (nop) - (drop + (set_local $y (get_local $x) ) (set_local $z @@ -1379,9 +1642,11 @@ (nop) (i32.const 2) ) - (block $block (result i32) - (nop) - (nop) + (block (result i32) + (block $block + (nop) + (nop) + ) (get_local $x) ) ) diff --git a/test/passes/simplify-locals.wast b/test/passes/simplify-locals.wast index 60531717c..5396e6a5b 100644 --- a/test/passes/simplify-locals.wast +++ b/test/passes/simplify-locals.wast @@ -12,6 +12,8 @@ (import $_i64Subtract "env" "i64sub" (param i32 i32 i32 i32) (result i32)) (import $___udivmoddi4 "env" "moddi" (param i32 i32 i32 i32 i32) (result i32)) (import $lp "env" "lp" (param i32 i32) (result i32)) + (import "fuzzing-support" "log-f32" (func $fimport$0 (param f32))) + (global $global$0 (mut i32) (i32.const 10)) (func $contrast ;; check for tee and structure sinking (local $x i32) (local $y i32) @@ -882,6 +884,207 @@ ) ) ) + (func $if-one-side (result i32) + (local $x i32) + (if + (i32.const 1) + (set_local $x + (i32.const 2) + ) + ) + (get_local $x) + ) + (func $if-one-side-undo (result i32) + (local $x i32) + (local $y i32) + (set_local $y + (i32.const 0) + ) + (if + (i32.const 1) + (set_local $x + (i32.const 2) + ) + ) + (get_local $y) + ) + (func $if-one-side-multi (param $0 i32) (result i32) + (if + (i32.lt_s + (get_local $0) + (i32.const -1073741824) + ) + (set_local $0 + (i32.const -1073741824) + ) + (if + (i32.gt_s + (get_local $0) + (i32.const 1073741823) + ) + (set_local $0 + (i32.const 1073741823) + ) + ) + ) + (get_local $0) + ) + (func $if-one-side-undo-but-its-a-tee (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $x i32) + (local $y i32) + (local $z i32) + ;; break these splittable ifs up + (set_local $x + (if (result i32) + (i32.const -1) + (i32.const -2) + (get_local $x) + ) + ) + ;; oops, this one is a tee + (drop + (call $if-one-side-undo-but-its-a-tee + (tee_local $x + (if (result i32) + (i32.const -3) + (i32.const -4) + (get_local $x) + ) + ) + ) + ) + ;; sinkable + (set_local $y + (if (result i32) + (i32.const -5) + (i32.const -6) + (get_local $y) + ) + ) + (drop (i32.eqz (get_local $y))) + ;; tee-able at best + (set_local $z + (if (result i32) + (i32.const -7) + (i32.const -8) + (get_local $z) + ) + ) + (drop + (i32.add + (get_local $z) + (get_local $z) + ) + ) + (if + (block $label$1 (result i32) + (if + (i32.const 1) + (set_local $4 + (i32.const 2) + ) + ) + (if + (get_local $4) + (set_local $4 + (i32.const 0) + ) + ) + (get_local $4) + ) + (unreachable) + ) + (i32.const 0) + ) + (func $splittable-ifs-multicycle (param $20 i32) (result i32) + (set_local $20 + (if (result i32) + (i32.const 1) + (if (result i32) + (i32.const 2) + (if (result i32) + (i32.const 3) + (i32.const 4) + (get_local $20) + ) + (get_local $20) + ) + (get_local $20) + ) + ) + (get_local $20) + ) + (func $update-getCounter (param $0 i32) (param $1 f64) (param $2 f64) (param $3 f32) (param $4 i32) (result f64) + (set_global $global$0 + (i32.sub + (get_global $global$0) + (i32.const 1) + ) + ) + (set_global $global$0 + (i32.sub + (get_global $global$0) + (i32.const 1) + ) + ) + (loop $label$1 (result f64) + (set_global $global$0 + (i32.sub + (get_global $global$0) + (i32.const 1) + ) + ) + (set_global $global$0 + (i32.sub + (get_global $global$0) + (i32.const 1) + ) + ) + (call $fimport$0 + (tee_local $3 + (if (result f32) + (i32.eqz + (get_local $0) + ) + (f32.const 4623408228068004207103214e13) + (get_local $3) + ) + ) + ) + (set_global $global$0 + (i32.sub + (get_global $global$0) + (i32.const 1) + ) + ) + (if (result f64) + (get_global $global$0) + (block + (set_global $global$0 + (i32.sub + (get_global $global$0) + (i32.const 1) + ) + ) + (set_local $0 + (i32.const -65) + ) + (set_global $global$0 + (i32.sub + (get_global $global$0) + (i32.const 1) + ) + ) + (br $label$1) + ) + (f64.const -70) + ) + ) + ) ) (module (memory (shared 256 256)) |