diff options
-rw-r--r-- | src/passes/OptimizeInstructions.wast | 21 | ||||
-rw-r--r-- | src/passes/OptimizeInstructions.wast.processed | 21 | ||||
-rw-r--r-- | test/emcc_O2_hello_world.fromasm | 58 | ||||
-rw-r--r-- | test/emcc_O2_hello_world.fromasm.imprecise | 58 | ||||
-rw-r--r-- | test/emcc_hello_world.fromasm | 3880 | ||||
-rw-r--r-- | test/emcc_hello_world.fromasm.imprecise | 3864 | ||||
-rw-r--r-- | test/example/relooper-fuzz.txt | 39 | ||||
-rw-r--r-- | test/example/relooper-fuzz1.txt | 29 | ||||
-rw-r--r-- | test/memorygrowth.fromasm | 39 | ||||
-rw-r--r-- | test/memorygrowth.fromasm.imprecise | 39 | ||||
-rw-r--r-- | test/passes/optimize-instructions.txt | 15 | ||||
-rw-r--r-- | test/passes/optimize-instructions.wast | 18 |
12 files changed, 3722 insertions, 4359 deletions
diff --git a/src/passes/OptimizeInstructions.wast b/src/passes/OptimizeInstructions.wast index 7d5c56881..48a4e2c9d 100644 --- a/src/passes/OptimizeInstructions.wast +++ b/src/passes/OptimizeInstructions.wast @@ -19,8 +19,8 @@ ;; main function. each block here is a pattern pair of input => output (func $patterns + ;; flip if-else arms to get rid of an eqz (block - ;; flip if-else arms to get rid of an eqz (if (i32.eqz (call_import $i32.expr (i32.const 0)) @@ -34,6 +34,25 @@ (call_import $any.expr (i32.const 1)) ) ) + ;; equal 0 => eqz + (block + (i32.eq + (call_import $any.expr (i32.const 0)) + (i32.const 0) + ) + (i32.eqz + (call_import $any.expr (i32.const 0)) + ) + ) + (block + (i32.eq + (i32.const 0) + (call_import $any.expr (i32.const 0)) + ) + (i32.eqz + (call_import $any.expr (i32.const 0)) + ) + ) ;; De Morgans Laws (block (i32.eqz (i32.eq (call_import $i32.expr (i32.const 0)) (call_import $i32.expr (i32.const 1)))) diff --git a/src/passes/OptimizeInstructions.wast.processed b/src/passes/OptimizeInstructions.wast.processed index 61fde86c6..13ccc8241 100644 --- a/src/passes/OptimizeInstructions.wast.processed +++ b/src/passes/OptimizeInstructions.wast.processed @@ -19,8 +19,8 @@ "\n" ";; main function. each block here is a pattern pair of input => output\n" "(func $patterns\n" -"(block\n" ";; flip if-else arms to get rid of an eqz\n" +"(block\n" "(if\n" "(i32.eqz\n" "(call_import $i32.expr (i32.const 0))\n" @@ -34,6 +34,25 @@ "(call_import $any.expr (i32.const 1))\n" ")\n" ")\n" +";; equal 0 => eqz\n" +"(block\n" +"(i32.eq\n" +"(call_import $any.expr (i32.const 0))\n" +"(i32.const 0)\n" +")\n" +"(i32.eqz\n" +"(call_import $any.expr (i32.const 0))\n" +")\n" +")\n" +"(block\n" +"(i32.eq\n" +"(i32.const 0)\n" +"(call_import $any.expr (i32.const 0))\n" +")\n" +"(i32.eqz\n" +"(call_import $any.expr (i32.const 0))\n" +")\n" +")\n" ";; De Morgans Laws\n" "(block\n" "(i32.eqz (i32.eq (call_import $i32.expr (i32.const 0)) (call_import $i32.expr (i32.const 1))))\n" diff --git a/test/emcc_O2_hello_world.fromasm b/test/emcc_O2_hello_world.fromasm index c3ebe3d64..9d8e9644d 100644 --- a/test/emcc_O2_hello_world.fromasm +++ b/test/emcc_O2_hello_world.fromasm @@ -1626,9 +1626,8 @@ ) ) (i32.or - (i32.eq + (i32.eqz (get_local $5) - (i32.const 0) ) (i32.eq (get_local $5) @@ -1655,9 +1654,8 @@ ) (if (tee_local $5 - (i32.eq + (i32.eqz (get_local $19) - (i32.const 0) ) ) (block @@ -1722,13 +1720,11 @@ (tee_local $0 (if (i32.and - (i32.eq + (i32.eqz (get_local $34) - (i32.const 0) ) - (i32.eq + (i32.eqz (get_local $30) - (i32.const 0) ) ) (block @@ -3737,14 +3733,13 @@ ) (i32.const 0) (select - (i32.eq + (i32.eqz (i32.and (i32.load offset=12 (get_local $50) ) (i32.const 8) ) - (i32.const 0) ) (i32.const 0) (i32.eq @@ -3779,12 +3774,11 @@ ) (i32.const 7) ) - (i32.eq + (i32.eqz (i32.and (get_local $3) (i32.const 7) ) - (i32.const 0) ) ) ) @@ -3952,12 +3946,11 @@ ) (i32.const 7) ) - (i32.eq + (i32.eqz (i32.and (get_local $3) (i32.const 7) ) - (i32.const 0) ) ) ) @@ -3979,12 +3972,11 @@ ) (i32.const 7) ) - (i32.eq + (i32.eqz (i32.and (get_local $3) (i32.const 7) ) - (i32.const 0) ) ) ) @@ -5153,12 +5145,11 @@ ) (i32.const 7) ) - (i32.eq + (i32.eqz (i32.and (get_local $15) (i32.const 7) ) - (i32.const 0) ) ) ) @@ -5197,12 +5188,11 @@ ) (i32.const 7) ) - (i32.eq + (i32.eqz (i32.and (get_local $6) (i32.const 7) ) - (i32.const 0) ) ) ) @@ -5795,13 +5785,12 @@ (block (if (i32.or - (i32.eq + (i32.eqz (tee_local $2 (i32.load (i32.const 192) ) ) - (i32.const 0) ) (i32.lt_u (get_local $20) @@ -5890,12 +5879,11 @@ ) (i32.const 7) ) - (i32.eq + (i32.eqz (i32.and (get_local $2) (i32.const 7) ) - (i32.const 0) ) ) ) @@ -8495,11 +8483,10 @@ ) ) (set_local $1 - (i32.eq + (i32.eqz (call $___lockfile (get_local $0) ) - (i32.const 0) ) ) (set_local $2 @@ -8972,11 +8959,10 @@ ) ) ) - (i32.eq + (i32.eqz (i32.load (get_local $1) ) - (i32.const 0) ) ) (i32.const 0) @@ -9606,11 +9592,10 @@ ) (block (set_local $5 - (i32.eq + (i32.eqz (call $___lockfile (get_local $3) ) - (i32.const 0) ) ) (set_local $0 @@ -9668,15 +9653,13 @@ ) (if (if - (i32.eq - (i32.and - (i32.load - (get_local $0) - ) - (i32.const 64) + (i32.and + (i32.load + (get_local $0) ) - (i32.const 0) + (i32.const 64) ) + (i32.const 0) (block (i32.store (get_local $3) @@ -9703,7 +9686,6 @@ (i32.const 0) ) ) - (i32.const 0) ) (i32.store8 offset=75 (get_local $0) diff --git a/test/emcc_O2_hello_world.fromasm.imprecise b/test/emcc_O2_hello_world.fromasm.imprecise index fbcc3c46e..be1ef1660 100644 --- a/test/emcc_O2_hello_world.fromasm.imprecise +++ b/test/emcc_O2_hello_world.fromasm.imprecise @@ -1624,9 +1624,8 @@ ) ) (i32.or - (i32.eq + (i32.eqz (get_local $5) - (i32.const 0) ) (i32.eq (get_local $5) @@ -1653,9 +1652,8 @@ ) (if (tee_local $5 - (i32.eq + (i32.eqz (get_local $19) - (i32.const 0) ) ) (block @@ -1720,13 +1718,11 @@ (tee_local $0 (if (i32.and - (i32.eq + (i32.eqz (get_local $34) - (i32.const 0) ) - (i32.eq + (i32.eqz (get_local $30) - (i32.const 0) ) ) (block @@ -3735,14 +3731,13 @@ ) (i32.const 0) (select - (i32.eq + (i32.eqz (i32.and (i32.load offset=12 (get_local $50) ) (i32.const 8) ) - (i32.const 0) ) (i32.const 0) (i32.eq @@ -3777,12 +3772,11 @@ ) (i32.const 7) ) - (i32.eq + (i32.eqz (i32.and (get_local $3) (i32.const 7) ) - (i32.const 0) ) ) ) @@ -3950,12 +3944,11 @@ ) (i32.const 7) ) - (i32.eq + (i32.eqz (i32.and (get_local $3) (i32.const 7) ) - (i32.const 0) ) ) ) @@ -3977,12 +3970,11 @@ ) (i32.const 7) ) - (i32.eq + (i32.eqz (i32.and (get_local $3) (i32.const 7) ) - (i32.const 0) ) ) ) @@ -5151,12 +5143,11 @@ ) (i32.const 7) ) - (i32.eq + (i32.eqz (i32.and (get_local $15) (i32.const 7) ) - (i32.const 0) ) ) ) @@ -5195,12 +5186,11 @@ ) (i32.const 7) ) - (i32.eq + (i32.eqz (i32.and (get_local $6) (i32.const 7) ) - (i32.const 0) ) ) ) @@ -5793,13 +5783,12 @@ (block (if (i32.or - (i32.eq + (i32.eqz (tee_local $2 (i32.load (i32.const 192) ) ) - (i32.const 0) ) (i32.lt_u (get_local $20) @@ -5888,12 +5877,11 @@ ) (i32.const 7) ) - (i32.eq + (i32.eqz (i32.and (get_local $2) (i32.const 7) ) - (i32.const 0) ) ) ) @@ -8493,11 +8481,10 @@ ) ) (set_local $1 - (i32.eq + (i32.eqz (call $___lockfile (get_local $0) ) - (i32.const 0) ) ) (set_local $2 @@ -8970,11 +8957,10 @@ ) ) ) - (i32.eq + (i32.eqz (i32.load (get_local $1) ) - (i32.const 0) ) ) (i32.const 0) @@ -9604,11 +9590,10 @@ ) (block (set_local $5 - (i32.eq + (i32.eqz (call $___lockfile (get_local $3) ) - (i32.const 0) ) ) (set_local $0 @@ -9666,15 +9651,13 @@ ) (if (if - (i32.eq - (i32.and - (i32.load - (get_local $0) - ) - (i32.const 64) + (i32.and + (i32.load + (get_local $0) ) - (i32.const 0) + (i32.const 64) ) + (i32.const 0) (block (i32.store (get_local $3) @@ -9701,7 +9684,6 @@ (i32.const 0) ) ) - (i32.const 0) ) (i32.store8 offset=75 (get_local $0) diff --git a/test/emcc_hello_world.fromasm b/test/emcc_hello_world.fromasm index 7cb00db19..e70db6294 100644 --- a/test/emcc_hello_world.fromasm +++ b/test/emcc_hello_world.fromasm @@ -139,9 +139,8 @@ ) (func $setThrew (param $0 i32) (param $1 i32) (if - (i32.eq + (i32.eqz (get_global $__THREW__) - (i32.const 0) ) (block (set_global $__THREW__ @@ -435,13 +434,7 @@ (i32.const 2) ) (if - (i32.eq - (get_local $4) - (i32.const 0) - ) - (set_local $5 - (i32.const 775) - ) + (get_local $4) (block (set_local $3 (get_local $4) @@ -453,6 +446,9 @@ (i32.const 5) ) ) + (set_local $5 + (i32.const 775) + ) ) ) (if @@ -471,17 +467,17 @@ ) ) (if - (i32.eq - (i32.shr_s - (i32.shl - (i32.load8_s - (get_local $2) - ) - (i32.const 24) + (i32.shr_s + (i32.shl + (i32.load8_s + (get_local $2) ) (i32.const 24) ) - (i32.const 0) + (i32.const 24) + ) + (set_local $2 + (get_local $0) ) (block (set_local $1 @@ -489,28 +485,16 @@ ) (br $while-out$4) ) - (set_local $2 - (get_local $0) - ) ) (br $while-in$5) ) ) (if - (i32.eq - (tee_local $0 - (i32.add - (get_local $3) - (i32.const -1) - ) - ) - (i32.const 0) - ) - (block - (set_local $5 - (get_local $1) + (tee_local $0 + (i32.add + (get_local $3) + (i32.const -1) ) - (br $while-out$2) ) (block (set_local $3 @@ -520,6 +504,12 @@ (get_local $1) ) ) + (block + (set_local $5 + (get_local $1) + ) + (br $while-out$2) + ) ) (br $while-in$3) ) @@ -529,16 +519,13 @@ ) (func $___errno_location (result i32) (if - (i32.eq - (i32.load - (i32.const 16) - ) - (i32.const 0) + (i32.load + (i32.const 16) ) - (i32.const 60) (i32.load offset=60 (call_import $_pthread_self) ) + (i32.const 60) ) ) (func $___stdio_close (param $0 i32) (result i32) @@ -615,14 +602,13 @@ (i32.const 4) ) (if - (i32.eq + (i32.eqz (i32.and (i32.load (get_local $0) ) (i32.const 64) ) - (i32.const 0) ) (block (i32.store @@ -640,12 +626,13 @@ (get_local $5) ) (if - (i32.ne - (call_import $___syscall54 - (i32.const 54) - (get_local $3) + (i32.eqz + (i32.eqz + (call_import $___syscall54 + (i32.const 54) + (get_local $3) + ) ) - (i32.const 0) ) (i32.store8 offset=75 (get_local $0) @@ -747,38 +734,70 @@ (local $2 i32) (block $do-once$0 (if - (i32.eq - (get_local $0) - (i32.const 0) + (get_local $0) + (block + (if + (i32.le_s + (i32.load offset=76 + (get_local $0) + ) + (i32.const -1) + ) + (br $do-once$0 + (call $___fflush_unlocked + (get_local $0) + ) + ) + ) + (set_local $2 + (i32.eqz + (call $___lockfile + (get_local $0) + ) + ) + ) + (set_local $1 + (call $___fflush_unlocked + (get_local $0) + ) + ) + (if + (get_local $2) + (get_local $1) + (block + (call $___unlockfile + (get_local $0) + ) + (get_local $1) + ) + ) ) (block (set_local $0 (if - (i32.eq - (i32.load - (i32.const 12) - ) - (i32.const 0) + (i32.load + (i32.const 12) ) - (i32.const 0) (call $_fflush (i32.load (i32.const 12) ) ) + (i32.const 0) ) ) (call_import $___lock (i32.const 44) ) (if - (i32.ne - (tee_local $1 - (i32.load - (i32.const 40) + (i32.eqz + (i32.eqz + (tee_local $1 + (i32.load + (i32.const 40) + ) ) ) - (i32.const 0) ) (block (set_local $2 @@ -820,22 +839,23 @@ ) ) (if - (i32.ne - (get_local $0) - (i32.const 0) + (i32.eqz + (i32.eqz + (get_local $0) + ) ) (call $___unlockfile (get_local $1) ) ) (if - (i32.eq - (tee_local $0 - (i32.load offset=56 - (get_local $1) - ) + (tee_local $0 + (i32.load offset=56 + (get_local $1) ) - (i32.const 0) + ) + (set_local $1 + (get_local $0) ) (block (set_local $0 @@ -843,9 +863,6 @@ ) (br $while-out$2) ) - (set_local $1 - (get_local $0) - ) ) (br $while-in$3) ) @@ -857,44 +874,6 @@ ) (get_local $0) ) - (block - (if - (i32.le_s - (i32.load offset=76 - (get_local $0) - ) - (i32.const -1) - ) - (br $do-once$0 - (call $___fflush_unlocked - (get_local $0) - ) - ) - ) - (set_local $2 - (i32.eq - (call $___lockfile - (get_local $0) - ) - (i32.const 0) - ) - ) - (set_local $1 - (call $___fflush_unlocked - (get_local $0) - ) - ) - (if - (get_local $2) - (get_local $1) - (block - (call $___unlockfile - (get_local $0) - ) - (get_local $1) - ) - ) - ) ) ) ) @@ -1054,33 +1033,8 @@ (get_local $3) (tee_local $5 (if - (i32.eq - (i32.load - (i32.const 16) - ) - (i32.const 0) - ) - (block - (i32.store - (get_local $9) - (i32.load - (get_local $12) - ) - ) - (i32.store offset=4 - (get_local $9) - (get_local $4) - ) - (i32.store offset=8 - (get_local $9) - (get_local $6) - ) - (call $___syscall_ret - (call_import $___syscall146 - (i32.const 146) - (get_local $9) - ) - ) + (i32.load + (i32.const 16) ) (block (call_import $_pthread_cleanup_push @@ -1114,6 +1068,28 @@ ) (get_local $1) ) + (block + (i32.store + (get_local $9) + (i32.load + (get_local $12) + ) + ) + (i32.store offset=4 + (get_local $9) + (get_local $4) + ) + (i32.store offset=8 + (get_local $9) + (get_local $6) + ) + (call $___syscall_ret + (call_import $___syscall146 + (i32.const 146) + (get_local $9) + ) + ) + ) ) ) ) @@ -1473,16 +1449,20 @@ (set_local $2 (select (if - (i32.eq - (i32.load - (tee_local $10 - (i32.add - (get_local $0) - (i32.const 48) - ) + (i32.load + (tee_local $10 + (i32.add + (get_local $0) + (i32.const 48) ) ) - (i32.const 0) + ) + (call $_printf_core + (get_local $0) + (get_local $1) + (get_local $5) + (get_local $8) + (get_local $9) ) (block (set_local $2 @@ -1543,11 +1523,7 @@ ) ) (if - (i32.eq - (get_local $2) - (i32.const 0) - ) - (get_local $1) + (get_local $2) (block (drop (call_indirect $FUNCSIG$iiii @@ -1569,11 +1545,10 @@ (select (i32.const -1) (get_local $1) - (i32.eq + (i32.eqz (i32.load (get_local $11) ) - (i32.const 0) ) ) ) @@ -1599,18 +1574,12 @@ ) (get_local $1) ) + (get_local $1) ) ) - (call $_printf_core - (get_local $0) - (get_local $1) - (get_local $5) - (get_local $8) - (get_local $9) - ) ) (i32.const -1) - (i32.eq + (i32.eqz (i32.and (tee_local $1 (i32.load @@ -1619,7 +1588,6 @@ ) (i32.const 32) ) - (i32.const 0) ) ) ) @@ -1631,9 +1599,10 @@ ) ) (if - (i32.ne - (get_local $12) - (i32.const 0) + (i32.eqz + (i32.eqz + (get_local $12) + ) ) (call $___unlockfile (get_local $0) @@ -1655,24 +1624,29 @@ (local $6 i32) (local $7 i32) (if - (i32.eq - (tee_local $6 - (i32.load - (tee_local $5 - (i32.add - (get_local $2) - (i32.const 16) - ) + (tee_local $6 + (i32.load + (tee_local $5 + (i32.add + (get_local $2) + (i32.const 16) ) ) ) - (i32.const 0) + ) + (block + (set_local $3 + (get_local $6) + ) + (set_local $7 + (i32.const 5) + ) ) (if - (i32.eq - (call $___towrite - (get_local $2) - ) + (call $___towrite + (get_local $2) + ) + (set_local $4 (i32.const 0) ) (block @@ -1685,17 +1659,6 @@ (i32.const 5) ) ) - (set_local $4 - (i32.const 0) - ) - ) - (block - (set_local $3 - (get_local $6) - ) - (set_local $7 - (i32.const 5) - ) ) ) (block $label$break$L5 @@ -1768,9 +1731,8 @@ (loop $while-in$3 (block $while-out$2 (if - (i32.eq + (i32.eqz (get_local $3) - (i32.const 0) ) (block (set_local $2 @@ -1921,16 +1883,23 @@ (get_local $1) ) (if - (i32.eq - (i32.and - (tee_local $1 - (i32.load - (get_local $0) - ) + (i32.and + (tee_local $1 + (i32.load + (get_local $0) ) - (i32.const 8) ) - (i32.const 0) + (i32.const 8) + ) + (block + (i32.store + (get_local $0) + (i32.or + (get_local $1) + (i32.const 32) + ) + ) + (i32.const -1) ) (block (i32.store offset=8 @@ -1964,26 +1933,12 @@ ) (i32.const 0) ) - (block - (i32.store - (get_local $0) - (i32.or - (get_local $1) - (i32.const 32) - ) - ) - (i32.const -1) - ) ) ) (func $_wcrtomb (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (block $do-once$0 (if - (i32.eq - (get_local $0) - (i32.const 0) - ) - (i32.const 1) + (get_local $0) (block (if (i32.lt_u @@ -2180,21 +2135,19 @@ ) ) ) + (i32.const 1) ) ) ) (func $_wctomb (param $0 i32) (param $1 i32) (result i32) (if - (i32.eq - (get_local $0) - (i32.const 0) - ) - (i32.const 0) + (get_local $0) (call $_wcrtomb (get_local $0) (get_local $1) (i32.const 0) ) + (i32.const 0) ) ) (func $_memchr (param $0 i32) (param $1 i32) (param $2 i32) (result i32) @@ -2443,18 +2396,19 @@ ) ) (br_if $while-out$5 - (i32.ne - (i32.and - (i32.xor - (i32.and - (get_local $6) + (i32.eqz + (i32.eqz + (i32.and + (i32.xor + (i32.and + (get_local $6) + (i32.const -2139062144) + ) (i32.const -2139062144) ) - (i32.const -2139062144) + (get_local $1) ) - (get_local $1) ) - (i32.const 0) ) ) (set_local $1 @@ -2518,26 +2472,23 @@ (i32.const 11) ) (if - (i32.eq - (get_local $12) - (i32.const 0) - ) + (get_local $12) (block - (set_local $7 - (i32.const 0) + (set_local $10 + (get_local $12) ) - (set_local $8 + (set_local $9 (get_local $13) ) - (br $label$break$L8) ) (block - (set_local $10 - (get_local $12) + (set_local $7 + (i32.const 0) ) - (set_local $9 + (set_local $8 (get_local $13) ) + (br $label$break$L8) ) ) ) @@ -2579,31 +2530,28 @@ ) ) (if - (i32.eq - (tee_local $1 - (i32.add - (get_local $10) - (i32.const -1) - ) + (tee_local $1 + (i32.add + (get_local $10) + (i32.const -1) ) - (i32.const 0) ) (block - (set_local $7 - (i32.const 0) + (set_local $10 + (get_local $1) ) - (set_local $8 + (set_local $9 (get_local $2) ) - (br $while-out$7) ) (block - (set_local $10 - (get_local $1) + (set_local $7 + (i32.const 0) ) - (set_local $9 + (set_local $8 (get_local $2) ) + (br $while-out$7) ) ) (br $while-in$8) @@ -2685,18 +2633,15 @@ ) ) (if - (i32.eq - (i32.load - (get_local $3) - ) - (i32.const 0) - ) - (set_local $1 - (i32.const -1) + (i32.load + (get_local $3) ) (set_local $2 (i32.const 3) ) + (set_local $1 + (i32.const -1) + ) ) ) (set_local $2 @@ -2781,11 +2726,10 @@ ) (func $_cleanup (param $0 i32) (if - (i32.eq + (i32.eqz (i32.load offset=68 (get_local $0) ) - (i32.const 0) ) (call $___unlockfile (get_local $0) @@ -3052,19 +2996,19 @@ ) ) (if - (i32.eq - (i32.shr_s - (i32.shl - (tee_local $1 - (i32.load8_s - (get_local $20) - ) + (i32.shr_s + (i32.shl + (tee_local $1 + (i32.load8_s + (get_local $20) ) - (i32.const 24) ) (i32.const 24) ) - (i32.const 0) + (i32.const 24) + ) + (set_local $5 + (get_local $20) ) (block (set_local $82 @@ -3078,9 +3022,6 @@ ) (br $label$break$L1) ) - (set_local $5 - (get_local $20) - ) ) (loop $label$continue$L9 (block $label$break$L9 @@ -3222,14 +3163,13 @@ (if (get_local $44) (if - (i32.eq + (i32.eqz (i32.and (i32.load (get_local $0) ) (i32.const 32) ) - (i32.const 0) ) (call $___fwritex (get_local $20) @@ -3358,7 +3298,7 @@ (loop $while-in$11 (block $while-out$10 (br_if $label$break$L25 - (i32.eq + (i32.eqz (i32.and (i32.shl (i32.const 1) @@ -3369,7 +3309,6 @@ ) (i32.const 75913) ) - (i32.const 0) ) ) (set_local $8 @@ -3547,9 +3486,10 @@ (i32.const 0) ) (if - (i32.ne - (get_local $11) - (i32.const 0) + (i32.eqz + (i32.eqz + (get_local $11) + ) ) (block (set_local $24 @@ -3941,9 +3881,10 @@ ) ) (if - (i32.ne - (get_local $21) - (i32.const 0) + (i32.eqz + (i32.eqz + (get_local $21) + ) ) (block (set_local $24 @@ -4080,7 +4021,7 @@ ) ) (if - (i32.eq + (i32.eqz (i32.shr_s (i32.shl (get_local $1) @@ -4088,7 +4029,6 @@ ) (i32.const 24) ) - (i32.const 0) ) (block (set_local $24 @@ -4256,12 +4196,11 @@ (i32.const -65537) ) ) - (i32.eq + (i32.eqz (i32.and (get_local $8) (i32.const 8192) ) - (i32.const 0) ) ) ) @@ -4516,7 +4455,7 @@ ) (if (i32.and - (i32.eq + (i32.eqz (tee_local $5 (i32.load (tee_local $1 @@ -4524,15 +4463,13 @@ ) ) ) - (i32.const 0) ) - (i32.eq + (i32.eqz (tee_local $1 (i32.load offset=4 (get_local $1) ) ) - (i32.const 0) ) ) (set_local $6 @@ -4564,7 +4501,7 @@ ) (br_if $while-out$38 (i32.and - (i32.eq + (i32.eqz (tee_local $5 (call $_bitshift64Lshr (get_local $5) @@ -4572,13 +4509,11 @@ (i32.const 3) ) ) - (i32.const 0) ) - (i32.eq + (i32.eqz (tee_local $1 (get_global $tempRet0) ) - (i32.const 0) ) ) ) @@ -4589,30 +4524,9 @@ ) (set_local $58 (if - (i32.eq - (i32.and - (get_local $18) - (i32.const 8) - ) - (i32.const 0) - ) - (block - (set_local $34 - (get_local $18) - ) - (set_local $32 - (get_local $10) - ) - (set_local $35 - (i32.const 0) - ) - (set_local $36 - (i32.const 4091) - ) - (set_local $12 - (i32.const 77) - ) - (get_local $6) + (i32.and + (get_local $18) + (i32.const 8) ) (block (set_local $5 @@ -4650,6 +4564,24 @@ ) (get_local $6) ) + (block + (set_local $34 + (get_local $18) + ) + (set_local $32 + (get_local $10) + ) + (set_local $35 + (i32.const 0) + ) + (set_local $36 + (i32.const 4091) + ) + (set_local $12 + (i32.const 77) + ) + (get_local $6) + ) ) ) (br $switch$24) @@ -4712,26 +4644,37 @@ ) (set_local $33 (if - (i32.eq - (i32.and - (get_local $18) - (i32.const 2048) + (i32.and + (get_local $18) + (i32.const 2048) + ) + (block + (set_local $59 + (get_local $33) ) - (i32.const 0) + (set_local $60 + (i32.const 1) + ) + (set_local $61 + (i32.const 4092) + ) + (set_local $12 + (i32.const 76) + ) + (get_local $5) ) (block (set_local $1 (select (i32.const 4091) (i32.const 4093) - (i32.eq + (i32.eqz (tee_local $6 (i32.and (get_local $18) (i32.const 1) ) ) - (i32.const 0) ) ) ) @@ -4749,21 +4692,6 @@ ) (get_local $5) ) - (block - (set_local $59 - (get_local $33) - ) - (set_local $60 - (i32.const 1) - ) - (set_local $61 - (i32.const 4092) - ) - (set_local $12 - (i32.const 76) - ) - (get_local $5) - ) ) ) (br $switch$24) @@ -4884,9 +4812,12 @@ ) (set_local $12 (if - (i32.eq - (get_local $10) - (i32.const 0) + (get_local $10) + (block + (set_local $69 + (get_local $10) + ) + (i32.const 86) ) (block (call $_pad @@ -4901,12 +4832,6 @@ ) (i32.const 98) ) - (block - (set_local $69 - (get_local $10) - ) - (i32.const 86) - ) ) ) (br $switch$24) @@ -4944,37 +4869,33 @@ (i32.const 1) ) (if - (i32.eq - (i32.and - (get_local $18) - (i32.const 2048) + (i32.and + (get_local $18) + (i32.const 2048) + ) + (block + (set_local $39 + (i32.const 4111) ) - (i32.const 0) + (i32.const 1) ) (block (set_local $39 (select (i32.const 4109) (i32.const 4114) - (i32.eq + (i32.eqz (tee_local $1 (i32.and (get_local $18) (i32.const 1) ) ) - (i32.const 0) ) ) ) (get_local $1) ) - (block - (set_local $39 - (i32.const 4111) - ) - (i32.const 1) - ) ) ) ) @@ -5052,14 +4973,13 @@ (get_local $39) (i32.const 9) ) - (i32.eq + (i32.eqz (tee_local $6 (i32.and (get_local $26) (i32.const 32) ) ) - (i32.const 0) ) ) ) @@ -5076,14 +4996,13 @@ (get_local $10) (i32.const 11) ) - (i32.eq + (i32.eqz (tee_local $1 (i32.sub (i32.const 12) (get_local $10) ) ) - (i32.const 0) ) ) (get_local $14) @@ -5100,14 +5019,13 @@ ) ) (br_if $while-out$60 - (i32.eq + (i32.eqz (tee_local $1 (i32.add (get_local $1) (i32.const -1) ) ) - (i32.const 0) ) ) (br $while-in$61) @@ -5241,12 +5159,11 @@ ) ) (set_local $13 - (i32.eq + (i32.eqz (i32.and (get_local $18) (i32.const 8) ) - (i32.const 0) ) ) (set_local $11 @@ -5390,14 +5307,13 @@ (get_local $18) ) (if - (i32.eq + (i32.eqz (i32.and (i32.load (get_local $0) ) (i32.const 32) ) - (i32.const 0) ) (call $___fwritex (get_local $9) @@ -5422,14 +5338,13 @@ ) ) (if - (i32.eq + (i32.eqz (i32.and (i32.load (get_local $0) ) (i32.const 32) ) - (i32.const 0) ) (call $___fwritex (get_local $29) @@ -5456,14 +5371,13 @@ (i32.const 0) ) (if - (i32.eq + (i32.eqz (i32.and (i32.load (get_local $0) ) (i32.const 32) ) - (i32.const 0) ) (call $___fwritex (get_local $8) @@ -5689,9 +5603,8 @@ ) (br_if $do-once$70 (get_local $8) - (i32.eq + (i32.eqz (get_local $5) - (i32.const 0) ) ) (i32.store @@ -5717,21 +5630,18 @@ ) ) (if - (i32.eq - (i32.load - (tee_local $5 - (i32.add - (get_local $13) - (i32.const -4) - ) + (i32.load + (tee_local $5 + (i32.add + (get_local $13) + (i32.const -4) ) ) - (i32.const 0) ) + (br $while-out$74) (set_local $13 (get_local $5) ) - (br $while-out$74) ) (br $while-in$75) ) @@ -5898,19 +5808,17 @@ (i32.const 4) ) (get_local $7) - (i32.eq + (i32.eqz (i32.load (get_local $7) ) - (i32.const 0) ) ) ) (br_if $do-once$78 (get_local $5) - (i32.eq + (i32.eqz (get_local $11) - (i32.const 0) ) ) (i32.store @@ -5931,11 +5839,10 @@ (i32.const 4) ) (get_local $7) - (i32.eq + (i32.eqz (i32.load (get_local $7) ) - (i32.const 0) ) ) ) @@ -6231,7 +6138,7 @@ (get_local $27) ) ) - (i32.eq + (i32.eqz (tee_local $15 (i32.and (call_import $i32u-rem @@ -6245,7 +6152,6 @@ (i32.const -1) ) ) - (i32.const 0) ) ) ) @@ -6254,7 +6160,7 @@ (select (f64.const 9007199254740992) (f64.const 9007199254740994) - (i32.eq + (i32.eqz (i32.and (i32.and (call_import $i32u-div @@ -6265,7 +6171,6 @@ ) (i32.const 1) ) - (i32.const 0) ) ) ) @@ -6300,11 +6205,7 @@ (set_local $14 (block $do-once$90 (if - (i32.eq - (get_local $51) - (i32.const 0) - ) - (get_local $14) + (get_local $51) (block (br_if $do-once$90 (get_local $14) @@ -6330,6 +6231,7 @@ (get_local $14) ) ) + (get_local $14) ) ) ) @@ -6532,19 +6434,13 @@ ) ) (if - (i32.eq - (i32.load - (tee_local $5 - (i32.add - (get_local $6) - (i32.const -4) - ) + (i32.load + (tee_local $5 + (i32.add + (get_local $6) + (i32.const -4) ) ) - (i32.const 0) - ) - (set_local $6 - (get_local $5) ) (block (set_local $11 @@ -6555,6 +6451,9 @@ ) (br $while-out$96) ) + (set_local $6 + (get_local $5) + ) ) (br $while-in$97) ) @@ -6617,14 +6516,15 @@ ) ) (if - (i32.ne - (tee_local $1 - (i32.and - (get_local $18) - (i32.const 8) + (i32.eqz + (i32.eqz + (tee_local $1 + (i32.and + (get_local $18) + (i32.const 8) + ) ) ) - (i32.const 0) ) (block (set_local $15 @@ -6643,7 +6543,7 @@ (get_local $11) (block (if - (i32.eq + (i32.eqz (tee_local $1 (i32.load (i32.add @@ -6652,7 +6552,6 @@ ) ) ) - (i32.const 0) ) (block (set_local $6 @@ -6662,29 +6561,26 @@ ) ) (if - (i32.eq - (i32.and - (call_import $i32u-rem - (get_local $1) - (i32.const 10) - ) - (i32.const -1) + (i32.and + (call_import $i32u-rem + (get_local $1) + (i32.const 10) ) - (i32.const 0) + (i32.const -1) ) (block - (set_local $5 - (i32.const 10) - ) (set_local $6 (i32.const 0) ) + (br $do-once$100) ) (block + (set_local $5 + (i32.const 10) + ) (set_local $6 (i32.const 0) ) - (br $do-once$100) ) ) (loop $while-in$103 @@ -6696,20 +6592,21 @@ ) ) (br_if $while-out$102 - (i32.ne - (i32.and - (call_import $i32u-rem - (get_local $1) - (tee_local $5 - (i32.mul - (get_local $5) - (i32.const 10) + (i32.eqz + (i32.eqz + (i32.and + (call_import $i32u-rem + (get_local $1) + (tee_local $5 + (i32.mul + (get_local $5) + (i32.const 10) + ) ) ) + (i32.const -1) ) - (i32.const -1) ) - (i32.const 0) ) ) (br $while-in$103) @@ -6994,14 +6891,13 @@ (get_local $18) ) (if - (i32.eq + (i32.eqz (i32.and (i32.load (get_local $0) ) (i32.const 32) ) - (i32.const 0) ) (call $___fwritex (get_local $39) @@ -7098,14 +6994,13 @@ ) ) (if - (i32.eq + (i32.eqz (i32.and (i32.load (get_local $0) ) (i32.const 32) ) - (i32.const 0) ) (drop (call $___fwritex @@ -7140,20 +7035,22 @@ ) (block $do-once$114 (if - (i32.ne - (get_local $1) - (i32.const 0) + (i32.eqz + (i32.eqz + (get_local $1) + ) ) (block (br_if $do-once$114 - (i32.ne - (i32.and - (i32.load - (get_local $0) + (i32.eqz + (i32.eqz + (i32.and + (i32.load + (get_local $0) + ) + (i32.const 32) ) - (i32.const 32) ) - (i32.const 0) ) ) (drop @@ -7214,14 +7111,13 @@ ) ) (if - (i32.eq + (i32.eqz (i32.and (i32.load (get_local $0) ) (i32.const 32) ) - (i32.const 0) ) (drop (call $___fwritex @@ -7303,9 +7199,8 @@ ) (block (set_local $9 - (i32.eq + (i32.eqz (get_local $8) - (i32.const 0) ) ) (set_local $5 @@ -7351,14 +7246,13 @@ ) ) (if - (i32.eq + (i32.eqz (i32.and (i32.load (get_local $0) ) (i32.const 32) ) - (i32.const 0) ) (call $___fwritex (get_local $8) @@ -7376,14 +7270,15 @@ ) ) (br_if $do-once$122 - (i32.ne - (i32.and - (i32.load - (get_local $0) + (i32.eqz + (i32.eqz + (i32.and + (i32.load + (get_local $0) + ) + (i32.const 32) ) - (i32.const 32) ) - (i32.const 0) ) ) (drop @@ -7440,14 +7335,13 @@ ) ) (if - (i32.eq + (i32.eqz (i32.and (i32.load (get_local $0) ) (i32.const 32) ) - (i32.const 0) ) (drop (call $___fwritex @@ -7504,14 +7398,15 @@ (i32.const 0) ) (br_if $do-once$106 - (i32.ne - (i32.and - (i32.load - (get_local $0) + (i32.eqz + (i32.eqz + (i32.and + (i32.load + (get_local $0) + ) + (i32.const 32) ) - (i32.const 32) ) - (i32.const 0) ) ) (drop @@ -7601,20 +7496,18 @@ (get_local $7) ) (if - (i32.eq + (i32.eqz (i32.and (if - (i32.eq - (i32.and - (tee_local $1 - (i32.load - (get_local $0) - ) + (i32.and + (tee_local $1 + (i32.load + (get_local $0) ) - (i32.const 32) ) - (i32.const 0) + (i32.const 32) ) + (get_local $1) (block (drop (call $___fwritex @@ -7627,11 +7520,9 @@ (get_local $0) ) ) - (get_local $1) ) (i32.const 32) ) - (i32.const 0) ) (call $___fwritex (get_local $8) @@ -7701,7 +7592,7 @@ (set_local $58 (if (i32.and - (i32.eq + (i32.eqz (tee_local $5 (i32.load (tee_local $1 @@ -7709,15 +7600,13 @@ ) ) ) - (i32.const 0) ) - (i32.eq + (i32.eqz (tee_local $1 (i32.load offset=4 (get_local $1) ) ) - (i32.const 0) ) ) (block @@ -7772,7 +7661,7 @@ ) (br_if $while-out$129 (i32.and - (i32.eq + (i32.eqz (tee_local $5 (call $_bitshift64Lshr (get_local $5) @@ -7780,13 +7669,11 @@ (i32.const 4) ) ) - (i32.const 0) ) - (i32.eq + (i32.eqz (tee_local $1 (get_global $tempRet0) ) - (i32.const 0) ) ) ) @@ -7795,27 +7682,24 @@ ) (if (i32.or - (i32.eq + (i32.eqz (i32.and (get_local $46) (i32.const 8) ) - (i32.const 0) ) (i32.and - (i32.eq + (i32.eqz (i32.load (tee_local $1 (get_local $19) ) ) - (i32.const 0) ) - (i32.eq + (i32.eqz (i32.load offset=4 (get_local $1) ) - (i32.const 0) ) ) ) @@ -7905,7 +7789,7 @@ (i32.const 0) ) (set_local $5 - (i32.eq + (i32.eqz (tee_local $1 (call $_memchr (get_local $50) @@ -7913,7 +7797,6 @@ (get_local $10) ) ) - (i32.const 0) ) ) (set_local $47 @@ -7972,13 +7855,12 @@ (loop $while-in$132 (block $while-out$131 (br_if $while-out$131 - (i32.eq + (i32.eqz (tee_local $1 (i32.load (get_local $6) ) ) - (i32.const 0) ) ) (br_if $while-out$131 @@ -8050,18 +7932,7 @@ (get_local $18) ) (if - (i32.eq - (get_local $7) - (i32.const 0) - ) - (block - (set_local $38 - (i32.const 0) - ) - (set_local $12 - (i32.const 98) - ) - ) + (get_local $7) (block (set_local $6 (i32.const 0) @@ -8074,13 +7945,12 @@ (loop $while-in$134 (block $while-out$133 (if - (i32.eq + (i32.eqz (tee_local $1 (i32.load (get_local $8) ) ) - (i32.const 0) ) (block (set_local $38 @@ -8124,14 +7994,13 @@ ) ) (if - (i32.eq + (i32.eqz (i32.and (i32.load (get_local $0) ) (i32.const 32) ) - (i32.const 0) ) (call $___fwritex (get_local $63) @@ -8161,6 +8030,14 @@ ) ) ) + (block + (set_local $38 + (i32.const 0) + ) + (set_local $12 + (i32.const 98) + ) + ) ) ) ) @@ -8360,14 +8237,13 @@ (get_local $37) ) (if - (i32.eq + (i32.eqz (i32.and (i32.load (get_local $0) ) (i32.const 32) ) - (i32.const 0) ) (call $___fwritex (get_local $48) @@ -8393,14 +8269,13 @@ (i32.const 0) ) (if - (i32.eq + (i32.eqz (i32.and (i32.load (get_local $0) ) (i32.const 32) ) - (i32.const 0) ) (call $___fwritex (get_local $47) @@ -8437,18 +8312,12 @@ (i32.const 242) ) (if - (i32.eq - (get_local $0) - (i32.const 0) + (get_local $0) + (set_local $24 + (get_local $82) ) (if - (i32.eq - (get_local $83) - (i32.const 0) - ) - (set_local $24 - (i32.const 0) - ) + (get_local $83) (block (set_local $1 (i32.const 1) @@ -8456,7 +8325,7 @@ (loop $while-in$137 (block $while-out$136 (br_if $while-out$136 - (i32.eq + (i32.eqz (tee_local $0 (i32.load (i32.add @@ -8468,7 +8337,6 @@ ) ) ) - (i32.const 0) ) ) (call $_pop_arg_336 @@ -8516,17 +8384,18 @@ ) ) (if - (i32.ne - (i32.load - (i32.add - (get_local $4) - (i32.shl - (get_local $1) - (i32.const 2) + (i32.eqz + (i32.eqz + (i32.load + (i32.add + (get_local $4) + (i32.shl + (get_local $1) + (i32.const 2) + ) ) ) ) - (i32.const 0) ) (block (set_local $24 @@ -8558,9 +8427,9 @@ ) ) ) - ) - (set_local $24 - (get_local $82) + (set_local $24 + (i32.const 0) + ) ) ) ) @@ -8987,9 +8856,8 @@ (i32.const 0) ) (i32.and - (i32.eq + (i32.eqz (get_local $1) - (i32.const 0) ) (i32.gt_u (get_local $0) @@ -9084,9 +8952,10 @@ ) ) (if - (i32.ne - (get_local $3) - (i32.const 0) + (i32.eqz + (i32.eqz + (get_local $3) + ) ) (block (set_local $1 @@ -9176,12 +9045,11 @@ (get_local $2) (get_local $3) ) - (i32.eq + (i32.eqz (i32.and (get_local $4) (i32.const 73728) ) - (i32.const 0) ) ) (block @@ -9208,7 +9076,7 @@ ) ) (set_local $4 - (i32.eq + (i32.eqz (i32.and (tee_local $1 (i32.load @@ -9217,7 +9085,6 @@ ) (i32.const 32) ) - (i32.const 0) ) ) (if @@ -9238,7 +9105,7 @@ (loop $while-in$3 (block $while-out$2 (set_local $4 - (i32.eq + (i32.eqz (i32.and (tee_local $1 (if @@ -9260,7 +9127,6 @@ ) (i32.const 32) ) - (i32.const 0) ) ) (br_if $while-out$2 @@ -9366,41 +9232,42 @@ ) (block (if - (i32.ne - (i32.and - (tee_local $25 - (i32.shr_u - (tee_local $4 - (i32.load - (i32.const 176) + (i32.eqz + (i32.eqz + (i32.and + (tee_local $25 + (i32.shr_u + (tee_local $4 + (i32.load + (i32.const 176) + ) ) - ) - (tee_local $22 - (i32.shr_u - (tee_local $6 - (select - (i32.const 16) - (i32.and - (i32.add + (tee_local $22 + (i32.shr_u + (tee_local $6 + (select + (i32.const 16) + (i32.and + (i32.add + (get_local $0) + (i32.const 11) + ) + (i32.const -8) + ) + (i32.lt_u (get_local $0) (i32.const 11) ) - (i32.const -8) - ) - (i32.lt_u - (get_local $0) - (i32.const 11) ) ) + (i32.const 3) ) - (i32.const 3) ) ) ) + (i32.const 3) ) - (i32.const 3) ) - (i32.const 0) ) (block (set_local $2 @@ -9546,9 +9413,10 @@ ) (block (if - (i32.ne - (get_local $25) - (i32.const 0) + (i32.eqz + (i32.eqz + (get_local $25) + ) ) (block (set_local $1 @@ -9797,9 +9665,10 @@ (get_local $9) ) (if - (i32.ne - (get_local $7) - (i32.const 0) + (i32.eqz + (i32.eqz + (get_local $7) + ) ) (block (set_local $0 @@ -9825,39 +9694,18 @@ ) ) (if - (i32.eq - (i32.and - (tee_local $1 - (i32.load - (i32.const 176) - ) - ) - (tee_local $2 - (i32.shl - (i32.const 1) - (get_local $2) - ) + (i32.and + (tee_local $1 + (i32.load + (i32.const 176) ) ) - (i32.const 0) - ) - (block - (i32.store - (i32.const 176) - (i32.or - (get_local $1) + (tee_local $2 + (i32.shl + (i32.const 1) (get_local $2) ) ) - (set_local $5 - (i32.add - (get_local $8) - (i32.const 8) - ) - ) - (set_local $12 - (get_local $8) - ) ) (if (i32.lt_u @@ -9885,6 +9733,24 @@ ) ) ) + (block + (i32.store + (i32.const 176) + (i32.or + (get_local $1) + (get_local $2) + ) + ) + (set_local $5 + (i32.add + (get_local $8) + (i32.const 8) + ) + ) + (set_local $12 + (get_local $8) + ) + ) ) (i32.store (get_local $5) @@ -9918,13 +9784,14 @@ ) ) (if - (i32.ne - (tee_local $0 - (i32.load - (i32.const 180) + (i32.eqz + (i32.eqz + (tee_local $0 + (i32.load + (i32.const 180) + ) ) ) - (i32.const 0) ) (block (set_local $0 @@ -10044,22 +9911,22 @@ (loop $while-in$7 (block $while-out$6 (if - (i32.eq - (tee_local $0 - (i32.load offset=16 - (get_local $4) - ) + (tee_local $0 + (i32.load offset=16 + (get_local $4) ) - (i32.const 0) + ) + (set_local $1 + (get_local $0) ) (if - (i32.eq - (tee_local $0 - (i32.load offset=20 - (get_local $4) - ) + (tee_local $0 + (i32.load offset=20 + (get_local $4) ) - (i32.const 0) + ) + (set_local $1 + (get_local $0) ) (block (set_local $7 @@ -10070,12 +9937,6 @@ ) (br $while-out$6) ) - (set_local $1 - (get_local $0) - ) - ) - (set_local $1 - (get_local $0) ) ) (set_local $0 @@ -10154,32 +10015,32 @@ ) (block (if - (i32.eq + (tee_local $2 + (i32.load + (tee_local $8 + (i32.add + (get_local $10) + (i32.const 20) + ) + ) + ) + ) + (set_local $4 + (get_local $2) + ) + (if (tee_local $2 (i32.load (tee_local $8 (i32.add (get_local $10) - (i32.const 20) + (i32.const 16) ) ) ) ) - (i32.const 0) - ) - (if - (i32.eq - (tee_local $2 - (i32.load - (tee_local $8 - (i32.add - (get_local $10) - (i32.const 16) - ) - ) - ) - ) - (i32.const 0) + (set_local $4 + (get_local $2) ) (block (set_local $15 @@ -10187,29 +10048,24 @@ ) (br $do-once$8) ) - (set_local $4 - (get_local $2) - ) - ) - (set_local $4 - (get_local $2) ) ) (loop $while-in$11 (block $while-out$10 (if - (i32.ne - (tee_local $2 - (i32.load - (tee_local $5 - (i32.add - (get_local $4) - (i32.const 20) + (i32.eqz + (i32.eqz + (tee_local $2 + (i32.load + (tee_local $5 + (i32.add + (get_local $4) + (i32.const 20) + ) ) ) ) ) - (i32.const 0) ) (block (set_local $4 @@ -10222,20 +10078,16 @@ ) ) (if - (i32.eq - (tee_local $2 - (i32.load - (tee_local $5 - (i32.add - (get_local $4) - (i32.const 16) - ) + (tee_local $2 + (i32.load + (tee_local $5 + (i32.add + (get_local $4) + (i32.const 16) ) ) ) - (i32.const 0) ) - (br $while-out$10) (block (set_local $4 (get_local $2) @@ -10244,6 +10096,7 @@ (get_local $5) ) ) + (br $while-out$10) ) (br $while-in$11) ) @@ -10323,9 +10176,10 @@ ) (block $do-once$12 (if - (i32.ne - (get_local $1) - (i32.const 0) + (i32.eqz + (i32.eqz + (get_local $1) + ) ) (block (if @@ -10353,9 +10207,8 @@ (get_local $15) ) (if - (i32.eq + (i32.eqz (get_local $15) - (i32.const 0) ) (block (i32.store @@ -10409,9 +10262,8 @@ ) ) (br_if $do-once$12 - (i32.eq + (i32.eqz (get_local $15) - (i32.const 0) ) ) ) @@ -10432,13 +10284,14 @@ (get_local $1) ) (if - (i32.ne - (tee_local $1 - (i32.load offset=16 - (get_local $10) + (i32.eqz + (i32.eqz + (tee_local $1 + (i32.load offset=16 + (get_local $10) + ) ) ) - (i32.const 0) ) (if (i32.lt_u @@ -10459,13 +10312,14 @@ ) ) (if - (i32.ne - (tee_local $0 - (i32.load offset=20 - (get_local $10) + (i32.eqz + (i32.eqz + (tee_local $0 + (i32.load offset=20 + (get_local $10) + ) ) ) - (i32.const 0) ) (if (i32.lt_u @@ -10552,13 +10406,14 @@ (get_local $7) ) (if - (i32.ne - (tee_local $0 - (i32.load - (i32.const 184) + (i32.eqz + (i32.eqz + (tee_local $0 + (i32.load + (i32.const 184) + ) ) ) - (i32.const 0) ) (block (set_local $1 @@ -10584,39 +10439,18 @@ ) ) (if - (i32.eq - (i32.and - (tee_local $0 - (i32.load - (i32.const 176) - ) - ) - (tee_local $2 - (i32.shl - (i32.const 1) - (get_local $2) - ) + (i32.and + (tee_local $0 + (i32.load + (i32.const 176) ) ) - (i32.const 0) - ) - (block - (i32.store - (i32.const 176) - (i32.or - (get_local $0) + (tee_local $2 + (i32.shl + (i32.const 1) (get_local $2) ) ) - (set_local $3 - (i32.add - (get_local $4) - (i32.const 8) - ) - ) - (set_local $16 - (get_local $4) - ) ) (if (i32.lt_u @@ -10644,6 +10478,24 @@ ) ) ) + (block + (i32.store + (i32.const 176) + (i32.or + (get_local $0) + (get_local $2) + ) + ) + (set_local $3 + (i32.add + (get_local $4) + (i32.const 8) + ) + ) + (set_local $16 + (get_local $4) + ) + ) ) (i32.store (get_local $3) @@ -10705,16 +10557,10 @@ ) ) (if - (i32.eq - (tee_local $0 - (i32.load - (i32.const 180) - ) + (tee_local $0 + (i32.load + (i32.const 180) ) - (i32.const 0) - ) - (set_local $6 - (get_local $5) ) (block (set_local $16 @@ -10725,134 +10571,114 @@ ) (block $label$break$L123 (if - (i32.eq - (tee_local $3 - (i32.load offset=480 - (i32.shl - (tee_local $12 + (tee_local $3 + (i32.load offset=480 + (i32.shl + (tee_local $12 + (if + (tee_local $3 + (i32.shr_u + (get_local $3) + (i32.const 8) + ) + ) (if - (i32.eq - (tee_local $3 - (i32.shr_u - (get_local $3) - (i32.const 8) - ) - ) - (i32.const 0) + (i32.gt_u + (get_local $5) + (i32.const 16777215) ) - (i32.const 0) - (if - (i32.gt_u - (get_local $5) - (i32.const 16777215) - ) - (i32.const 31) - (block - (set_local $7 - (i32.shl - (tee_local $3 - (i32.add - (i32.sub - (i32.const 14) + (i32.const 31) + (block + (set_local $7 + (i32.shl + (tee_local $3 + (i32.add + (i32.sub + (i32.const 14) + (i32.or (i32.or - (i32.or - (tee_local $7 - (i32.and - (i32.shr_u - (i32.add - (tee_local $12 - (i32.shl - (get_local $3) - (tee_local $3 - (i32.and - (i32.shr_u - (i32.add - (get_local $3) - (i32.const 1048320) - ) - (i32.const 16) + (tee_local $7 + (i32.and + (i32.shr_u + (i32.add + (tee_local $12 + (i32.shl + (get_local $3) + (tee_local $3 + (i32.and + (i32.shr_u + (i32.add + (get_local $3) + (i32.const 1048320) ) - (i32.const 8) + (i32.const 16) ) + (i32.const 8) ) ) ) - (i32.const 520192) ) - (i32.const 16) + (i32.const 520192) ) - (i32.const 4) + (i32.const 16) ) + (i32.const 4) ) - (get_local $3) ) - (tee_local $3 - (i32.and - (i32.shr_u - (i32.add - (tee_local $7 - (i32.shl - (get_local $12) - (get_local $7) - ) + (get_local $3) + ) + (tee_local $3 + (i32.and + (i32.shr_u + (i32.add + (tee_local $7 + (i32.shl + (get_local $12) + (get_local $7) ) - (i32.const 245760) ) - (i32.const 16) + (i32.const 245760) ) - (i32.const 2) + (i32.const 16) ) + (i32.const 2) ) ) ) - (i32.shr_u - (i32.shl - (get_local $7) - (get_local $3) - ) - (i32.const 15) + ) + (i32.shr_u + (i32.shl + (get_local $7) + (get_local $3) ) + (i32.const 15) ) ) - (i32.const 1) ) + (i32.const 1) ) - (i32.or - (i32.and - (i32.shr_u - (get_local $5) - (i32.add - (get_local $3) - (i32.const 7) - ) + ) + (i32.or + (i32.and + (i32.shr_u + (get_local $5) + (i32.add + (get_local $3) + (i32.const 7) ) - (i32.const 1) ) - (get_local $7) + (i32.const 1) ) + (get_local $7) ) ) ) + (i32.const 0) ) - (i32.const 2) ) + (i32.const 2) ) ) - (i32.const 0) - ) - (block - (set_local $31 - (get_local $16) - ) - (set_local $32 - (i32.const 0) - ) - (set_local $28 - (i32.const 0) - ) - (set_local $11 - (i32.const 86) - ) ) (block (set_local $7 @@ -10934,13 +10760,12 @@ ) ) (set_local $7 - (i32.eq + (i32.eqz (tee_local $3 (i32.load offset=20 (get_local $23) ) ) - (i32.const 0) ) ) (set_local $15 @@ -10978,9 +10803,8 @@ (i32.xor (i32.and (tee_local $7 - (i32.eq + (i32.eqz (get_local $3) - (i32.const 0) ) ) (i32.const 1) @@ -11019,6 +10843,20 @@ ) ) ) + (block + (set_local $31 + (get_local $16) + ) + (set_local $32 + (i32.const 0) + ) + (set_local $28 + (i32.const 0) + ) + (set_local $11 + (i32.const 86) + ) + ) ) ) (if @@ -11027,121 +10865,102 @@ (i32.const 86) ) (if - (i32.eq - (tee_local $0 - (if - (i32.and - (i32.eq - (get_local $32) - (i32.const 0) - ) - (i32.eq - (get_local $28) - (i32.const 0) - ) + (tee_local $0 + (if + (i32.and + (i32.eqz + (get_local $32) ) - (block - (set_local $7 - (i32.sub - (i32.const 0) - (tee_local $3 - (i32.shl - (i32.const 2) - (get_local $12) - ) + (i32.eqz + (get_local $28) + ) + ) + (block + (set_local $7 + (i32.sub + (i32.const 0) + (tee_local $3 + (i32.shl + (i32.const 2) + (get_local $12) ) ) ) - (if - (i32.eq - (tee_local $0 - (i32.and - (get_local $0) - (i32.or - (get_local $3) - (get_local $7) - ) + ) + (if + (i32.eqz + (tee_local $0 + (i32.and + (get_local $0) + (i32.or + (get_local $3) + (get_local $7) ) ) - (i32.const 0) ) - (block - (set_local $6 - (get_local $5) - ) - (br $do-once$0) + ) + (block + (set_local $6 + (get_local $5) ) + (br $do-once$0) ) - (set_local $0 - (i32.and - (i32.shr_u - (tee_local $3 - (i32.add - (i32.and + ) + (set_local $0 + (i32.and + (i32.shr_u + (tee_local $3 + (i32.add + (i32.and + (get_local $0) + (i32.sub + (i32.const 0) (get_local $0) - (i32.sub - (i32.const 0) - (get_local $0) - ) ) - (i32.const -1) ) + (i32.const -1) ) - (i32.const 12) ) - (i32.const 16) + (i32.const 12) ) + (i32.const 16) ) - (i32.load offset=480 - (i32.shl - (i32.add + ) + (i32.load offset=480 + (i32.shl + (i32.add + (i32.or (i32.or (i32.or (i32.or - (i32.or - (tee_local $3 - (i32.and - (i32.shr_u - (tee_local $7 - (i32.shr_u - (get_local $3) - (get_local $0) - ) - ) - (i32.const 5) - ) - (i32.const 8) - ) - ) - (get_local $0) - ) - (tee_local $0 + (tee_local $3 (i32.and (i32.shr_u - (tee_local $3 + (tee_local $7 (i32.shr_u - (get_local $7) (get_local $3) + (get_local $0) ) ) - (i32.const 2) + (i32.const 5) ) - (i32.const 4) + (i32.const 8) ) ) + (get_local $0) ) (tee_local $0 (i32.and (i32.shr_u (tee_local $3 (i32.shr_u + (get_local $7) (get_local $3) - (get_local $0) ) ) - (i32.const 1) + (i32.const 2) ) - (i32.const 2) + (i32.const 4) ) ) ) @@ -11156,30 +10975,35 @@ ) (i32.const 1) ) - (i32.const 1) + (i32.const 2) ) ) ) - (i32.shr_u - (get_local $3) - (get_local $0) + (tee_local $0 + (i32.and + (i32.shr_u + (tee_local $3 + (i32.shr_u + (get_local $3) + (get_local $0) + ) + ) + (i32.const 1) + ) + (i32.const 1) + ) ) ) - (i32.const 2) + (i32.shr_u + (get_local $3) + (get_local $0) + ) ) + (i32.const 2) ) ) - (get_local $32) ) - ) - (i32.const 0) - ) - (block - (set_local $17 - (get_local $31) - ) - (set_local $13 - (get_local $28) + (get_local $32) ) ) (block @@ -11196,6 +11020,14 @@ (i32.const 90) ) ) + (block + (set_local $17 + (get_local $31) + ) + (set_local $13 + (get_local $28) + ) + ) ) ) (if @@ -11239,13 +11071,14 @@ ) ) (if - (i32.ne - (tee_local $0 - (i32.load offset=16 - (get_local $24) + (i32.eqz + (i32.eqz + (tee_local $0 + (i32.load offset=16 + (get_local $24) + ) ) ) - (i32.const 0) ) (block (set_local $26 @@ -11261,19 +11094,10 @@ ) ) (if - (i32.eq - (tee_local $0 - (i32.load offset=20 - (get_local $24) - ) - ) - (i32.const 0) - ) - (block - (set_local $13 - (get_local $3) + (tee_local $0 + (i32.load offset=20 + (get_local $24) ) - (br $while-out$19) ) (block (set_local $26 @@ -11286,19 +11110,19 @@ (get_local $3) ) ) + (block + (set_local $13 + (get_local $3) + ) + (br $while-out$19) + ) ) (br $while-in$20) ) ) ) (if - (i32.eq - (get_local $13) - (i32.const 0) - ) - (set_local $6 - (get_local $5) - ) + (get_local $13) (if (i32.lt_u (get_local $17) @@ -11350,32 +11174,32 @@ ) (block (if - (i32.eq + (tee_local $2 + (i32.load + (tee_local $9 + (i32.add + (get_local $13) + (i32.const 20) + ) + ) + ) + ) + (set_local $8 + (get_local $2) + ) + (if (tee_local $2 (i32.load (tee_local $9 (i32.add (get_local $13) - (i32.const 20) + (i32.const 16) ) ) ) ) - (i32.const 0) - ) - (if - (i32.eq - (tee_local $2 - (i32.load - (tee_local $9 - (i32.add - (get_local $13) - (i32.const 16) - ) - ) - ) - ) - (i32.const 0) + (set_local $8 + (get_local $2) ) (block (set_local $6 @@ -11383,29 +11207,24 @@ ) (br $do-once$21) ) - (set_local $8 - (get_local $2) - ) - ) - (set_local $8 - (get_local $2) ) ) (loop $while-in$24 (block $while-out$23 (if - (i32.ne - (tee_local $2 - (i32.load - (tee_local $7 - (i32.add - (get_local $8) - (i32.const 20) + (i32.eqz + (i32.eqz + (tee_local $2 + (i32.load + (tee_local $7 + (i32.add + (get_local $8) + (i32.const 20) + ) ) ) ) ) - (i32.const 0) ) (block (set_local $8 @@ -11418,20 +11237,16 @@ ) ) (if - (i32.eq - (tee_local $2 - (i32.load - (tee_local $7 - (i32.add - (get_local $8) - (i32.const 16) - ) + (tee_local $2 + (i32.load + (tee_local $7 + (i32.add + (get_local $8) + (i32.const 16) ) ) ) - (i32.const 0) ) - (br $while-out$23) (block (set_local $8 (get_local $2) @@ -11440,6 +11255,7 @@ (get_local $7) ) ) + (br $while-out$23) ) (br $while-in$24) ) @@ -11519,9 +11335,10 @@ ) (block $do-once$25 (if - (i32.ne - (get_local $1) - (i32.const 0) + (i32.eqz + (i32.eqz + (get_local $1) + ) ) (block (if @@ -11549,9 +11366,8 @@ (get_local $6) ) (if - (i32.eq + (i32.eqz (get_local $6) - (i32.const 0) ) (block (i32.store @@ -11605,9 +11421,8 @@ ) ) (br_if $do-once$25 - (i32.eq + (i32.eqz (get_local $6) - (i32.const 0) ) ) ) @@ -11628,13 +11443,14 @@ (get_local $1) ) (if - (i32.ne - (tee_local $1 - (i32.load offset=16 - (get_local $13) + (i32.eqz + (i32.eqz + (tee_local $1 + (i32.load offset=16 + (get_local $13) + ) ) ) - (i32.const 0) ) (if (i32.lt_u @@ -11655,13 +11471,14 @@ ) ) (if - (i32.ne - (tee_local $0 - (i32.load offset=20 - (get_local $13) + (i32.eqz + (i32.eqz + (tee_local $0 + (i32.load offset=20 + (get_local $13) + ) ) ) - (i32.const 0) ) (if (i32.lt_u @@ -11773,39 +11590,18 @@ ) ) (if - (i32.eq - (i32.and - (tee_local $0 - (i32.load - (i32.const 176) - ) - ) - (tee_local $1 - (i32.shl - (i32.const 1) - (get_local $1) - ) + (i32.and + (tee_local $0 + (i32.load + (i32.const 176) ) ) - (i32.const 0) - ) - (block - (i32.store - (i32.const 176) - (i32.or - (get_local $0) + (tee_local $1 + (i32.shl + (i32.const 1) (get_local $1) ) ) - (set_local $4 - (i32.add - (get_local $2) - (i32.const 8) - ) - ) - (set_local $10 - (get_local $2) - ) ) (if (i32.lt_u @@ -11833,6 +11629,24 @@ ) ) ) + (block + (i32.store + (i32.const 176) + (i32.or + (get_local $0) + (get_local $1) + ) + ) + (set_local $4 + (i32.add + (get_local $2) + (i32.const 8) + ) + ) + (set_local $10 + (get_local $2) + ) + ) ) (i32.store (get_local $4) @@ -11859,16 +11673,12 @@ (i32.shl (tee_local $1 (if - (i32.eq - (tee_local $0 - (i32.shr_u - (get_local $17) - (i32.const 8) - ) + (tee_local $0 + (i32.shr_u + (get_local $17) + (i32.const 8) ) - (i32.const 0) ) - (i32.const 0) (if (i32.gt_u (get_local $17) @@ -11960,6 +11770,7 @@ ) ) ) + (i32.const 0) ) ) (i32.const 2) @@ -11984,7 +11795,7 @@ (i32.const 0) ) (if - (i32.eq + (i32.eqz (i32.and (tee_local $0 (i32.load @@ -11998,7 +11809,6 @@ ) ) ) - (i32.const 0) ) (block (i32.store @@ -12080,27 +11890,32 @@ ) ) (if - (i32.eq - (tee_local $0 - (i32.load - (tee_local $1 + (tee_local $0 + (i32.load + (tee_local $1 + (i32.add (i32.add - (i32.add - (get_local $2) - (i32.const 16) - ) - (i32.shl - (i32.shr_u - (get_local $1) - (i32.const 31) - ) - (i32.const 2) + (get_local $2) + (i32.const 16) + ) + (i32.shl + (i32.shr_u + (get_local $1) + (i32.const 31) ) + (i32.const 2) ) ) ) ) - (i32.const 0) + ) + (block + (set_local $1 + (get_local $4) + ) + (set_local $2 + (get_local $0) + ) ) (block (set_local $25 @@ -12114,14 +11929,6 @@ ) (br $while-out$31) ) - (block - (set_local $1 - (get_local $4) - ) - (set_local $2 - (get_local $0) - ) - ) ) (br $while-in$32) ) @@ -12227,8 +12034,14 @@ (get_local $5) ) ) + (set_local $6 + (get_local $5) + ) ) ) + (set_local $6 + (get_local $5) + ) ) ) ) @@ -12396,27 +12209,24 @@ ) ) (if - (i32.eq + (i32.eqz (i32.load (i32.const 648) ) - (i32.const 0) ) (if - (i32.eq - (i32.and - (i32.add - (tee_local $0 - (call_import $_sysconf - (i32.const 30) - ) + (i32.and + (i32.add + (tee_local $0 + (call_import $_sysconf + (i32.const 30) ) - (i32.const -1) ) - (get_local $0) + (i32.const -1) ) - (i32.const 0) + (get_local $0) ) + (call_import $_abort) (block (i32.store (i32.const 656) @@ -12455,7 +12265,6 @@ ) ) ) - (call_import $_abort) ) ) (set_local $5 @@ -12498,13 +12307,14 @@ ) ) (if - (i32.ne - (tee_local $0 - (i32.load - (i32.const 616) + (i32.eqz + (i32.eqz + (tee_local $0 + (i32.load + (i32.const 616) + ) ) ) - (i32.const 0) ) (if (i32.or @@ -12536,28 +12346,20 @@ (tee_local $11 (block $label$break$L257 (if - (i32.eq - (i32.and - (i32.load - (i32.const 620) - ) - (i32.const 4) + (i32.and + (i32.load + (i32.const 620) ) - (i32.const 0) + (i32.const 4) ) + (i32.const 190) (block (block $label$break$L259 (if - (i32.eq - (tee_local $0 - (i32.load - (i32.const 200) - ) + (tee_local $0 + (i32.load + (i32.const 200) ) - (i32.const 0) - ) - (set_local $11 - (i32.const 173) ) (block (set_local $16 @@ -12601,13 +12403,13 @@ ) ) (if - (i32.eq - (tee_local $4 - (i32.load offset=8 - (get_local $16) - ) + (tee_local $4 + (i32.load offset=8 + (get_local $16) ) - (i32.const 0) + ) + (set_local $16 + (get_local $4) ) (block (set_local $11 @@ -12615,9 +12417,6 @@ ) (br $label$break$L259) ) - (set_local $16 - (get_local $4) - ) ) (br $while-in$38) ) @@ -12684,6 +12483,9 @@ ) ) ) + (set_local $11 + (i32.const 173) + ) ) ) (block $do-once$39 @@ -12711,25 +12513,21 @@ ) (tee_local $12 (if - (i32.eq - (i32.and - (tee_local $12 - (i32.add - (tee_local $4 - (i32.load - (i32.const 652) - ) + (i32.and + (tee_local $12 + (i32.add + (tee_local $4 + (i32.load + (i32.const 652) ) - (i32.const -1) ) - ) - (tee_local $0 - (get_local $7) + (i32.const -1) ) ) - (i32.const 0) + (tee_local $0 + (get_local $7) + ) ) - (get_local $10) (i32.add (i32.sub (get_local $10) @@ -12746,6 +12544,7 @@ ) ) ) + (get_local $10) ) ) ) @@ -12763,13 +12562,14 @@ ) (block (if - (i32.ne - (tee_local $0 - (i32.load - (i32.const 616) + (i32.eqz + (i32.eqz + (tee_local $0 + (i32.load + (i32.const 616) + ) ) ) - (i32.const 0) ) (br_if $do-once$39 (i32.or @@ -12927,7 +12727,6 @@ ) (i32.const 190) ) - (i32.const 190) ) ) ) @@ -13027,161 +12826,9 @@ ) (block $do-once$44 (if - (i32.eq - (tee_local $0 - (i32.load - (i32.const 200) - ) - ) - (i32.const 0) - ) - (block - (if - (i32.or - (i32.eq - (tee_local $0 - (i32.load - (i32.const 192) - ) - ) - (i32.const 0) - ) - (i32.lt_u - (get_local $14) - (get_local $0) - ) - ) - (i32.store - (i32.const 192) - (get_local $14) - ) - ) - (i32.store - (i32.const 624) - (get_local $14) - ) - (i32.store - (i32.const 628) - (get_local $19) - ) - (i32.store - (i32.const 636) - (i32.const 0) - ) - (i32.store - (i32.const 212) - (i32.load - (i32.const 648) - ) - ) - (i32.store - (i32.const 208) - (i32.const -1) - ) - (set_local $1 - (i32.const 0) - ) - (loop $while-in$47 - (block $while-out$46 - (i32.store offset=12 - (tee_local $0 - (i32.add - (i32.const 216) - (i32.shl - (i32.shl - (get_local $1) - (i32.const 1) - ) - (i32.const 2) - ) - ) - ) - (get_local $0) - ) - (i32.store offset=8 - (get_local $0) - (get_local $0) - ) - (br_if $while-out$46 - (i32.eq - (tee_local $1 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - (i32.const 32) - ) - ) - (br $while-in$47) - ) - ) - (set_local $1 - (i32.eq - (i32.and - (tee_local $0 - (i32.add - (get_local $14) - (i32.const 8) - ) - ) - (i32.const 7) - ) - (i32.const 0) - ) - ) - (i32.store + (tee_local $0 + (i32.load (i32.const 200) - (tee_local $0 - (i32.add - (get_local $14) - (tee_local $1 - (select - (i32.const 0) - (i32.and - (i32.sub - (i32.const 0) - (get_local $0) - ) - (i32.const 7) - ) - (get_local $1) - ) - ) - ) - ) - ) - (i32.store - (i32.const 188) - (tee_local $1 - (i32.sub - (i32.add - (get_local $19) - (i32.const -40) - ) - (get_local $1) - ) - ) - ) - (i32.store offset=4 - (get_local $0) - (i32.or - (get_local $1) - (i32.const 1) - ) - ) - (i32.store offset=4 - (i32.add - (get_local $0) - (get_local $1) - ) - (i32.const 40) - ) - (i32.store - (i32.const 204) - (i32.load - (i32.const 664) - ) ) ) (block @@ -13231,18 +12878,15 @@ ) ) (if - (i32.eq - (tee_local $4 - (i32.load offset=8 - (get_local $7) - ) + (tee_local $4 + (i32.load offset=8 + (get_local $7) ) - (i32.const 0) ) - (br $while-out$48) (set_local $7 (get_local $4) ) + (br $while-out$48) ) (br $while-in$49) ) @@ -13253,14 +12897,13 @@ (i32.const 203) ) (if - (i32.eq + (i32.eqz (i32.and (i32.load offset=12 (get_local $43) ) (i32.const 8) ) - (i32.const 0) ) (if (i32.and @@ -13282,7 +12925,7 @@ ) ) (set_local $2 - (i32.eq + (i32.eqz (i32.and (tee_local $1 (i32.add @@ -13292,7 +12935,6 @@ ) (i32.const 7) ) - (i32.const 0) ) ) (set_local $0 @@ -13409,13 +13051,12 @@ ) ) (if - (i32.eq + (i32.eqz (tee_local $1 (i32.load offset=8 (get_local $1) ) ) - (i32.const 0) ) (block (set_local $27 @@ -13433,14 +13074,14 @@ (i32.const 211) ) (if - (i32.eq - (i32.and - (i32.load offset=12 - (get_local $38) - ) - (i32.const 8) + (i32.and + (i32.load offset=12 + (get_local $38) ) - (i32.const 0) + (i32.const 8) + ) + (set_local $27 + (i32.const 624) ) (block (i32.store @@ -13465,7 +13106,7 @@ (get_local $1) ) (set_local $9 - (i32.eq + (i32.eqz (i32.and (tee_local $1 (i32.add @@ -13475,11 +13116,10 @@ ) (i32.const 7) ) - (i32.const 0) ) ) (set_local $5 - (i32.eq + (i32.eqz (i32.and (tee_local $2 (i32.add @@ -13489,7 +13129,6 @@ ) (i32.const 7) ) - (i32.const 0) ) ) (set_local $1 @@ -13795,38 +13434,29 @@ ) (block (if - (i32.eq - (tee_local $1 - (i32.load - (tee_local $9 - (i32.add - (tee_local $20 - (i32.add - (get_local $3) - (i32.const 16) - ) + (tee_local $1 + (i32.load + (tee_local $9 + (i32.add + (tee_local $20 + (i32.add + (get_local $3) + (i32.const 16) ) - (i32.const 4) ) + (i32.const 4) ) ) ) - (i32.const 0) + ) + (set_local $2 + (get_local $1) ) (if - (i32.eq - (tee_local $1 - (i32.load - (get_local $20) - ) - ) - (i32.const 0) - ) - (block - (set_local $18 - (i32.const 0) + (tee_local $1 + (i32.load + (get_local $20) ) - (br $do-once$59) ) (block (set_local $2 @@ -13836,26 +13466,30 @@ (get_local $20) ) ) - ) - (set_local $2 - (get_local $1) + (block + (set_local $18 + (i32.const 0) + ) + (br $do-once$59) + ) ) ) (loop $while-in$62 (block $while-out$61 (if - (i32.ne - (tee_local $1 - (i32.load - (tee_local $20 - (i32.add - (get_local $2) - (i32.const 20) + (i32.eqz + (i32.eqz + (tee_local $1 + (i32.load + (tee_local $20 + (i32.add + (get_local $2) + (i32.const 20) + ) ) ) ) ) - (i32.const 0) ) (block (set_local $2 @@ -13868,20 +13502,16 @@ ) ) (if - (i32.eq - (tee_local $1 - (i32.load - (tee_local $20 - (i32.add - (get_local $2) - (i32.const 16) - ) + (tee_local $1 + (i32.load + (tee_local $20 + (i32.add + (get_local $2) + (i32.const 16) ) ) ) - (i32.const 0) ) - (br $while-out$61) (block (set_local $2 (get_local $1) @@ -13890,6 +13520,7 @@ (get_local $20) ) ) + (br $while-out$61) ) (br $while-in$62) ) @@ -13968,9 +13599,8 @@ ) ) (br_if $label$break$L331 - (i32.eq + (i32.eqz (get_local $0) - (i32.const 0) ) ) (block $do-once$63 @@ -13999,9 +13629,10 @@ (get_local $18) ) (br_if $do-once$63 - (i32.ne - (get_local $18) - (i32.const 0) + (i32.eqz + (i32.eqz + (get_local $18) + ) ) ) (i32.store @@ -14053,9 +13684,8 @@ ) ) (br_if $label$break$L331 - (i32.eq + (i32.eqz (get_local $18) - (i32.const 0) ) ) ) @@ -14077,18 +13707,19 @@ (get_local $0) ) (if - (i32.ne - (tee_local $0 - (i32.load - (tee_local $2 - (i32.add - (get_local $3) - (i32.const 16) + (i32.eqz + (i32.eqz + (tee_local $0 + (i32.load + (tee_local $2 + (i32.add + (get_local $3) + (i32.const 16) + ) ) ) ) ) - (i32.const 0) ) (if (i32.lt_u @@ -14109,13 +13740,12 @@ ) ) (br_if $label$break$L331 - (i32.eq + (i32.eqz (tee_local $0 (i32.load offset=4 (get_local $2) ) ) - (i32.const 0) ) ) (if @@ -14209,39 +13839,18 @@ ) (block $do-once$67 (if - (i32.eq - (i32.and - (tee_local $0 - (i32.load - (i32.const 176) - ) - ) - (tee_local $1 - (i32.shl - (i32.const 1) - (get_local $1) - ) + (i32.and + (tee_local $0 + (i32.load + (i32.const 176) ) ) - (i32.const 0) - ) - (block - (i32.store - (i32.const 176) - (i32.or - (get_local $0) + (tee_local $1 + (i32.shl + (i32.const 1) (get_local $1) ) ) - (set_local $8 - (i32.add - (get_local $2) - (i32.const 8) - ) - ) - (set_local $33 - (get_local $2) - ) ) (block (if @@ -14272,6 +13881,24 @@ ) (call_import $_abort) ) + (block + (i32.store + (i32.const 176) + (i32.or + (get_local $0) + (get_local $1) + ) + ) + (set_local $8 + (i32.add + (get_local $2) + (i32.const 8) + ) + ) + (set_local $33 + (get_local $2) + ) + ) ) ) (i32.store @@ -14300,16 +13927,12 @@ (tee_local $1 (block $do-once$69 (if - (i32.eq - (tee_local $0 - (i32.shr_u - (get_local $4) - (i32.const 8) - ) + (tee_local $0 + (i32.shr_u + (get_local $4) + (i32.const 8) ) - (i32.const 0) ) - (i32.const 0) (block (br_if $do-once$69 (i32.const 31) @@ -14401,6 +14024,7 @@ (get_local $1) ) ) + (i32.const 0) ) ) ) @@ -14426,7 +14050,7 @@ (i32.const 0) ) (if - (i32.eq + (i32.eqz (i32.and (tee_local $0 (i32.load @@ -14440,7 +14064,6 @@ ) ) ) - (i32.const 0) ) (block (i32.store @@ -14522,27 +14145,32 @@ ) ) (if - (i32.eq - (tee_local $0 - (i32.load - (tee_local $1 + (tee_local $0 + (i32.load + (tee_local $1 + (i32.add (i32.add - (i32.add - (get_local $2) - (i32.const 16) - ) - (i32.shl - (i32.shr_u - (get_local $1) - (i32.const 31) - ) - (i32.const 2) + (get_local $2) + (i32.const 16) + ) + (i32.shl + (i32.shr_u + (get_local $1) + (i32.const 31) ) + (i32.const 2) ) ) ) ) - (i32.const 0) + ) + (block + (set_local $1 + (get_local $8) + ) + (set_local $2 + (get_local $0) + ) ) (block (set_local $45 @@ -14556,14 +14184,6 @@ ) (br $while-out$71) ) - (block - (set_local $1 - (get_local $8) - ) - (set_local $2 - (get_local $0) - ) - ) ) (br $while-in$72) ) @@ -14665,9 +14285,6 @@ ) ) ) - (set_local $27 - (i32.const 624) - ) ) ) (loop $while-in$74 @@ -14710,7 +14327,7 @@ ) ) (set_local $8 - (i32.eq + (i32.eqz (i32.and (tee_local $1 (i32.add @@ -14725,7 +14342,6 @@ ) (i32.const 7) ) - (i32.const 0) ) ) (set_local $4 @@ -14767,7 +14383,7 @@ ) ) (set_local $3 - (i32.eq + (i32.eqz (i32.and (tee_local $1 (i32.add @@ -14777,7 +14393,6 @@ ) (i32.const 7) ) - (i32.const 0) ) ) (i32.store @@ -14967,39 +14582,18 @@ ) ) (if - (i32.eq - (i32.and - (tee_local $1 - (i32.load - (i32.const 176) - ) - ) - (tee_local $2 - (i32.shl - (i32.const 1) - (get_local $2) - ) + (i32.and + (tee_local $1 + (i32.load + (i32.const 176) ) ) - (i32.const 0) - ) - (block - (i32.store - (i32.const 176) - (i32.or - (get_local $1) + (tee_local $2 + (i32.shl + (i32.const 1) (get_local $2) ) ) - (set_local $9 - (i32.add - (get_local $4) - (i32.const 8) - ) - ) - (set_local $20 - (get_local $4) - ) ) (if (i32.lt_u @@ -15027,6 +14621,24 @@ ) ) ) + (block + (i32.store + (i32.const 176) + (i32.or + (get_local $1) + (get_local $2) + ) + ) + (set_local $9 + (i32.add + (get_local $4) + (i32.const 8) + ) + ) + (set_local $20 + (get_local $4) + ) + ) ) (i32.store (get_local $9) @@ -15053,16 +14665,12 @@ (i32.shl (tee_local $2 (if - (i32.eq - (tee_local $1 - (i32.shr_u - (get_local $3) - (i32.const 8) - ) + (tee_local $1 + (i32.shr_u + (get_local $3) + (i32.const 8) ) - (i32.const 0) ) - (i32.const 0) (if (i32.gt_u (get_local $3) @@ -15154,6 +14762,7 @@ ) ) ) + (i32.const 0) ) ) (i32.const 2) @@ -15173,7 +14782,7 @@ (i32.const 0) ) (if - (i32.eq + (i32.eqz (i32.and (tee_local $1 (i32.load @@ -15187,7 +14796,6 @@ ) ) ) - (i32.const 0) ) (block (i32.store @@ -15269,27 +14877,32 @@ ) ) (if - (i32.eq - (tee_local $1 - (i32.load - (tee_local $2 + (tee_local $1 + (i32.load + (tee_local $2 + (i32.add (i32.add - (i32.add - (get_local $4) - (i32.const 16) - ) - (i32.shl - (i32.shr_u - (get_local $2) - (i32.const 31) - ) - (i32.const 2) + (get_local $4) + (i32.const 16) + ) + (i32.shl + (i32.shr_u + (get_local $2) + (i32.const 31) ) + (i32.const 2) ) ) ) ) - (i32.const 0) + ) + (block + (set_local $2 + (get_local $8) + ) + (set_local $4 + (get_local $1) + ) ) (block (set_local $46 @@ -15303,14 +14916,6 @@ ) (br $while-out$77) ) - (block - (set_local $2 - (get_local $8) - ) - (set_local $4 - (get_local $1) - ) - ) ) (br $while-in$78) ) @@ -15405,6 +15010,153 @@ ) ) ) + (block + (if + (i32.or + (i32.eqz + (tee_local $0 + (i32.load + (i32.const 192) + ) + ) + ) + (i32.lt_u + (get_local $14) + (get_local $0) + ) + ) + (i32.store + (i32.const 192) + (get_local $14) + ) + ) + (i32.store + (i32.const 624) + (get_local $14) + ) + (i32.store + (i32.const 628) + (get_local $19) + ) + (i32.store + (i32.const 636) + (i32.const 0) + ) + (i32.store + (i32.const 212) + (i32.load + (i32.const 648) + ) + ) + (i32.store + (i32.const 208) + (i32.const -1) + ) + (set_local $1 + (i32.const 0) + ) + (loop $while-in$47 + (block $while-out$46 + (i32.store offset=12 + (tee_local $0 + (i32.add + (i32.const 216) + (i32.shl + (i32.shl + (get_local $1) + (i32.const 1) + ) + (i32.const 2) + ) + ) + ) + (get_local $0) + ) + (i32.store offset=8 + (get_local $0) + (get_local $0) + ) + (br_if $while-out$46 + (i32.eq + (tee_local $1 + (i32.add + (get_local $1) + (i32.const 1) + ) + ) + (i32.const 32) + ) + ) + (br $while-in$47) + ) + ) + (set_local $1 + (i32.eqz + (i32.and + (tee_local $0 + (i32.add + (get_local $14) + (i32.const 8) + ) + ) + (i32.const 7) + ) + ) + ) + (i32.store + (i32.const 200) + (tee_local $0 + (i32.add + (get_local $14) + (tee_local $1 + (select + (i32.const 0) + (i32.and + (i32.sub + (i32.const 0) + (get_local $0) + ) + (i32.const 7) + ) + (get_local $1) + ) + ) + ) + ) + ) + (i32.store + (i32.const 188) + (tee_local $1 + (i32.sub + (i32.add + (get_local $19) + (i32.const -40) + ) + (get_local $1) + ) + ) + ) + (i32.store offset=4 + (get_local $0) + (i32.or + (get_local $1) + (i32.const 1) + ) + ) + (i32.store offset=4 + (i32.add + (get_local $0) + (get_local $1) + ) + (i32.const 40) + ) + (i32.store + (i32.const 204) + (i32.load + (i32.const 664) + ) + ) + ) ) ) (if @@ -15489,9 +15241,8 @@ (local $17 i32) (local $18 i32) (if - (i32.eq + (i32.eqz (get_local $0) - (i32.const 0) ) (return) ) @@ -15543,12 +15294,17 @@ ) (block $do-once$0 (if - (i32.eq - (i32.and - (get_local $0) - (i32.const 1) + (i32.and + (get_local $0) + (i32.const 1) + ) + (block + (set_local $3 + (get_local $2) + ) + (set_local $10 + (get_local $7) ) - (i32.const 0) ) (block (set_local $0 @@ -15557,9 +15313,8 @@ ) ) (if - (i32.eq + (i32.eqz (get_local $8) - (i32.const 0) ) (return) ) @@ -15805,38 +15560,29 @@ ) (block (if - (i32.eq - (tee_local $0 - (i32.load - (tee_local $7 - (i32.add - (tee_local $13 - (i32.add - (get_local $4) - (i32.const 16) - ) + (tee_local $0 + (i32.load + (tee_local $7 + (i32.add + (tee_local $13 + (i32.add + (get_local $4) + (i32.const 16) ) - (i32.const 4) ) + (i32.const 4) ) ) ) - (i32.const 0) + ) + (set_local $2 + (get_local $0) ) (if - (i32.eq - (tee_local $0 - (i32.load - (get_local $13) - ) - ) - (i32.const 0) - ) - (block - (set_local $5 - (i32.const 0) + (tee_local $0 + (i32.load + (get_local $13) ) - (br $do-once$2) ) (block (set_local $2 @@ -15846,26 +15592,30 @@ (get_local $13) ) ) - ) - (set_local $2 - (get_local $0) + (block + (set_local $5 + (i32.const 0) + ) + (br $do-once$2) + ) ) ) (loop $while-in$5 (block $while-out$4 (if - (i32.ne - (tee_local $0 - (i32.load - (tee_local $13 - (i32.add - (get_local $2) - (i32.const 20) + (i32.eqz + (i32.eqz + (tee_local $0 + (i32.load + (tee_local $13 + (i32.add + (get_local $2) + (i32.const 20) + ) ) ) ) ) - (i32.const 0) ) (block (set_local $2 @@ -15878,20 +15628,16 @@ ) ) (if - (i32.eq - (tee_local $0 - (i32.load - (tee_local $13 - (i32.add - (get_local $2) - (i32.const 16) - ) + (tee_local $0 + (i32.load + (tee_local $13 + (i32.add + (get_local $2) + (i32.const 16) ) ) ) - (i32.const 0) ) - (br $while-out$4) (block (set_local $2 (get_local $0) @@ -15900,6 +15646,7 @@ (get_local $13) ) ) + (br $while-out$4) ) (br $while-in$5) ) @@ -15978,18 +15725,7 @@ ) ) (if - (i32.eq - (get_local $8) - (i32.const 0) - ) - (block - (set_local $3 - (get_local $4) - ) - (set_local $10 - (get_local $12) - ) - ) + (get_local $8) (block (if (i32.eq @@ -16016,9 +15752,8 @@ (get_local $5) ) (if - (i32.eq + (i32.eqz (get_local $5) - (i32.const 0) ) (block (i32.store @@ -16078,9 +15813,8 @@ ) ) (if - (i32.eq + (i32.eqz (get_local $5) - (i32.const 0) ) (block (set_local $3 @@ -16110,18 +15844,19 @@ (get_local $8) ) (if - (i32.ne - (tee_local $1 - (i32.load - (tee_local $2 - (i32.add - (get_local $4) - (i32.const 16) + (i32.eqz + (i32.eqz + (tee_local $1 + (i32.load + (tee_local $2 + (i32.add + (get_local $4) + (i32.const 16) + ) ) ) ) ) - (i32.const 0) ) (if (i32.lt_u @@ -16142,20 +15877,9 @@ ) ) (if - (i32.eq - (tee_local $0 - (i32.load offset=4 - (get_local $2) - ) - ) - (i32.const 0) - ) - (block - (set_local $3 - (get_local $4) - ) - (set_local $10 - (get_local $12) + (tee_local $0 + (i32.load offset=4 + (get_local $2) ) ) (if @@ -16183,16 +15907,24 @@ ) ) ) + (block + (set_local $3 + (get_local $4) + ) + (set_local $10 + (get_local $12) + ) + ) + ) + ) + (block + (set_local $3 + (get_local $4) + ) + (set_local $10 + (get_local $12) ) ) - ) - ) - (block - (set_local $3 - (get_local $2) - ) - (set_local $10 - (get_local $7) ) ) ) @@ -16205,7 +15937,7 @@ (call_import $_abort) ) (if - (i32.eq + (i32.eqz (i32.and (tee_local $0 (i32.load @@ -16219,17 +15951,39 @@ ) (i32.const 1) ) - (i32.const 0) ) (call_import $_abort) ) (if - (i32.eq - (i32.and - (get_local $0) - (i32.const 2) + (i32.and + (get_local $0) + (i32.const 2) + ) + (block + (i32.store + (get_local $1) + (i32.and + (get_local $0) + (i32.const -2) + ) + ) + (i32.store offset=4 + (get_local $3) + (i32.or + (get_local $10) + (i32.const 1) + ) + ) + (i32.store + (i32.add + (get_local $3) + (get_local $10) + ) + (get_local $10) + ) + (set_local $5 + (get_local $10) ) - (i32.const 0) ) (block (if @@ -16481,38 +16235,29 @@ ) (block (if - (i32.eq - (tee_local $1 - (i32.load - (tee_local $8 - (i32.add - (tee_local $7 - (i32.add - (get_local $9) - (i32.const 16) - ) + (tee_local $1 + (i32.load + (tee_local $8 + (i32.add + (tee_local $7 + (i32.add + (get_local $9) + (i32.const 16) ) - (i32.const 4) ) + (i32.const 4) ) ) ) - (i32.const 0) + ) + (set_local $2 + (get_local $1) ) (if - (i32.eq - (tee_local $1 - (i32.load - (get_local $7) - ) - ) - (i32.const 0) - ) - (block - (set_local $11 - (i32.const 0) + (tee_local $1 + (i32.load + (get_local $7) ) - (br $do-once$10) ) (block (set_local $2 @@ -16522,26 +16267,30 @@ (get_local $7) ) ) - ) - (set_local $2 - (get_local $1) + (block + (set_local $11 + (i32.const 0) + ) + (br $do-once$10) + ) ) ) (loop $while-in$13 (block $while-out$12 (if - (i32.ne - (tee_local $1 - (i32.load - (tee_local $7 - (i32.add - (get_local $2) - (i32.const 20) + (i32.eqz + (i32.eqz + (tee_local $1 + (i32.load + (tee_local $7 + (i32.add + (get_local $2) + (i32.const 20) + ) ) ) ) ) - (i32.const 0) ) (block (set_local $2 @@ -16554,20 +16303,16 @@ ) ) (if - (i32.eq - (tee_local $1 - (i32.load - (tee_local $7 - (i32.add - (get_local $2) - (i32.const 16) - ) + (tee_local $1 + (i32.load + (tee_local $7 + (i32.add + (get_local $2) + (i32.const 16) ) ) ) - (i32.const 0) ) - (br $while-out$12) (block (set_local $2 (get_local $1) @@ -16576,6 +16321,7 @@ (get_local $7) ) ) + (br $while-out$12) ) (br $while-in$13) ) @@ -16658,9 +16404,10 @@ ) ) (if - (i32.ne - (get_local $0) - (i32.const 0) + (i32.eqz + (i32.eqz + (get_local $0) + ) ) (block (if @@ -16688,9 +16435,8 @@ (get_local $11) ) (if - (i32.eq + (i32.eqz (get_local $11) - (i32.const 0) ) (block (i32.store @@ -16744,9 +16490,8 @@ ) ) (br_if $do-once$8 - (i32.eq + (i32.eqz (get_local $11) - (i32.const 0) ) ) ) @@ -16767,18 +16512,19 @@ (get_local $0) ) (if - (i32.ne - (tee_local $0 - (i32.load - (tee_local $2 - (i32.add - (get_local $9) - (i32.const 16) + (i32.eqz + (i32.eqz + (tee_local $0 + (i32.load + (tee_local $2 + (i32.add + (get_local $9) + (i32.const 16) + ) ) ) ) ) - (i32.const 0) ) (if (i32.lt_u @@ -16799,13 +16545,14 @@ ) ) (if - (i32.ne - (tee_local $0 - (i32.load offset=4 - (get_local $2) + (i32.eqz + (i32.eqz + (tee_local $0 + (i32.load offset=4 + (get_local $2) + ) ) ) - (i32.const 0) ) (if (i32.lt_u @@ -16862,32 +16609,6 @@ ) ) ) - (block - (i32.store - (get_local $1) - (i32.and - (get_local $0) - (i32.const -2) - ) - ) - (i32.store offset=4 - (get_local $3) - (i32.or - (get_local $10) - (i32.const 1) - ) - ) - (i32.store - (i32.add - (get_local $3) - (get_local $10) - ) - (get_local $10) - ) - (set_local $5 - (get_local $10) - ) - ) ) (set_local $1 (i32.shr_u @@ -16914,39 +16635,18 @@ ) ) (if - (i32.eq - (i32.and - (tee_local $0 - (i32.load - (i32.const 176) - ) - ) - (tee_local $1 - (i32.shl - (i32.const 1) - (get_local $1) - ) + (i32.and + (tee_local $0 + (i32.load + (i32.const 176) ) ) - (i32.const 0) - ) - (block - (i32.store - (i32.const 176) - (i32.or - (get_local $0) + (tee_local $1 + (i32.shl + (i32.const 1) (get_local $1) ) ) - (set_local $6 - (i32.add - (get_local $2) - (i32.const 8) - ) - ) - (set_local $14 - (get_local $2) - ) ) (if (i32.lt_u @@ -16974,6 +16674,24 @@ ) ) ) + (block + (i32.store + (i32.const 176) + (i32.or + (get_local $0) + (get_local $1) + ) + ) + (set_local $6 + (i32.add + (get_local $2) + (i32.const 8) + ) + ) + (set_local $14 + (get_local $2) + ) + ) ) (i32.store (get_local $6) @@ -17000,16 +16718,12 @@ (i32.shl (tee_local $6 (if - (i32.eq - (tee_local $0 - (i32.shr_u - (get_local $5) - (i32.const 8) - ) + (tee_local $0 + (i32.shr_u + (get_local $5) + (i32.const 8) ) - (i32.const 0) ) - (i32.const 0) (if (i32.gt_u (get_local $5) @@ -17101,6 +16815,7 @@ ) ) ) + (i32.const 0) ) ) (i32.const 2) @@ -17120,46 +16835,18 @@ (i32.const 0) ) (if - (i32.eq - (i32.and - (tee_local $0 - (i32.load - (i32.const 180) - ) - ) - (tee_local $2 - (i32.shl - (i32.const 1) - (get_local $6) - ) + (i32.and + (tee_local $0 + (i32.load + (i32.const 180) ) ) - (i32.const 0) - ) - (block - (i32.store - (i32.const 180) - (i32.or - (get_local $0) - (get_local $2) + (tee_local $2 + (i32.shl + (i32.const 1) + (get_local $6) ) ) - (i32.store - (get_local $1) - (get_local $3) - ) - (i32.store offset=24 - (get_local $3) - (get_local $1) - ) - (i32.store offset=12 - (get_local $3) - (get_local $3) - ) - (i32.store offset=8 - (get_local $3) - (get_local $3) - ) ) (block (set_local $6 @@ -17215,27 +16902,32 @@ ) ) (if - (i32.eq - (tee_local $0 - (i32.load - (tee_local $6 + (tee_local $0 + (i32.load + (tee_local $6 + (i32.add (i32.add - (i32.add - (get_local $1) - (i32.const 16) - ) - (i32.shl - (i32.shr_u - (get_local $6) - (i32.const 31) - ) - (i32.const 2) + (get_local $1) + (i32.const 16) + ) + (i32.shl + (i32.shr_u + (get_local $6) + (i32.const 31) ) + (i32.const 2) ) ) ) ) - (i32.const 0) + ) + (block + (set_local $6 + (get_local $2) + ) + (set_local $1 + (get_local $0) + ) ) (block (set_local $18 @@ -17249,14 +16941,6 @@ ) (br $while-out$18) ) - (block - (set_local $6 - (get_local $2) - ) - (set_local $1 - (get_local $0) - ) - ) ) (br $while-in$19) ) @@ -17349,6 +17033,31 @@ ) ) ) + (block + (i32.store + (i32.const 180) + (i32.or + (get_local $0) + (get_local $2) + ) + ) + (i32.store + (get_local $1) + (get_local $3) + ) + (i32.store offset=24 + (get_local $3) + (get_local $1) + ) + (i32.store offset=12 + (get_local $3) + (get_local $3) + ) + (i32.store offset=8 + (get_local $3) + (get_local $3) + ) + ) ) (i32.store (i32.const 208) @@ -17362,25 +17071,21 @@ ) ) (if - (i32.eq - (get_local $0) - (i32.const 0) - ) + (get_local $0) + (return) (set_local $6 (i32.const 632) ) - (return) ) (loop $while-in$21 (block $while-out$20 (set_local $0 - (i32.eq + (i32.eqz (tee_local $6 (i32.load (get_local $6) ) ) - (i32.const 0) ) ) (set_local $6 @@ -17726,9 +17431,8 @@ ) ) (if - (i32.eq + (i32.eqz (get_local $2) - (i32.const 0) ) (return (get_local $3) @@ -18385,13 +18089,12 @@ ) ) (if - (i32.eq + (i32.eqz (tee_local $6 (tee_local $9 (get_local $1) ) ) - (i32.const 0) ) (block (set_local $2 @@ -18401,40 +18104,7 @@ ) ) (if - (i32.eq - (get_local $7) - (i32.const 0) - ) - (block - (if - (get_local $2) - (block - (i32.store - (get_local $4) - (call_import $i32u-rem - (get_local $8) - (get_local $5) - ) - ) - (i32.store offset=4 - (get_local $4) - (i32.const 0) - ) - ) - ) - (set_local $0 - (call_import $i32u-div - (get_local $8) - (get_local $5) - ) - ) - (set_global $tempRet0 - (i32.const 0) - ) - (return - (get_local $0) - ) - ) + (get_local $7) (block (if (i32.eqz @@ -18470,254 +18140,47 @@ (i32.const 0) ) ) - ) - ) - ) - (set_local $10 - (i32.eq - (get_local $7) - (i32.const 0) - ) - ) - (block $do-once$0 - (if - (i32.eq - (get_local $5) - (i32.const 0) - ) - (block - (if - (get_local $10) - (block - (if - (i32.ne - (get_local $4) - (i32.const 0) - ) - (block - (i32.store - (get_local $4) - (call_import $i32u-rem - (get_local $6) - (get_local $5) - ) - ) - (i32.store offset=4 - (get_local $4) - (i32.const 0) - ) - ) - ) - (set_local $0 - (call_import $i32u-div - (get_local $6) - (get_local $5) - ) - ) - (set_global $tempRet0 - (i32.const 0) - ) - (return - (get_local $0) - ) - ) - ) - (if - (i32.eq - (get_local $8) - (i32.const 0) - ) - (block - (if - (i32.ne + (block + (if + (get_local $2) + (block + (i32.store (get_local $4) - (i32.const 0) - ) - (block - (i32.store - (get_local $4) - (i32.const 0) - ) - (i32.store offset=4 - (get_local $4) - (call_import $i32u-rem - (get_local $6) - (get_local $7) - ) - ) - ) - ) - (set_local $0 - (call_import $i32u-div - (get_local $6) - (get_local $7) - ) - ) - (set_global $tempRet0 - (i32.const 0) - ) - (return - (get_local $0) - ) - ) - ) - (if - (i32.eq - (i32.and - (tee_local $5 - (i32.sub - (get_local $7) - (i32.const 1) + (call_import $i32u-rem + (get_local $8) + (get_local $5) ) ) - (get_local $7) - ) - (i32.const 0) - ) - (block - (if - (i32.ne + (i32.store offset=4 (get_local $4) (i32.const 0) ) - (block - (i32.store - (get_local $4) - (i32.or - (i32.const 0) - (i32.and - (get_local $0) - (i32.const -1) - ) - ) - ) - (i32.store offset=4 - (get_local $4) - (i32.or - (i32.and - (get_local $5) - (get_local $6) - ) - (i32.and - (get_local $1) - (i32.const 0) - ) - ) - ) - ) - ) - (set_global $tempRet0 - (i32.const 0) - ) - (return - (i32.shr_u - (get_local $6) - (i32.ctz - (get_local $7) - ) - ) - ) - ) - ) - (if - (i32.le_u - (tee_local $5 - (i32.sub - (i32.clz - (get_local $7) - ) - (i32.clz - (get_local $6) - ) - ) - ) - (i32.const 30) - ) - (block - (set_local $12 - (tee_local $0 - (i32.add - (get_local $5) - (i32.const 1) - ) - ) - ) - (set_local $11 - (i32.or - (i32.shl - (get_local $6) - (tee_local $1 - (i32.sub - (i32.const 31) - (get_local $5) - ) - ) - ) - (i32.shr_u - (get_local $8) - (get_local $0) - ) - ) - ) - (set_local $13 - (i32.shr_u - (get_local $6) - (get_local $0) - ) - ) - (set_local $10 - (i32.const 0) - ) - (set_local $0 - (i32.shl - (get_local $8) - (get_local $1) - ) ) - (br $do-once$0) - ) - ) - (if - (i32.eq - (get_local $4) - (i32.const 0) ) - (block - (set_global $tempRet0 - (i32.const 0) - ) - (return - (i32.const 0) + (set_local $0 + (call_import $i32u-div + (get_local $8) + (get_local $5) ) ) - ) - (i32.store - (get_local $4) - (i32.or + (set_global $tempRet0 (i32.const 0) - (i32.and - (get_local $0) - (i32.const -1) - ) ) - ) - (i32.store offset=4 - (get_local $4) - (i32.or - (get_local $9) - (i32.and - (get_local $1) - (i32.const 0) - ) + (return + (get_local $0) ) ) - (set_global $tempRet0 - (i32.const 0) - ) - (return - (i32.const 0) - ) ) + ) + ) + (set_local $10 + (i32.eqz + (get_local $7) + ) + ) + (block $do-once$0 + (if + (get_local $5) (block (if (i32.eqz @@ -18797,9 +18260,8 @@ ) ) (if - (i32.eq + (i32.eqz (get_local $4) - (i32.const 0) ) (block (set_global $tempRet0 @@ -19052,23 +18514,241 @@ ) ) ) - ) - ) - (set_local $0 - (if - (i32.eq - (get_local $12) - (i32.const 0) - ) (block - (set_local $6 - (get_local $0) + (if + (get_local $10) + (block + (if + (i32.ne + (get_local $4) + (i32.const 0) + ) + (block + (i32.store + (get_local $4) + (call_import $i32u-rem + (get_local $6) + (get_local $5) + ) + ) + (i32.store offset=4 + (get_local $4) + (i32.const 0) + ) + ) + ) + (set_local $0 + (call_import $i32u-div + (get_local $6) + (get_local $5) + ) + ) + (set_global $tempRet0 + (i32.const 0) + ) + (return + (get_local $0) + ) + ) ) - (set_local $1 + (if + (i32.eqz + (get_local $8) + ) + (block + (if + (i32.ne + (get_local $4) + (i32.const 0) + ) + (block + (i32.store + (get_local $4) + (i32.const 0) + ) + (i32.store offset=4 + (get_local $4) + (call_import $i32u-rem + (get_local $6) + (get_local $7) + ) + ) + ) + ) + (set_local $0 + (call_import $i32u-div + (get_local $6) + (get_local $7) + ) + ) + (set_global $tempRet0 + (i32.const 0) + ) + (return + (get_local $0) + ) + ) + ) + (if + (i32.eqz + (i32.and + (tee_local $5 + (i32.sub + (get_local $7) + (i32.const 1) + ) + ) + (get_local $7) + ) + ) + (block + (if + (i32.ne + (get_local $4) + (i32.const 0) + ) + (block + (i32.store + (get_local $4) + (i32.or + (i32.const 0) + (i32.and + (get_local $0) + (i32.const -1) + ) + ) + ) + (i32.store offset=4 + (get_local $4) + (i32.or + (i32.and + (get_local $5) + (get_local $6) + ) + (i32.and + (get_local $1) + (i32.const 0) + ) + ) + ) + ) + ) + (set_global $tempRet0 + (i32.const 0) + ) + (return + (i32.shr_u + (get_local $6) + (i32.ctz + (get_local $7) + ) + ) + ) + ) + ) + (if + (i32.le_u + (tee_local $5 + (i32.sub + (i32.clz + (get_local $7) + ) + (i32.clz + (get_local $6) + ) + ) + ) + (i32.const 30) + ) + (block + (set_local $12 + (tee_local $0 + (i32.add + (get_local $5) + (i32.const 1) + ) + ) + ) + (set_local $11 + (i32.or + (i32.shl + (get_local $6) + (tee_local $1 + (i32.sub + (i32.const 31) + (get_local $5) + ) + ) + ) + (i32.shr_u + (get_local $8) + (get_local $0) + ) + ) + ) + (set_local $13 + (i32.shr_u + (get_local $6) + (get_local $0) + ) + ) + (set_local $10 + (i32.const 0) + ) + (set_local $0 + (i32.shl + (get_local $8) + (get_local $1) + ) + ) + (br $do-once$0) + ) + ) + (if + (i32.eqz + (get_local $4) + ) + (block + (set_global $tempRet0 + (i32.const 0) + ) + (return + (i32.const 0) + ) + ) + ) + (i32.store + (get_local $4) + (i32.or + (i32.const 0) + (i32.and + (get_local $0) + (i32.const -1) + ) + ) + ) + (i32.store offset=4 + (get_local $4) + (i32.or + (get_local $9) + (i32.and + (get_local $1) + (i32.const 0) + ) + ) + ) + (set_global $tempRet0 + (i32.const 0) + ) + (return (i32.const 0) ) - (i32.const 0) ) + ) + ) + (set_local $0 + (if + (get_local $12) (block (set_local $3 (call $_i64Add @@ -19226,16 +18906,12 @@ (get_global $tempRet0) ) (if - (i32.eq - (tee_local $12 - (i32.sub - (get_local $12) - (i32.const 1) - ) + (tee_local $12 + (i32.sub + (get_local $12) + (i32.const 1) ) - (i32.const 0) ) - (br $while-out$2) (block (set_local $9 (get_local $6) @@ -19244,6 +18920,7 @@ (get_local $7) ) ) + (br $while-out$2) ) (br $while-in$3) ) @@ -19253,6 +18930,15 @@ ) (get_local $7) ) + (block + (set_local $6 + (get_local $0) + ) + (set_local $1 + (i32.const 0) + ) + (i32.const 0) + ) ) ) (set_local $3 diff --git a/test/emcc_hello_world.fromasm.imprecise b/test/emcc_hello_world.fromasm.imprecise index c97524f7b..014f28dd2 100644 --- a/test/emcc_hello_world.fromasm.imprecise +++ b/test/emcc_hello_world.fromasm.imprecise @@ -132,9 +132,8 @@ ) (func $setThrew (param $0 i32) (param $1 i32) (if - (i32.eq + (i32.eqz (get_global $__THREW__) - (i32.const 0) ) (block (set_global $__THREW__ @@ -428,13 +427,7 @@ (i32.const 2) ) (if - (i32.eq - (get_local $4) - (i32.const 0) - ) - (set_local $5 - (i32.const 775) - ) + (get_local $4) (block (set_local $3 (get_local $4) @@ -446,6 +439,9 @@ (i32.const 5) ) ) + (set_local $5 + (i32.const 775) + ) ) ) (if @@ -464,17 +460,17 @@ ) ) (if - (i32.eq - (i32.shr_s - (i32.shl - (i32.load8_s - (get_local $2) - ) - (i32.const 24) + (i32.shr_s + (i32.shl + (i32.load8_s + (get_local $2) ) (i32.const 24) ) - (i32.const 0) + (i32.const 24) + ) + (set_local $2 + (get_local $0) ) (block (set_local $1 @@ -482,28 +478,16 @@ ) (br $while-out$4) ) - (set_local $2 - (get_local $0) - ) ) (br $while-in$5) ) ) (if - (i32.eq - (tee_local $0 - (i32.add - (get_local $3) - (i32.const -1) - ) - ) - (i32.const 0) - ) - (block - (set_local $5 - (get_local $1) + (tee_local $0 + (i32.add + (get_local $3) + (i32.const -1) ) - (br $while-out$2) ) (block (set_local $3 @@ -513,6 +497,12 @@ (get_local $1) ) ) + (block + (set_local $5 + (get_local $1) + ) + (br $while-out$2) + ) ) (br $while-in$3) ) @@ -522,16 +512,13 @@ ) (func $___errno_location (result i32) (if - (i32.eq - (i32.load - (i32.const 16) - ) - (i32.const 0) + (i32.load + (i32.const 16) ) - (i32.const 60) (i32.load offset=60 (call_import $_pthread_self) ) + (i32.const 60) ) ) (func $___stdio_close (param $0 i32) (result i32) @@ -608,14 +595,13 @@ (i32.const 4) ) (if - (i32.eq + (i32.eqz (i32.and (i32.load (get_local $0) ) (i32.const 64) ) - (i32.const 0) ) (block (i32.store @@ -633,12 +619,13 @@ (get_local $5) ) (if - (i32.ne - (call_import $___syscall54 - (i32.const 54) - (get_local $3) + (i32.eqz + (i32.eqz + (call_import $___syscall54 + (i32.const 54) + (get_local $3) + ) ) - (i32.const 0) ) (i32.store8 offset=75 (get_local $0) @@ -740,38 +727,70 @@ (local $2 i32) (block $do-once$0 (if - (i32.eq - (get_local $0) - (i32.const 0) + (get_local $0) + (block + (if + (i32.le_s + (i32.load offset=76 + (get_local $0) + ) + (i32.const -1) + ) + (br $do-once$0 + (call $___fflush_unlocked + (get_local $0) + ) + ) + ) + (set_local $2 + (i32.eqz + (call $___lockfile + (get_local $0) + ) + ) + ) + (set_local $1 + (call $___fflush_unlocked + (get_local $0) + ) + ) + (if + (get_local $2) + (get_local $1) + (block + (call $___unlockfile + (get_local $0) + ) + (get_local $1) + ) + ) ) (block (set_local $0 (if - (i32.eq - (i32.load - (i32.const 12) - ) - (i32.const 0) + (i32.load + (i32.const 12) ) - (i32.const 0) (call $_fflush (i32.load (i32.const 12) ) ) + (i32.const 0) ) ) (call_import $___lock (i32.const 44) ) (if - (i32.ne - (tee_local $1 - (i32.load - (i32.const 40) + (i32.eqz + (i32.eqz + (tee_local $1 + (i32.load + (i32.const 40) + ) ) ) - (i32.const 0) ) (block (set_local $2 @@ -813,22 +832,23 @@ ) ) (if - (i32.ne - (get_local $0) - (i32.const 0) + (i32.eqz + (i32.eqz + (get_local $0) + ) ) (call $___unlockfile (get_local $1) ) ) (if - (i32.eq - (tee_local $0 - (i32.load offset=56 - (get_local $1) - ) + (tee_local $0 + (i32.load offset=56 + (get_local $1) ) - (i32.const 0) + ) + (set_local $1 + (get_local $0) ) (block (set_local $0 @@ -836,9 +856,6 @@ ) (br $while-out$2) ) - (set_local $1 - (get_local $0) - ) ) (br $while-in$3) ) @@ -850,44 +867,6 @@ ) (get_local $0) ) - (block - (if - (i32.le_s - (i32.load offset=76 - (get_local $0) - ) - (i32.const -1) - ) - (br $do-once$0 - (call $___fflush_unlocked - (get_local $0) - ) - ) - ) - (set_local $2 - (i32.eq - (call $___lockfile - (get_local $0) - ) - (i32.const 0) - ) - ) - (set_local $1 - (call $___fflush_unlocked - (get_local $0) - ) - ) - (if - (get_local $2) - (get_local $1) - (block - (call $___unlockfile - (get_local $0) - ) - (get_local $1) - ) - ) - ) ) ) ) @@ -1047,33 +1026,8 @@ (get_local $3) (tee_local $5 (if - (i32.eq - (i32.load - (i32.const 16) - ) - (i32.const 0) - ) - (block - (i32.store - (get_local $9) - (i32.load - (get_local $12) - ) - ) - (i32.store offset=4 - (get_local $9) - (get_local $4) - ) - (i32.store offset=8 - (get_local $9) - (get_local $6) - ) - (call $___syscall_ret - (call_import $___syscall146 - (i32.const 146) - (get_local $9) - ) - ) + (i32.load + (i32.const 16) ) (block (call_import $_pthread_cleanup_push @@ -1107,6 +1061,28 @@ ) (get_local $1) ) + (block + (i32.store + (get_local $9) + (i32.load + (get_local $12) + ) + ) + (i32.store offset=4 + (get_local $9) + (get_local $4) + ) + (i32.store offset=8 + (get_local $9) + (get_local $6) + ) + (call $___syscall_ret + (call_import $___syscall146 + (i32.const 146) + (get_local $9) + ) + ) + ) ) ) ) @@ -1466,16 +1442,20 @@ (set_local $2 (select (if - (i32.eq - (i32.load - (tee_local $10 - (i32.add - (get_local $0) - (i32.const 48) - ) + (i32.load + (tee_local $10 + (i32.add + (get_local $0) + (i32.const 48) ) ) - (i32.const 0) + ) + (call $_printf_core + (get_local $0) + (get_local $1) + (get_local $5) + (get_local $8) + (get_local $9) ) (block (set_local $2 @@ -1536,11 +1516,7 @@ ) ) (if - (i32.eq - (get_local $2) - (i32.const 0) - ) - (get_local $1) + (get_local $2) (block (drop (call_indirect $FUNCSIG$iiii @@ -1562,11 +1538,10 @@ (select (i32.const -1) (get_local $1) - (i32.eq + (i32.eqz (i32.load (get_local $11) ) - (i32.const 0) ) ) ) @@ -1592,18 +1567,12 @@ ) (get_local $1) ) + (get_local $1) ) ) - (call $_printf_core - (get_local $0) - (get_local $1) - (get_local $5) - (get_local $8) - (get_local $9) - ) ) (i32.const -1) - (i32.eq + (i32.eqz (i32.and (tee_local $1 (i32.load @@ -1612,7 +1581,6 @@ ) (i32.const 32) ) - (i32.const 0) ) ) ) @@ -1624,9 +1592,10 @@ ) ) (if - (i32.ne - (get_local $12) - (i32.const 0) + (i32.eqz + (i32.eqz + (get_local $12) + ) ) (call $___unlockfile (get_local $0) @@ -1648,24 +1617,29 @@ (local $6 i32) (local $7 i32) (if - (i32.eq - (tee_local $6 - (i32.load - (tee_local $5 - (i32.add - (get_local $2) - (i32.const 16) - ) + (tee_local $6 + (i32.load + (tee_local $5 + (i32.add + (get_local $2) + (i32.const 16) ) ) ) - (i32.const 0) + ) + (block + (set_local $3 + (get_local $6) + ) + (set_local $7 + (i32.const 5) + ) ) (if - (i32.eq - (call $___towrite - (get_local $2) - ) + (call $___towrite + (get_local $2) + ) + (set_local $4 (i32.const 0) ) (block @@ -1678,17 +1652,6 @@ (i32.const 5) ) ) - (set_local $4 - (i32.const 0) - ) - ) - (block - (set_local $3 - (get_local $6) - ) - (set_local $7 - (i32.const 5) - ) ) ) (block $label$break$L5 @@ -1761,9 +1724,8 @@ (loop $while-in$3 (block $while-out$2 (if - (i32.eq + (i32.eqz (get_local $3) - (i32.const 0) ) (block (set_local $2 @@ -1914,16 +1876,23 @@ (get_local $1) ) (if - (i32.eq - (i32.and - (tee_local $1 - (i32.load - (get_local $0) - ) + (i32.and + (tee_local $1 + (i32.load + (get_local $0) ) - (i32.const 8) ) - (i32.const 0) + (i32.const 8) + ) + (block + (i32.store + (get_local $0) + (i32.or + (get_local $1) + (i32.const 32) + ) + ) + (i32.const -1) ) (block (i32.store offset=8 @@ -1957,26 +1926,12 @@ ) (i32.const 0) ) - (block - (i32.store - (get_local $0) - (i32.or - (get_local $1) - (i32.const 32) - ) - ) - (i32.const -1) - ) ) ) (func $_wcrtomb (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (block $do-once$0 (if - (i32.eq - (get_local $0) - (i32.const 0) - ) - (i32.const 1) + (get_local $0) (block (if (i32.lt_u @@ -2173,21 +2128,19 @@ ) ) ) + (i32.const 1) ) ) ) (func $_wctomb (param $0 i32) (param $1 i32) (result i32) (if - (i32.eq - (get_local $0) - (i32.const 0) - ) - (i32.const 0) + (get_local $0) (call $_wcrtomb (get_local $0) (get_local $1) (i32.const 0) ) + (i32.const 0) ) ) (func $_memchr (param $0 i32) (param $1 i32) (param $2 i32) (result i32) @@ -2436,18 +2389,19 @@ ) ) (br_if $while-out$5 - (i32.ne - (i32.and - (i32.xor - (i32.and - (get_local $6) + (i32.eqz + (i32.eqz + (i32.and + (i32.xor + (i32.and + (get_local $6) + (i32.const -2139062144) + ) (i32.const -2139062144) ) - (i32.const -2139062144) + (get_local $1) ) - (get_local $1) ) - (i32.const 0) ) ) (set_local $1 @@ -2511,26 +2465,23 @@ (i32.const 11) ) (if - (i32.eq - (get_local $12) - (i32.const 0) - ) + (get_local $12) (block - (set_local $7 - (i32.const 0) + (set_local $10 + (get_local $12) ) - (set_local $8 + (set_local $9 (get_local $13) ) - (br $label$break$L8) ) (block - (set_local $10 - (get_local $12) + (set_local $7 + (i32.const 0) ) - (set_local $9 + (set_local $8 (get_local $13) ) + (br $label$break$L8) ) ) ) @@ -2572,31 +2523,28 @@ ) ) (if - (i32.eq - (tee_local $1 - (i32.add - (get_local $10) - (i32.const -1) - ) + (tee_local $1 + (i32.add + (get_local $10) + (i32.const -1) ) - (i32.const 0) ) (block - (set_local $7 - (i32.const 0) + (set_local $10 + (get_local $1) ) - (set_local $8 + (set_local $9 (get_local $2) ) - (br $while-out$7) ) (block - (set_local $10 - (get_local $1) + (set_local $7 + (i32.const 0) ) - (set_local $9 + (set_local $8 (get_local $2) ) + (br $while-out$7) ) ) (br $while-in$8) @@ -2678,18 +2626,15 @@ ) ) (if - (i32.eq - (i32.load - (get_local $3) - ) - (i32.const 0) - ) - (set_local $1 - (i32.const -1) + (i32.load + (get_local $3) ) (set_local $2 (i32.const 3) ) + (set_local $1 + (i32.const -1) + ) ) ) (set_local $2 @@ -2774,11 +2719,10 @@ ) (func $_cleanup (param $0 i32) (if - (i32.eq + (i32.eqz (i32.load offset=68 (get_local $0) ) - (i32.const 0) ) (call $___unlockfile (get_local $0) @@ -3045,19 +2989,19 @@ ) ) (if - (i32.eq - (i32.shr_s - (i32.shl - (tee_local $1 - (i32.load8_s - (get_local $20) - ) + (i32.shr_s + (i32.shl + (tee_local $1 + (i32.load8_s + (get_local $20) ) - (i32.const 24) ) (i32.const 24) ) - (i32.const 0) + (i32.const 24) + ) + (set_local $5 + (get_local $20) ) (block (set_local $82 @@ -3071,9 +3015,6 @@ ) (br $label$break$L1) ) - (set_local $5 - (get_local $20) - ) ) (loop $label$continue$L9 (block $label$break$L9 @@ -3215,14 +3156,13 @@ (if (get_local $44) (if - (i32.eq + (i32.eqz (i32.and (i32.load (get_local $0) ) (i32.const 32) ) - (i32.const 0) ) (call $___fwritex (get_local $20) @@ -3351,7 +3291,7 @@ (loop $while-in$11 (block $while-out$10 (br_if $label$break$L25 - (i32.eq + (i32.eqz (i32.and (i32.shl (i32.const 1) @@ -3362,7 +3302,6 @@ ) (i32.const 75913) ) - (i32.const 0) ) ) (set_local $8 @@ -3540,9 +3479,10 @@ (i32.const 0) ) (if - (i32.ne - (get_local $11) - (i32.const 0) + (i32.eqz + (i32.eqz + (get_local $11) + ) ) (block (set_local $24 @@ -3934,9 +3874,10 @@ ) ) (if - (i32.ne - (get_local $21) - (i32.const 0) + (i32.eqz + (i32.eqz + (get_local $21) + ) ) (block (set_local $24 @@ -4073,7 +4014,7 @@ ) ) (if - (i32.eq + (i32.eqz (i32.shr_s (i32.shl (get_local $1) @@ -4081,7 +4022,6 @@ ) (i32.const 24) ) - (i32.const 0) ) (block (set_local $24 @@ -4249,12 +4189,11 @@ (i32.const -65537) ) ) - (i32.eq + (i32.eqz (i32.and (get_local $8) (i32.const 8192) ) - (i32.const 0) ) ) ) @@ -4509,7 +4448,7 @@ ) (if (i32.and - (i32.eq + (i32.eqz (tee_local $5 (i32.load (tee_local $1 @@ -4517,15 +4456,13 @@ ) ) ) - (i32.const 0) ) - (i32.eq + (i32.eqz (tee_local $1 (i32.load offset=4 (get_local $1) ) ) - (i32.const 0) ) ) (set_local $6 @@ -4557,7 +4494,7 @@ ) (br_if $while-out$38 (i32.and - (i32.eq + (i32.eqz (tee_local $5 (call $_bitshift64Lshr (get_local $5) @@ -4565,13 +4502,11 @@ (i32.const 3) ) ) - (i32.const 0) ) - (i32.eq + (i32.eqz (tee_local $1 (get_global $tempRet0) ) - (i32.const 0) ) ) ) @@ -4582,30 +4517,9 @@ ) (set_local $58 (if - (i32.eq - (i32.and - (get_local $18) - (i32.const 8) - ) - (i32.const 0) - ) - (block - (set_local $34 - (get_local $18) - ) - (set_local $32 - (get_local $10) - ) - (set_local $35 - (i32.const 0) - ) - (set_local $36 - (i32.const 4091) - ) - (set_local $12 - (i32.const 77) - ) - (get_local $6) + (i32.and + (get_local $18) + (i32.const 8) ) (block (set_local $5 @@ -4643,6 +4557,24 @@ ) (get_local $6) ) + (block + (set_local $34 + (get_local $18) + ) + (set_local $32 + (get_local $10) + ) + (set_local $35 + (i32.const 0) + ) + (set_local $36 + (i32.const 4091) + ) + (set_local $12 + (i32.const 77) + ) + (get_local $6) + ) ) ) (br $switch$24) @@ -4705,26 +4637,37 @@ ) (set_local $33 (if - (i32.eq - (i32.and - (get_local $18) - (i32.const 2048) + (i32.and + (get_local $18) + (i32.const 2048) + ) + (block + (set_local $59 + (get_local $33) ) - (i32.const 0) + (set_local $60 + (i32.const 1) + ) + (set_local $61 + (i32.const 4092) + ) + (set_local $12 + (i32.const 76) + ) + (get_local $5) ) (block (set_local $1 (select (i32.const 4091) (i32.const 4093) - (i32.eq + (i32.eqz (tee_local $6 (i32.and (get_local $18) (i32.const 1) ) ) - (i32.const 0) ) ) ) @@ -4742,21 +4685,6 @@ ) (get_local $5) ) - (block - (set_local $59 - (get_local $33) - ) - (set_local $60 - (i32.const 1) - ) - (set_local $61 - (i32.const 4092) - ) - (set_local $12 - (i32.const 76) - ) - (get_local $5) - ) ) ) (br $switch$24) @@ -4877,9 +4805,12 @@ ) (set_local $12 (if - (i32.eq - (get_local $10) - (i32.const 0) + (get_local $10) + (block + (set_local $69 + (get_local $10) + ) + (i32.const 86) ) (block (call $_pad @@ -4894,12 +4825,6 @@ ) (i32.const 98) ) - (block - (set_local $69 - (get_local $10) - ) - (i32.const 86) - ) ) ) (br $switch$24) @@ -4937,37 +4862,33 @@ (i32.const 1) ) (if - (i32.eq - (i32.and - (get_local $18) - (i32.const 2048) + (i32.and + (get_local $18) + (i32.const 2048) + ) + (block + (set_local $39 + (i32.const 4111) ) - (i32.const 0) + (i32.const 1) ) (block (set_local $39 (select (i32.const 4109) (i32.const 4114) - (i32.eq + (i32.eqz (tee_local $1 (i32.and (get_local $18) (i32.const 1) ) ) - (i32.const 0) ) ) ) (get_local $1) ) - (block - (set_local $39 - (i32.const 4111) - ) - (i32.const 1) - ) ) ) ) @@ -5045,14 +4966,13 @@ (get_local $39) (i32.const 9) ) - (i32.eq + (i32.eqz (tee_local $6 (i32.and (get_local $26) (i32.const 32) ) ) - (i32.const 0) ) ) ) @@ -5069,14 +4989,13 @@ (get_local $10) (i32.const 11) ) - (i32.eq + (i32.eqz (tee_local $1 (i32.sub (i32.const 12) (get_local $10) ) ) - (i32.const 0) ) ) (get_local $14) @@ -5093,14 +5012,13 @@ ) ) (br_if $while-out$60 - (i32.eq + (i32.eqz (tee_local $1 (i32.add (get_local $1) (i32.const -1) ) ) - (i32.const 0) ) ) (br $while-in$61) @@ -5234,12 +5152,11 @@ ) ) (set_local $13 - (i32.eq + (i32.eqz (i32.and (get_local $18) (i32.const 8) ) - (i32.const 0) ) ) (set_local $11 @@ -5383,14 +5300,13 @@ (get_local $18) ) (if - (i32.eq + (i32.eqz (i32.and (i32.load (get_local $0) ) (i32.const 32) ) - (i32.const 0) ) (call $___fwritex (get_local $9) @@ -5415,14 +5331,13 @@ ) ) (if - (i32.eq + (i32.eqz (i32.and (i32.load (get_local $0) ) (i32.const 32) ) - (i32.const 0) ) (call $___fwritex (get_local $29) @@ -5449,14 +5364,13 @@ (i32.const 0) ) (if - (i32.eq + (i32.eqz (i32.and (i32.load (get_local $0) ) (i32.const 32) ) - (i32.const 0) ) (call $___fwritex (get_local $8) @@ -5682,9 +5596,8 @@ ) (br_if $do-once$70 (get_local $8) - (i32.eq + (i32.eqz (get_local $5) - (i32.const 0) ) ) (i32.store @@ -5710,21 +5623,18 @@ ) ) (if - (i32.eq - (i32.load - (tee_local $5 - (i32.add - (get_local $13) - (i32.const -4) - ) + (i32.load + (tee_local $5 + (i32.add + (get_local $13) + (i32.const -4) ) ) - (i32.const 0) ) + (br $while-out$74) (set_local $13 (get_local $5) ) - (br $while-out$74) ) (br $while-in$75) ) @@ -5891,19 +5801,17 @@ (i32.const 4) ) (get_local $7) - (i32.eq + (i32.eqz (i32.load (get_local $7) ) - (i32.const 0) ) ) ) (br_if $do-once$78 (get_local $5) - (i32.eq + (i32.eqz (get_local $11) - (i32.const 0) ) ) (i32.store @@ -5924,11 +5832,10 @@ (i32.const 4) ) (get_local $7) - (i32.eq + (i32.eqz (i32.load (get_local $7) ) - (i32.const 0) ) ) ) @@ -6224,7 +6131,7 @@ (get_local $27) ) ) - (i32.eq + (i32.eqz (tee_local $15 (i32.and (i32.rem_u @@ -6238,7 +6145,6 @@ (i32.const -1) ) ) - (i32.const 0) ) ) ) @@ -6247,7 +6153,7 @@ (select (f64.const 9007199254740992) (f64.const 9007199254740994) - (i32.eq + (i32.eqz (i32.and (i32.and (i32.div_u @@ -6258,7 +6164,6 @@ ) (i32.const 1) ) - (i32.const 0) ) ) ) @@ -6293,11 +6198,7 @@ (set_local $14 (block $do-once$90 (if - (i32.eq - (get_local $51) - (i32.const 0) - ) - (get_local $14) + (get_local $51) (block (br_if $do-once$90 (get_local $14) @@ -6323,6 +6224,7 @@ (get_local $14) ) ) + (get_local $14) ) ) ) @@ -6525,19 +6427,13 @@ ) ) (if - (i32.eq - (i32.load - (tee_local $5 - (i32.add - (get_local $6) - (i32.const -4) - ) + (i32.load + (tee_local $5 + (i32.add + (get_local $6) + (i32.const -4) ) ) - (i32.const 0) - ) - (set_local $6 - (get_local $5) ) (block (set_local $11 @@ -6548,6 +6444,9 @@ ) (br $while-out$96) ) + (set_local $6 + (get_local $5) + ) ) (br $while-in$97) ) @@ -6610,14 +6509,15 @@ ) ) (if - (i32.ne - (tee_local $1 - (i32.and - (get_local $18) - (i32.const 8) + (i32.eqz + (i32.eqz + (tee_local $1 + (i32.and + (get_local $18) + (i32.const 8) + ) ) ) - (i32.const 0) ) (block (set_local $15 @@ -6636,7 +6536,7 @@ (get_local $11) (block (if - (i32.eq + (i32.eqz (tee_local $1 (i32.load (i32.add @@ -6645,7 +6545,6 @@ ) ) ) - (i32.const 0) ) (block (set_local $6 @@ -6655,29 +6554,26 @@ ) ) (if - (i32.eq - (i32.and - (i32.rem_u - (get_local $1) - (i32.const 10) - ) - (i32.const -1) + (i32.and + (i32.rem_u + (get_local $1) + (i32.const 10) ) - (i32.const 0) + (i32.const -1) ) (block - (set_local $5 - (i32.const 10) - ) (set_local $6 (i32.const 0) ) + (br $do-once$100) ) (block + (set_local $5 + (i32.const 10) + ) (set_local $6 (i32.const 0) ) - (br $do-once$100) ) ) (loop $while-in$103 @@ -6689,20 +6585,21 @@ ) ) (br_if $while-out$102 - (i32.ne - (i32.and - (i32.rem_u - (get_local $1) - (tee_local $5 - (i32.mul - (get_local $5) - (i32.const 10) + (i32.eqz + (i32.eqz + (i32.and + (i32.rem_u + (get_local $1) + (tee_local $5 + (i32.mul + (get_local $5) + (i32.const 10) + ) ) ) + (i32.const -1) ) - (i32.const -1) ) - (i32.const 0) ) ) (br $while-in$103) @@ -6987,14 +6884,13 @@ (get_local $18) ) (if - (i32.eq + (i32.eqz (i32.and (i32.load (get_local $0) ) (i32.const 32) ) - (i32.const 0) ) (call $___fwritex (get_local $39) @@ -7091,14 +6987,13 @@ ) ) (if - (i32.eq + (i32.eqz (i32.and (i32.load (get_local $0) ) (i32.const 32) ) - (i32.const 0) ) (drop (call $___fwritex @@ -7133,20 +7028,22 @@ ) (block $do-once$114 (if - (i32.ne - (get_local $1) - (i32.const 0) + (i32.eqz + (i32.eqz + (get_local $1) + ) ) (block (br_if $do-once$114 - (i32.ne - (i32.and - (i32.load - (get_local $0) + (i32.eqz + (i32.eqz + (i32.and + (i32.load + (get_local $0) + ) + (i32.const 32) ) - (i32.const 32) ) - (i32.const 0) ) ) (drop @@ -7207,14 +7104,13 @@ ) ) (if - (i32.eq + (i32.eqz (i32.and (i32.load (get_local $0) ) (i32.const 32) ) - (i32.const 0) ) (drop (call $___fwritex @@ -7296,9 +7192,8 @@ ) (block (set_local $9 - (i32.eq + (i32.eqz (get_local $8) - (i32.const 0) ) ) (set_local $5 @@ -7344,14 +7239,13 @@ ) ) (if - (i32.eq + (i32.eqz (i32.and (i32.load (get_local $0) ) (i32.const 32) ) - (i32.const 0) ) (call $___fwritex (get_local $8) @@ -7369,14 +7263,15 @@ ) ) (br_if $do-once$122 - (i32.ne - (i32.and - (i32.load - (get_local $0) + (i32.eqz + (i32.eqz + (i32.and + (i32.load + (get_local $0) + ) + (i32.const 32) ) - (i32.const 32) ) - (i32.const 0) ) ) (drop @@ -7433,14 +7328,13 @@ ) ) (if - (i32.eq + (i32.eqz (i32.and (i32.load (get_local $0) ) (i32.const 32) ) - (i32.const 0) ) (drop (call $___fwritex @@ -7497,14 +7391,15 @@ (i32.const 0) ) (br_if $do-once$106 - (i32.ne - (i32.and - (i32.load - (get_local $0) + (i32.eqz + (i32.eqz + (i32.and + (i32.load + (get_local $0) + ) + (i32.const 32) ) - (i32.const 32) ) - (i32.const 0) ) ) (drop @@ -7594,20 +7489,18 @@ (get_local $7) ) (if - (i32.eq + (i32.eqz (i32.and (if - (i32.eq - (i32.and - (tee_local $1 - (i32.load - (get_local $0) - ) + (i32.and + (tee_local $1 + (i32.load + (get_local $0) ) - (i32.const 32) ) - (i32.const 0) + (i32.const 32) ) + (get_local $1) (block (drop (call $___fwritex @@ -7620,11 +7513,9 @@ (get_local $0) ) ) - (get_local $1) ) (i32.const 32) ) - (i32.const 0) ) (call $___fwritex (get_local $8) @@ -7694,7 +7585,7 @@ (set_local $58 (if (i32.and - (i32.eq + (i32.eqz (tee_local $5 (i32.load (tee_local $1 @@ -7702,15 +7593,13 @@ ) ) ) - (i32.const 0) ) - (i32.eq + (i32.eqz (tee_local $1 (i32.load offset=4 (get_local $1) ) ) - (i32.const 0) ) ) (block @@ -7765,7 +7654,7 @@ ) (br_if $while-out$129 (i32.and - (i32.eq + (i32.eqz (tee_local $5 (call $_bitshift64Lshr (get_local $5) @@ -7773,13 +7662,11 @@ (i32.const 4) ) ) - (i32.const 0) ) - (i32.eq + (i32.eqz (tee_local $1 (get_global $tempRet0) ) - (i32.const 0) ) ) ) @@ -7788,27 +7675,24 @@ ) (if (i32.or - (i32.eq + (i32.eqz (i32.and (get_local $46) (i32.const 8) ) - (i32.const 0) ) (i32.and - (i32.eq + (i32.eqz (i32.load (tee_local $1 (get_local $19) ) ) - (i32.const 0) ) - (i32.eq + (i32.eqz (i32.load offset=4 (get_local $1) ) - (i32.const 0) ) ) ) @@ -7898,7 +7782,7 @@ (i32.const 0) ) (set_local $5 - (i32.eq + (i32.eqz (tee_local $1 (call $_memchr (get_local $50) @@ -7906,7 +7790,6 @@ (get_local $10) ) ) - (i32.const 0) ) ) (set_local $47 @@ -7965,13 +7848,12 @@ (loop $while-in$132 (block $while-out$131 (br_if $while-out$131 - (i32.eq + (i32.eqz (tee_local $1 (i32.load (get_local $6) ) ) - (i32.const 0) ) ) (br_if $while-out$131 @@ -8043,18 +7925,7 @@ (get_local $18) ) (if - (i32.eq - (get_local $7) - (i32.const 0) - ) - (block - (set_local $38 - (i32.const 0) - ) - (set_local $12 - (i32.const 98) - ) - ) + (get_local $7) (block (set_local $6 (i32.const 0) @@ -8067,13 +7938,12 @@ (loop $while-in$134 (block $while-out$133 (if - (i32.eq + (i32.eqz (tee_local $1 (i32.load (get_local $8) ) ) - (i32.const 0) ) (block (set_local $38 @@ -8117,14 +7987,13 @@ ) ) (if - (i32.eq + (i32.eqz (i32.and (i32.load (get_local $0) ) (i32.const 32) ) - (i32.const 0) ) (call $___fwritex (get_local $63) @@ -8154,6 +8023,14 @@ ) ) ) + (block + (set_local $38 + (i32.const 0) + ) + (set_local $12 + (i32.const 98) + ) + ) ) ) ) @@ -8353,14 +8230,13 @@ (get_local $37) ) (if - (i32.eq + (i32.eqz (i32.and (i32.load (get_local $0) ) (i32.const 32) ) - (i32.const 0) ) (call $___fwritex (get_local $48) @@ -8386,14 +8262,13 @@ (i32.const 0) ) (if - (i32.eq + (i32.eqz (i32.and (i32.load (get_local $0) ) (i32.const 32) ) - (i32.const 0) ) (call $___fwritex (get_local $47) @@ -8430,18 +8305,12 @@ (i32.const 242) ) (if - (i32.eq - (get_local $0) - (i32.const 0) + (get_local $0) + (set_local $24 + (get_local $82) ) (if - (i32.eq - (get_local $83) - (i32.const 0) - ) - (set_local $24 - (i32.const 0) - ) + (get_local $83) (block (set_local $1 (i32.const 1) @@ -8449,7 +8318,7 @@ (loop $while-in$137 (block $while-out$136 (br_if $while-out$136 - (i32.eq + (i32.eqz (tee_local $0 (i32.load (i32.add @@ -8461,7 +8330,6 @@ ) ) ) - (i32.const 0) ) ) (call $_pop_arg_336 @@ -8509,17 +8377,18 @@ ) ) (if - (i32.ne - (i32.load - (i32.add - (get_local $4) - (i32.shl - (get_local $1) - (i32.const 2) + (i32.eqz + (i32.eqz + (i32.load + (i32.add + (get_local $4) + (i32.shl + (get_local $1) + (i32.const 2) + ) ) ) ) - (i32.const 0) ) (block (set_local $24 @@ -8551,9 +8420,9 @@ ) ) ) - ) - (set_local $24 - (get_local $82) + (set_local $24 + (i32.const 0) + ) ) ) ) @@ -8980,9 +8849,8 @@ (i32.const 0) ) (i32.and - (i32.eq + (i32.eqz (get_local $1) - (i32.const 0) ) (i32.gt_u (get_local $0) @@ -9077,9 +8945,10 @@ ) ) (if - (i32.ne - (get_local $3) - (i32.const 0) + (i32.eqz + (i32.eqz + (get_local $3) + ) ) (block (set_local $1 @@ -9169,12 +9038,11 @@ (get_local $2) (get_local $3) ) - (i32.eq + (i32.eqz (i32.and (get_local $4) (i32.const 73728) ) - (i32.const 0) ) ) (block @@ -9201,7 +9069,7 @@ ) ) (set_local $4 - (i32.eq + (i32.eqz (i32.and (tee_local $1 (i32.load @@ -9210,7 +9078,6 @@ ) (i32.const 32) ) - (i32.const 0) ) ) (if @@ -9231,7 +9098,7 @@ (loop $while-in$3 (block $while-out$2 (set_local $4 - (i32.eq + (i32.eqz (i32.and (tee_local $1 (if @@ -9253,7 +9120,6 @@ ) (i32.const 32) ) - (i32.const 0) ) ) (br_if $while-out$2 @@ -9359,41 +9225,42 @@ ) (block (if - (i32.ne - (i32.and - (tee_local $25 - (i32.shr_u - (tee_local $4 - (i32.load - (i32.const 176) + (i32.eqz + (i32.eqz + (i32.and + (tee_local $25 + (i32.shr_u + (tee_local $4 + (i32.load + (i32.const 176) + ) ) - ) - (tee_local $22 - (i32.shr_u - (tee_local $6 - (select - (i32.const 16) - (i32.and - (i32.add + (tee_local $22 + (i32.shr_u + (tee_local $6 + (select + (i32.const 16) + (i32.and + (i32.add + (get_local $0) + (i32.const 11) + ) + (i32.const -8) + ) + (i32.lt_u (get_local $0) (i32.const 11) ) - (i32.const -8) - ) - (i32.lt_u - (get_local $0) - (i32.const 11) ) ) + (i32.const 3) ) - (i32.const 3) ) ) ) + (i32.const 3) ) - (i32.const 3) ) - (i32.const 0) ) (block (set_local $2 @@ -9539,9 +9406,10 @@ ) (block (if - (i32.ne - (get_local $25) - (i32.const 0) + (i32.eqz + (i32.eqz + (get_local $25) + ) ) (block (set_local $1 @@ -9790,9 +9658,10 @@ (get_local $9) ) (if - (i32.ne - (get_local $7) - (i32.const 0) + (i32.eqz + (i32.eqz + (get_local $7) + ) ) (block (set_local $0 @@ -9818,39 +9687,18 @@ ) ) (if - (i32.eq - (i32.and - (tee_local $1 - (i32.load - (i32.const 176) - ) - ) - (tee_local $2 - (i32.shl - (i32.const 1) - (get_local $2) - ) + (i32.and + (tee_local $1 + (i32.load + (i32.const 176) ) ) - (i32.const 0) - ) - (block - (i32.store - (i32.const 176) - (i32.or - (get_local $1) + (tee_local $2 + (i32.shl + (i32.const 1) (get_local $2) ) ) - (set_local $5 - (i32.add - (get_local $8) - (i32.const 8) - ) - ) - (set_local $12 - (get_local $8) - ) ) (if (i32.lt_u @@ -9878,6 +9726,24 @@ ) ) ) + (block + (i32.store + (i32.const 176) + (i32.or + (get_local $1) + (get_local $2) + ) + ) + (set_local $5 + (i32.add + (get_local $8) + (i32.const 8) + ) + ) + (set_local $12 + (get_local $8) + ) + ) ) (i32.store (get_local $5) @@ -9911,13 +9777,14 @@ ) ) (if - (i32.ne - (tee_local $0 - (i32.load - (i32.const 180) + (i32.eqz + (i32.eqz + (tee_local $0 + (i32.load + (i32.const 180) + ) ) ) - (i32.const 0) ) (block (set_local $0 @@ -10037,22 +9904,22 @@ (loop $while-in$7 (block $while-out$6 (if - (i32.eq - (tee_local $0 - (i32.load offset=16 - (get_local $4) - ) + (tee_local $0 + (i32.load offset=16 + (get_local $4) ) - (i32.const 0) + ) + (set_local $1 + (get_local $0) ) (if - (i32.eq - (tee_local $0 - (i32.load offset=20 - (get_local $4) - ) + (tee_local $0 + (i32.load offset=20 + (get_local $4) ) - (i32.const 0) + ) + (set_local $1 + (get_local $0) ) (block (set_local $7 @@ -10063,12 +9930,6 @@ ) (br $while-out$6) ) - (set_local $1 - (get_local $0) - ) - ) - (set_local $1 - (get_local $0) ) ) (set_local $0 @@ -10147,32 +10008,32 @@ ) (block (if - (i32.eq + (tee_local $2 + (i32.load + (tee_local $8 + (i32.add + (get_local $10) + (i32.const 20) + ) + ) + ) + ) + (set_local $4 + (get_local $2) + ) + (if (tee_local $2 (i32.load (tee_local $8 (i32.add (get_local $10) - (i32.const 20) + (i32.const 16) ) ) ) ) - (i32.const 0) - ) - (if - (i32.eq - (tee_local $2 - (i32.load - (tee_local $8 - (i32.add - (get_local $10) - (i32.const 16) - ) - ) - ) - ) - (i32.const 0) + (set_local $4 + (get_local $2) ) (block (set_local $15 @@ -10180,29 +10041,24 @@ ) (br $do-once$8) ) - (set_local $4 - (get_local $2) - ) - ) - (set_local $4 - (get_local $2) ) ) (loop $while-in$11 (block $while-out$10 (if - (i32.ne - (tee_local $2 - (i32.load - (tee_local $5 - (i32.add - (get_local $4) - (i32.const 20) + (i32.eqz + (i32.eqz + (tee_local $2 + (i32.load + (tee_local $5 + (i32.add + (get_local $4) + (i32.const 20) + ) ) ) ) ) - (i32.const 0) ) (block (set_local $4 @@ -10215,20 +10071,16 @@ ) ) (if - (i32.eq - (tee_local $2 - (i32.load - (tee_local $5 - (i32.add - (get_local $4) - (i32.const 16) - ) + (tee_local $2 + (i32.load + (tee_local $5 + (i32.add + (get_local $4) + (i32.const 16) ) ) ) - (i32.const 0) ) - (br $while-out$10) (block (set_local $4 (get_local $2) @@ -10237,6 +10089,7 @@ (get_local $5) ) ) + (br $while-out$10) ) (br $while-in$11) ) @@ -10316,9 +10169,10 @@ ) (block $do-once$12 (if - (i32.ne - (get_local $1) - (i32.const 0) + (i32.eqz + (i32.eqz + (get_local $1) + ) ) (block (if @@ -10346,9 +10200,8 @@ (get_local $15) ) (if - (i32.eq + (i32.eqz (get_local $15) - (i32.const 0) ) (block (i32.store @@ -10402,9 +10255,8 @@ ) ) (br_if $do-once$12 - (i32.eq + (i32.eqz (get_local $15) - (i32.const 0) ) ) ) @@ -10425,13 +10277,14 @@ (get_local $1) ) (if - (i32.ne - (tee_local $1 - (i32.load offset=16 - (get_local $10) + (i32.eqz + (i32.eqz + (tee_local $1 + (i32.load offset=16 + (get_local $10) + ) ) ) - (i32.const 0) ) (if (i32.lt_u @@ -10452,13 +10305,14 @@ ) ) (if - (i32.ne - (tee_local $0 - (i32.load offset=20 - (get_local $10) + (i32.eqz + (i32.eqz + (tee_local $0 + (i32.load offset=20 + (get_local $10) + ) ) ) - (i32.const 0) ) (if (i32.lt_u @@ -10545,13 +10399,14 @@ (get_local $7) ) (if - (i32.ne - (tee_local $0 - (i32.load - (i32.const 184) + (i32.eqz + (i32.eqz + (tee_local $0 + (i32.load + (i32.const 184) + ) ) ) - (i32.const 0) ) (block (set_local $1 @@ -10577,39 +10432,18 @@ ) ) (if - (i32.eq - (i32.and - (tee_local $0 - (i32.load - (i32.const 176) - ) - ) - (tee_local $2 - (i32.shl - (i32.const 1) - (get_local $2) - ) + (i32.and + (tee_local $0 + (i32.load + (i32.const 176) ) ) - (i32.const 0) - ) - (block - (i32.store - (i32.const 176) - (i32.or - (get_local $0) + (tee_local $2 + (i32.shl + (i32.const 1) (get_local $2) ) ) - (set_local $3 - (i32.add - (get_local $4) - (i32.const 8) - ) - ) - (set_local $16 - (get_local $4) - ) ) (if (i32.lt_u @@ -10637,6 +10471,24 @@ ) ) ) + (block + (i32.store + (i32.const 176) + (i32.or + (get_local $0) + (get_local $2) + ) + ) + (set_local $3 + (i32.add + (get_local $4) + (i32.const 8) + ) + ) + (set_local $16 + (get_local $4) + ) + ) ) (i32.store (get_local $3) @@ -10698,16 +10550,10 @@ ) ) (if - (i32.eq - (tee_local $0 - (i32.load - (i32.const 180) - ) + (tee_local $0 + (i32.load + (i32.const 180) ) - (i32.const 0) - ) - (set_local $6 - (get_local $5) ) (block (set_local $16 @@ -10718,134 +10564,114 @@ ) (block $label$break$L123 (if - (i32.eq - (tee_local $3 - (i32.load offset=480 - (i32.shl - (tee_local $12 + (tee_local $3 + (i32.load offset=480 + (i32.shl + (tee_local $12 + (if + (tee_local $3 + (i32.shr_u + (get_local $3) + (i32.const 8) + ) + ) (if - (i32.eq - (tee_local $3 - (i32.shr_u - (get_local $3) - (i32.const 8) - ) - ) - (i32.const 0) + (i32.gt_u + (get_local $5) + (i32.const 16777215) ) - (i32.const 0) - (if - (i32.gt_u - (get_local $5) - (i32.const 16777215) - ) - (i32.const 31) - (block - (set_local $7 - (i32.shl - (tee_local $3 - (i32.add - (i32.sub - (i32.const 14) + (i32.const 31) + (block + (set_local $7 + (i32.shl + (tee_local $3 + (i32.add + (i32.sub + (i32.const 14) + (i32.or (i32.or - (i32.or - (tee_local $7 - (i32.and - (i32.shr_u - (i32.add - (tee_local $12 - (i32.shl - (get_local $3) - (tee_local $3 - (i32.and - (i32.shr_u - (i32.add - (get_local $3) - (i32.const 1048320) - ) - (i32.const 16) + (tee_local $7 + (i32.and + (i32.shr_u + (i32.add + (tee_local $12 + (i32.shl + (get_local $3) + (tee_local $3 + (i32.and + (i32.shr_u + (i32.add + (get_local $3) + (i32.const 1048320) ) - (i32.const 8) + (i32.const 16) ) + (i32.const 8) ) ) ) - (i32.const 520192) ) - (i32.const 16) + (i32.const 520192) ) - (i32.const 4) + (i32.const 16) ) + (i32.const 4) ) - (get_local $3) ) - (tee_local $3 - (i32.and - (i32.shr_u - (i32.add - (tee_local $7 - (i32.shl - (get_local $12) - (get_local $7) - ) + (get_local $3) + ) + (tee_local $3 + (i32.and + (i32.shr_u + (i32.add + (tee_local $7 + (i32.shl + (get_local $12) + (get_local $7) ) - (i32.const 245760) ) - (i32.const 16) + (i32.const 245760) ) - (i32.const 2) + (i32.const 16) ) + (i32.const 2) ) ) ) - (i32.shr_u - (i32.shl - (get_local $7) - (get_local $3) - ) - (i32.const 15) + ) + (i32.shr_u + (i32.shl + (get_local $7) + (get_local $3) ) + (i32.const 15) ) ) - (i32.const 1) ) + (i32.const 1) ) - (i32.or - (i32.and - (i32.shr_u - (get_local $5) - (i32.add - (get_local $3) - (i32.const 7) - ) + ) + (i32.or + (i32.and + (i32.shr_u + (get_local $5) + (i32.add + (get_local $3) + (i32.const 7) ) - (i32.const 1) ) - (get_local $7) + (i32.const 1) ) + (get_local $7) ) ) ) + (i32.const 0) ) - (i32.const 2) ) + (i32.const 2) ) ) - (i32.const 0) - ) - (block - (set_local $31 - (get_local $16) - ) - (set_local $32 - (i32.const 0) - ) - (set_local $28 - (i32.const 0) - ) - (set_local $11 - (i32.const 86) - ) ) (block (set_local $7 @@ -10927,13 +10753,12 @@ ) ) (set_local $7 - (i32.eq + (i32.eqz (tee_local $3 (i32.load offset=20 (get_local $23) ) ) - (i32.const 0) ) ) (set_local $15 @@ -10971,9 +10796,8 @@ (i32.xor (i32.and (tee_local $7 - (i32.eq + (i32.eqz (get_local $3) - (i32.const 0) ) ) (i32.const 1) @@ -11012,6 +10836,20 @@ ) ) ) + (block + (set_local $31 + (get_local $16) + ) + (set_local $32 + (i32.const 0) + ) + (set_local $28 + (i32.const 0) + ) + (set_local $11 + (i32.const 86) + ) + ) ) ) (if @@ -11020,121 +10858,102 @@ (i32.const 86) ) (if - (i32.eq - (tee_local $0 - (if - (i32.and - (i32.eq - (get_local $32) - (i32.const 0) - ) - (i32.eq - (get_local $28) - (i32.const 0) - ) + (tee_local $0 + (if + (i32.and + (i32.eqz + (get_local $32) ) - (block - (set_local $7 - (i32.sub - (i32.const 0) - (tee_local $3 - (i32.shl - (i32.const 2) - (get_local $12) - ) + (i32.eqz + (get_local $28) + ) + ) + (block + (set_local $7 + (i32.sub + (i32.const 0) + (tee_local $3 + (i32.shl + (i32.const 2) + (get_local $12) ) ) ) - (if - (i32.eq - (tee_local $0 - (i32.and - (get_local $0) - (i32.or - (get_local $3) - (get_local $7) - ) + ) + (if + (i32.eqz + (tee_local $0 + (i32.and + (get_local $0) + (i32.or + (get_local $3) + (get_local $7) ) ) - (i32.const 0) ) - (block - (set_local $6 - (get_local $5) - ) - (br $do-once$0) + ) + (block + (set_local $6 + (get_local $5) ) + (br $do-once$0) ) - (set_local $0 - (i32.and - (i32.shr_u - (tee_local $3 - (i32.add - (i32.and + ) + (set_local $0 + (i32.and + (i32.shr_u + (tee_local $3 + (i32.add + (i32.and + (get_local $0) + (i32.sub + (i32.const 0) (get_local $0) - (i32.sub - (i32.const 0) - (get_local $0) - ) ) - (i32.const -1) ) + (i32.const -1) ) - (i32.const 12) ) - (i32.const 16) + (i32.const 12) ) + (i32.const 16) ) - (i32.load offset=480 - (i32.shl - (i32.add + ) + (i32.load offset=480 + (i32.shl + (i32.add + (i32.or (i32.or (i32.or (i32.or - (i32.or - (tee_local $3 - (i32.and - (i32.shr_u - (tee_local $7 - (i32.shr_u - (get_local $3) - (get_local $0) - ) - ) - (i32.const 5) - ) - (i32.const 8) - ) - ) - (get_local $0) - ) - (tee_local $0 + (tee_local $3 (i32.and (i32.shr_u - (tee_local $3 + (tee_local $7 (i32.shr_u - (get_local $7) (get_local $3) + (get_local $0) ) ) - (i32.const 2) + (i32.const 5) ) - (i32.const 4) + (i32.const 8) ) ) + (get_local $0) ) (tee_local $0 (i32.and (i32.shr_u (tee_local $3 (i32.shr_u + (get_local $7) (get_local $3) - (get_local $0) ) ) - (i32.const 1) + (i32.const 2) ) - (i32.const 2) + (i32.const 4) ) ) ) @@ -11149,30 +10968,35 @@ ) (i32.const 1) ) - (i32.const 1) + (i32.const 2) ) ) ) - (i32.shr_u - (get_local $3) - (get_local $0) + (tee_local $0 + (i32.and + (i32.shr_u + (tee_local $3 + (i32.shr_u + (get_local $3) + (get_local $0) + ) + ) + (i32.const 1) + ) + (i32.const 1) + ) ) ) - (i32.const 2) + (i32.shr_u + (get_local $3) + (get_local $0) + ) ) + (i32.const 2) ) ) - (get_local $32) ) - ) - (i32.const 0) - ) - (block - (set_local $17 - (get_local $31) - ) - (set_local $13 - (get_local $28) + (get_local $32) ) ) (block @@ -11189,6 +11013,14 @@ (i32.const 90) ) ) + (block + (set_local $17 + (get_local $31) + ) + (set_local $13 + (get_local $28) + ) + ) ) ) (if @@ -11232,13 +11064,14 @@ ) ) (if - (i32.ne - (tee_local $0 - (i32.load offset=16 - (get_local $24) + (i32.eqz + (i32.eqz + (tee_local $0 + (i32.load offset=16 + (get_local $24) + ) ) ) - (i32.const 0) ) (block (set_local $26 @@ -11254,19 +11087,10 @@ ) ) (if - (i32.eq - (tee_local $0 - (i32.load offset=20 - (get_local $24) - ) - ) - (i32.const 0) - ) - (block - (set_local $13 - (get_local $3) + (tee_local $0 + (i32.load offset=20 + (get_local $24) ) - (br $while-out$19) ) (block (set_local $26 @@ -11279,19 +11103,19 @@ (get_local $3) ) ) + (block + (set_local $13 + (get_local $3) + ) + (br $while-out$19) + ) ) (br $while-in$20) ) ) ) (if - (i32.eq - (get_local $13) - (i32.const 0) - ) - (set_local $6 - (get_local $5) - ) + (get_local $13) (if (i32.lt_u (get_local $17) @@ -11343,32 +11167,32 @@ ) (block (if - (i32.eq + (tee_local $2 + (i32.load + (tee_local $9 + (i32.add + (get_local $13) + (i32.const 20) + ) + ) + ) + ) + (set_local $8 + (get_local $2) + ) + (if (tee_local $2 (i32.load (tee_local $9 (i32.add (get_local $13) - (i32.const 20) + (i32.const 16) ) ) ) ) - (i32.const 0) - ) - (if - (i32.eq - (tee_local $2 - (i32.load - (tee_local $9 - (i32.add - (get_local $13) - (i32.const 16) - ) - ) - ) - ) - (i32.const 0) + (set_local $8 + (get_local $2) ) (block (set_local $6 @@ -11376,29 +11200,24 @@ ) (br $do-once$21) ) - (set_local $8 - (get_local $2) - ) - ) - (set_local $8 - (get_local $2) ) ) (loop $while-in$24 (block $while-out$23 (if - (i32.ne - (tee_local $2 - (i32.load - (tee_local $7 - (i32.add - (get_local $8) - (i32.const 20) + (i32.eqz + (i32.eqz + (tee_local $2 + (i32.load + (tee_local $7 + (i32.add + (get_local $8) + (i32.const 20) + ) ) ) ) ) - (i32.const 0) ) (block (set_local $8 @@ -11411,20 +11230,16 @@ ) ) (if - (i32.eq - (tee_local $2 - (i32.load - (tee_local $7 - (i32.add - (get_local $8) - (i32.const 16) - ) + (tee_local $2 + (i32.load + (tee_local $7 + (i32.add + (get_local $8) + (i32.const 16) ) ) ) - (i32.const 0) ) - (br $while-out$23) (block (set_local $8 (get_local $2) @@ -11433,6 +11248,7 @@ (get_local $7) ) ) + (br $while-out$23) ) (br $while-in$24) ) @@ -11512,9 +11328,10 @@ ) (block $do-once$25 (if - (i32.ne - (get_local $1) - (i32.const 0) + (i32.eqz + (i32.eqz + (get_local $1) + ) ) (block (if @@ -11542,9 +11359,8 @@ (get_local $6) ) (if - (i32.eq + (i32.eqz (get_local $6) - (i32.const 0) ) (block (i32.store @@ -11598,9 +11414,8 @@ ) ) (br_if $do-once$25 - (i32.eq + (i32.eqz (get_local $6) - (i32.const 0) ) ) ) @@ -11621,13 +11436,14 @@ (get_local $1) ) (if - (i32.ne - (tee_local $1 - (i32.load offset=16 - (get_local $13) + (i32.eqz + (i32.eqz + (tee_local $1 + (i32.load offset=16 + (get_local $13) + ) ) ) - (i32.const 0) ) (if (i32.lt_u @@ -11648,13 +11464,14 @@ ) ) (if - (i32.ne - (tee_local $0 - (i32.load offset=20 - (get_local $13) + (i32.eqz + (i32.eqz + (tee_local $0 + (i32.load offset=20 + (get_local $13) + ) ) ) - (i32.const 0) ) (if (i32.lt_u @@ -11766,39 +11583,18 @@ ) ) (if - (i32.eq - (i32.and - (tee_local $0 - (i32.load - (i32.const 176) - ) - ) - (tee_local $1 - (i32.shl - (i32.const 1) - (get_local $1) - ) + (i32.and + (tee_local $0 + (i32.load + (i32.const 176) ) ) - (i32.const 0) - ) - (block - (i32.store - (i32.const 176) - (i32.or - (get_local $0) + (tee_local $1 + (i32.shl + (i32.const 1) (get_local $1) ) ) - (set_local $4 - (i32.add - (get_local $2) - (i32.const 8) - ) - ) - (set_local $10 - (get_local $2) - ) ) (if (i32.lt_u @@ -11826,6 +11622,24 @@ ) ) ) + (block + (i32.store + (i32.const 176) + (i32.or + (get_local $0) + (get_local $1) + ) + ) + (set_local $4 + (i32.add + (get_local $2) + (i32.const 8) + ) + ) + (set_local $10 + (get_local $2) + ) + ) ) (i32.store (get_local $4) @@ -11852,16 +11666,12 @@ (i32.shl (tee_local $1 (if - (i32.eq - (tee_local $0 - (i32.shr_u - (get_local $17) - (i32.const 8) - ) + (tee_local $0 + (i32.shr_u + (get_local $17) + (i32.const 8) ) - (i32.const 0) ) - (i32.const 0) (if (i32.gt_u (get_local $17) @@ -11953,6 +11763,7 @@ ) ) ) + (i32.const 0) ) ) (i32.const 2) @@ -11977,7 +11788,7 @@ (i32.const 0) ) (if - (i32.eq + (i32.eqz (i32.and (tee_local $0 (i32.load @@ -11991,7 +11802,6 @@ ) ) ) - (i32.const 0) ) (block (i32.store @@ -12073,27 +11883,32 @@ ) ) (if - (i32.eq - (tee_local $0 - (i32.load - (tee_local $1 + (tee_local $0 + (i32.load + (tee_local $1 + (i32.add (i32.add - (i32.add - (get_local $2) - (i32.const 16) - ) - (i32.shl - (i32.shr_u - (get_local $1) - (i32.const 31) - ) - (i32.const 2) + (get_local $2) + (i32.const 16) + ) + (i32.shl + (i32.shr_u + (get_local $1) + (i32.const 31) ) + (i32.const 2) ) ) ) ) - (i32.const 0) + ) + (block + (set_local $1 + (get_local $4) + ) + (set_local $2 + (get_local $0) + ) ) (block (set_local $25 @@ -12107,14 +11922,6 @@ ) (br $while-out$31) ) - (block - (set_local $1 - (get_local $4) - ) - (set_local $2 - (get_local $0) - ) - ) ) (br $while-in$32) ) @@ -12220,8 +12027,14 @@ (get_local $5) ) ) + (set_local $6 + (get_local $5) + ) ) ) + (set_local $6 + (get_local $5) + ) ) ) ) @@ -12389,27 +12202,24 @@ ) ) (if - (i32.eq + (i32.eqz (i32.load (i32.const 648) ) - (i32.const 0) ) (if - (i32.eq - (i32.and - (i32.add - (tee_local $0 - (call_import $_sysconf - (i32.const 30) - ) + (i32.and + (i32.add + (tee_local $0 + (call_import $_sysconf + (i32.const 30) ) - (i32.const -1) ) - (get_local $0) + (i32.const -1) ) - (i32.const 0) + (get_local $0) ) + (call_import $_abort) (block (i32.store (i32.const 656) @@ -12448,7 +12258,6 @@ ) ) ) - (call_import $_abort) ) ) (set_local $5 @@ -12491,13 +12300,14 @@ ) ) (if - (i32.ne - (tee_local $0 - (i32.load - (i32.const 616) + (i32.eqz + (i32.eqz + (tee_local $0 + (i32.load + (i32.const 616) + ) ) ) - (i32.const 0) ) (if (i32.or @@ -12529,28 +12339,20 @@ (tee_local $11 (block $label$break$L257 (if - (i32.eq - (i32.and - (i32.load - (i32.const 620) - ) - (i32.const 4) + (i32.and + (i32.load + (i32.const 620) ) - (i32.const 0) + (i32.const 4) ) + (i32.const 190) (block (block $label$break$L259 (if - (i32.eq - (tee_local $0 - (i32.load - (i32.const 200) - ) + (tee_local $0 + (i32.load + (i32.const 200) ) - (i32.const 0) - ) - (set_local $11 - (i32.const 173) ) (block (set_local $16 @@ -12594,13 +12396,13 @@ ) ) (if - (i32.eq - (tee_local $4 - (i32.load offset=8 - (get_local $16) - ) + (tee_local $4 + (i32.load offset=8 + (get_local $16) ) - (i32.const 0) + ) + (set_local $16 + (get_local $4) ) (block (set_local $11 @@ -12608,9 +12410,6 @@ ) (br $label$break$L259) ) - (set_local $16 - (get_local $4) - ) ) (br $while-in$38) ) @@ -12677,6 +12476,9 @@ ) ) ) + (set_local $11 + (i32.const 173) + ) ) ) (block $do-once$39 @@ -12704,25 +12506,21 @@ ) (tee_local $12 (if - (i32.eq - (i32.and - (tee_local $12 - (i32.add - (tee_local $4 - (i32.load - (i32.const 652) - ) + (i32.and + (tee_local $12 + (i32.add + (tee_local $4 + (i32.load + (i32.const 652) ) - (i32.const -1) ) - ) - (tee_local $0 - (get_local $7) + (i32.const -1) ) ) - (i32.const 0) + (tee_local $0 + (get_local $7) + ) ) - (get_local $10) (i32.add (i32.sub (get_local $10) @@ -12739,6 +12537,7 @@ ) ) ) + (get_local $10) ) ) ) @@ -12756,13 +12555,14 @@ ) (block (if - (i32.ne - (tee_local $0 - (i32.load - (i32.const 616) + (i32.eqz + (i32.eqz + (tee_local $0 + (i32.load + (i32.const 616) + ) ) ) - (i32.const 0) ) (br_if $do-once$39 (i32.or @@ -12920,7 +12720,6 @@ ) (i32.const 190) ) - (i32.const 190) ) ) ) @@ -13020,161 +12819,9 @@ ) (block $do-once$44 (if - (i32.eq - (tee_local $0 - (i32.load - (i32.const 200) - ) - ) - (i32.const 0) - ) - (block - (if - (i32.or - (i32.eq - (tee_local $0 - (i32.load - (i32.const 192) - ) - ) - (i32.const 0) - ) - (i32.lt_u - (get_local $14) - (get_local $0) - ) - ) - (i32.store - (i32.const 192) - (get_local $14) - ) - ) - (i32.store - (i32.const 624) - (get_local $14) - ) - (i32.store - (i32.const 628) - (get_local $19) - ) - (i32.store - (i32.const 636) - (i32.const 0) - ) - (i32.store - (i32.const 212) - (i32.load - (i32.const 648) - ) - ) - (i32.store - (i32.const 208) - (i32.const -1) - ) - (set_local $1 - (i32.const 0) - ) - (loop $while-in$47 - (block $while-out$46 - (i32.store offset=12 - (tee_local $0 - (i32.add - (i32.const 216) - (i32.shl - (i32.shl - (get_local $1) - (i32.const 1) - ) - (i32.const 2) - ) - ) - ) - (get_local $0) - ) - (i32.store offset=8 - (get_local $0) - (get_local $0) - ) - (br_if $while-out$46 - (i32.eq - (tee_local $1 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - (i32.const 32) - ) - ) - (br $while-in$47) - ) - ) - (set_local $1 - (i32.eq - (i32.and - (tee_local $0 - (i32.add - (get_local $14) - (i32.const 8) - ) - ) - (i32.const 7) - ) - (i32.const 0) - ) - ) - (i32.store + (tee_local $0 + (i32.load (i32.const 200) - (tee_local $0 - (i32.add - (get_local $14) - (tee_local $1 - (select - (i32.const 0) - (i32.and - (i32.sub - (i32.const 0) - (get_local $0) - ) - (i32.const 7) - ) - (get_local $1) - ) - ) - ) - ) - ) - (i32.store - (i32.const 188) - (tee_local $1 - (i32.sub - (i32.add - (get_local $19) - (i32.const -40) - ) - (get_local $1) - ) - ) - ) - (i32.store offset=4 - (get_local $0) - (i32.or - (get_local $1) - (i32.const 1) - ) - ) - (i32.store offset=4 - (i32.add - (get_local $0) - (get_local $1) - ) - (i32.const 40) - ) - (i32.store - (i32.const 204) - (i32.load - (i32.const 664) - ) ) ) (block @@ -13224,18 +12871,15 @@ ) ) (if - (i32.eq - (tee_local $4 - (i32.load offset=8 - (get_local $7) - ) + (tee_local $4 + (i32.load offset=8 + (get_local $7) ) - (i32.const 0) ) - (br $while-out$48) (set_local $7 (get_local $4) ) + (br $while-out$48) ) (br $while-in$49) ) @@ -13246,14 +12890,13 @@ (i32.const 203) ) (if - (i32.eq + (i32.eqz (i32.and (i32.load offset=12 (get_local $43) ) (i32.const 8) ) - (i32.const 0) ) (if (i32.and @@ -13275,7 +12918,7 @@ ) ) (set_local $2 - (i32.eq + (i32.eqz (i32.and (tee_local $1 (i32.add @@ -13285,7 +12928,6 @@ ) (i32.const 7) ) - (i32.const 0) ) ) (set_local $0 @@ -13402,13 +13044,12 @@ ) ) (if - (i32.eq + (i32.eqz (tee_local $1 (i32.load offset=8 (get_local $1) ) ) - (i32.const 0) ) (block (set_local $27 @@ -13426,14 +13067,14 @@ (i32.const 211) ) (if - (i32.eq - (i32.and - (i32.load offset=12 - (get_local $38) - ) - (i32.const 8) + (i32.and + (i32.load offset=12 + (get_local $38) ) - (i32.const 0) + (i32.const 8) + ) + (set_local $27 + (i32.const 624) ) (block (i32.store @@ -13458,7 +13099,7 @@ (get_local $1) ) (set_local $9 - (i32.eq + (i32.eqz (i32.and (tee_local $1 (i32.add @@ -13468,11 +13109,10 @@ ) (i32.const 7) ) - (i32.const 0) ) ) (set_local $5 - (i32.eq + (i32.eqz (i32.and (tee_local $2 (i32.add @@ -13482,7 +13122,6 @@ ) (i32.const 7) ) - (i32.const 0) ) ) (set_local $1 @@ -13788,38 +13427,29 @@ ) (block (if - (i32.eq - (tee_local $1 - (i32.load - (tee_local $9 - (i32.add - (tee_local $20 - (i32.add - (get_local $3) - (i32.const 16) - ) + (tee_local $1 + (i32.load + (tee_local $9 + (i32.add + (tee_local $20 + (i32.add + (get_local $3) + (i32.const 16) ) - (i32.const 4) ) + (i32.const 4) ) ) ) - (i32.const 0) + ) + (set_local $2 + (get_local $1) ) (if - (i32.eq - (tee_local $1 - (i32.load - (get_local $20) - ) - ) - (i32.const 0) - ) - (block - (set_local $18 - (i32.const 0) + (tee_local $1 + (i32.load + (get_local $20) ) - (br $do-once$59) ) (block (set_local $2 @@ -13829,26 +13459,30 @@ (get_local $20) ) ) - ) - (set_local $2 - (get_local $1) + (block + (set_local $18 + (i32.const 0) + ) + (br $do-once$59) + ) ) ) (loop $while-in$62 (block $while-out$61 (if - (i32.ne - (tee_local $1 - (i32.load - (tee_local $20 - (i32.add - (get_local $2) - (i32.const 20) + (i32.eqz + (i32.eqz + (tee_local $1 + (i32.load + (tee_local $20 + (i32.add + (get_local $2) + (i32.const 20) + ) ) ) ) ) - (i32.const 0) ) (block (set_local $2 @@ -13861,20 +13495,16 @@ ) ) (if - (i32.eq - (tee_local $1 - (i32.load - (tee_local $20 - (i32.add - (get_local $2) - (i32.const 16) - ) + (tee_local $1 + (i32.load + (tee_local $20 + (i32.add + (get_local $2) + (i32.const 16) ) ) ) - (i32.const 0) ) - (br $while-out$61) (block (set_local $2 (get_local $1) @@ -13883,6 +13513,7 @@ (get_local $20) ) ) + (br $while-out$61) ) (br $while-in$62) ) @@ -13961,9 +13592,8 @@ ) ) (br_if $label$break$L331 - (i32.eq + (i32.eqz (get_local $0) - (i32.const 0) ) ) (block $do-once$63 @@ -13992,9 +13622,10 @@ (get_local $18) ) (br_if $do-once$63 - (i32.ne - (get_local $18) - (i32.const 0) + (i32.eqz + (i32.eqz + (get_local $18) + ) ) ) (i32.store @@ -14046,9 +13677,8 @@ ) ) (br_if $label$break$L331 - (i32.eq + (i32.eqz (get_local $18) - (i32.const 0) ) ) ) @@ -14070,18 +13700,19 @@ (get_local $0) ) (if - (i32.ne - (tee_local $0 - (i32.load - (tee_local $2 - (i32.add - (get_local $3) - (i32.const 16) + (i32.eqz + (i32.eqz + (tee_local $0 + (i32.load + (tee_local $2 + (i32.add + (get_local $3) + (i32.const 16) + ) ) ) ) ) - (i32.const 0) ) (if (i32.lt_u @@ -14102,13 +13733,12 @@ ) ) (br_if $label$break$L331 - (i32.eq + (i32.eqz (tee_local $0 (i32.load offset=4 (get_local $2) ) ) - (i32.const 0) ) ) (if @@ -14202,39 +13832,18 @@ ) (block $do-once$67 (if - (i32.eq - (i32.and - (tee_local $0 - (i32.load - (i32.const 176) - ) - ) - (tee_local $1 - (i32.shl - (i32.const 1) - (get_local $1) - ) + (i32.and + (tee_local $0 + (i32.load + (i32.const 176) ) ) - (i32.const 0) - ) - (block - (i32.store - (i32.const 176) - (i32.or - (get_local $0) + (tee_local $1 + (i32.shl + (i32.const 1) (get_local $1) ) ) - (set_local $8 - (i32.add - (get_local $2) - (i32.const 8) - ) - ) - (set_local $33 - (get_local $2) - ) ) (block (if @@ -14265,6 +13874,24 @@ ) (call_import $_abort) ) + (block + (i32.store + (i32.const 176) + (i32.or + (get_local $0) + (get_local $1) + ) + ) + (set_local $8 + (i32.add + (get_local $2) + (i32.const 8) + ) + ) + (set_local $33 + (get_local $2) + ) + ) ) ) (i32.store @@ -14293,16 +13920,12 @@ (tee_local $1 (block $do-once$69 (if - (i32.eq - (tee_local $0 - (i32.shr_u - (get_local $4) - (i32.const 8) - ) + (tee_local $0 + (i32.shr_u + (get_local $4) + (i32.const 8) ) - (i32.const 0) ) - (i32.const 0) (block (br_if $do-once$69 (i32.const 31) @@ -14394,6 +14017,7 @@ (get_local $1) ) ) + (i32.const 0) ) ) ) @@ -14419,7 +14043,7 @@ (i32.const 0) ) (if - (i32.eq + (i32.eqz (i32.and (tee_local $0 (i32.load @@ -14433,7 +14057,6 @@ ) ) ) - (i32.const 0) ) (block (i32.store @@ -14515,27 +14138,32 @@ ) ) (if - (i32.eq - (tee_local $0 - (i32.load - (tee_local $1 + (tee_local $0 + (i32.load + (tee_local $1 + (i32.add (i32.add - (i32.add - (get_local $2) - (i32.const 16) - ) - (i32.shl - (i32.shr_u - (get_local $1) - (i32.const 31) - ) - (i32.const 2) + (get_local $2) + (i32.const 16) + ) + (i32.shl + (i32.shr_u + (get_local $1) + (i32.const 31) ) + (i32.const 2) ) ) ) ) - (i32.const 0) + ) + (block + (set_local $1 + (get_local $8) + ) + (set_local $2 + (get_local $0) + ) ) (block (set_local $45 @@ -14549,14 +14177,6 @@ ) (br $while-out$71) ) - (block - (set_local $1 - (get_local $8) - ) - (set_local $2 - (get_local $0) - ) - ) ) (br $while-in$72) ) @@ -14658,9 +14278,6 @@ ) ) ) - (set_local $27 - (i32.const 624) - ) ) ) (loop $while-in$74 @@ -14703,7 +14320,7 @@ ) ) (set_local $8 - (i32.eq + (i32.eqz (i32.and (tee_local $1 (i32.add @@ -14718,7 +14335,6 @@ ) (i32.const 7) ) - (i32.const 0) ) ) (set_local $4 @@ -14760,7 +14376,7 @@ ) ) (set_local $3 - (i32.eq + (i32.eqz (i32.and (tee_local $1 (i32.add @@ -14770,7 +14386,6 @@ ) (i32.const 7) ) - (i32.const 0) ) ) (i32.store @@ -14960,39 +14575,18 @@ ) ) (if - (i32.eq - (i32.and - (tee_local $1 - (i32.load - (i32.const 176) - ) - ) - (tee_local $2 - (i32.shl - (i32.const 1) - (get_local $2) - ) + (i32.and + (tee_local $1 + (i32.load + (i32.const 176) ) ) - (i32.const 0) - ) - (block - (i32.store - (i32.const 176) - (i32.or - (get_local $1) + (tee_local $2 + (i32.shl + (i32.const 1) (get_local $2) ) ) - (set_local $9 - (i32.add - (get_local $4) - (i32.const 8) - ) - ) - (set_local $20 - (get_local $4) - ) ) (if (i32.lt_u @@ -15020,6 +14614,24 @@ ) ) ) + (block + (i32.store + (i32.const 176) + (i32.or + (get_local $1) + (get_local $2) + ) + ) + (set_local $9 + (i32.add + (get_local $4) + (i32.const 8) + ) + ) + (set_local $20 + (get_local $4) + ) + ) ) (i32.store (get_local $9) @@ -15046,16 +14658,12 @@ (i32.shl (tee_local $2 (if - (i32.eq - (tee_local $1 - (i32.shr_u - (get_local $3) - (i32.const 8) - ) + (tee_local $1 + (i32.shr_u + (get_local $3) + (i32.const 8) ) - (i32.const 0) ) - (i32.const 0) (if (i32.gt_u (get_local $3) @@ -15147,6 +14755,7 @@ ) ) ) + (i32.const 0) ) ) (i32.const 2) @@ -15166,7 +14775,7 @@ (i32.const 0) ) (if - (i32.eq + (i32.eqz (i32.and (tee_local $1 (i32.load @@ -15180,7 +14789,6 @@ ) ) ) - (i32.const 0) ) (block (i32.store @@ -15262,27 +14870,32 @@ ) ) (if - (i32.eq - (tee_local $1 - (i32.load - (tee_local $2 + (tee_local $1 + (i32.load + (tee_local $2 + (i32.add (i32.add - (i32.add - (get_local $4) - (i32.const 16) - ) - (i32.shl - (i32.shr_u - (get_local $2) - (i32.const 31) - ) - (i32.const 2) + (get_local $4) + (i32.const 16) + ) + (i32.shl + (i32.shr_u + (get_local $2) + (i32.const 31) ) + (i32.const 2) ) ) ) ) - (i32.const 0) + ) + (block + (set_local $2 + (get_local $8) + ) + (set_local $4 + (get_local $1) + ) ) (block (set_local $46 @@ -15296,14 +14909,6 @@ ) (br $while-out$77) ) - (block - (set_local $2 - (get_local $8) - ) - (set_local $4 - (get_local $1) - ) - ) ) (br $while-in$78) ) @@ -15398,6 +15003,153 @@ ) ) ) + (block + (if + (i32.or + (i32.eqz + (tee_local $0 + (i32.load + (i32.const 192) + ) + ) + ) + (i32.lt_u + (get_local $14) + (get_local $0) + ) + ) + (i32.store + (i32.const 192) + (get_local $14) + ) + ) + (i32.store + (i32.const 624) + (get_local $14) + ) + (i32.store + (i32.const 628) + (get_local $19) + ) + (i32.store + (i32.const 636) + (i32.const 0) + ) + (i32.store + (i32.const 212) + (i32.load + (i32.const 648) + ) + ) + (i32.store + (i32.const 208) + (i32.const -1) + ) + (set_local $1 + (i32.const 0) + ) + (loop $while-in$47 + (block $while-out$46 + (i32.store offset=12 + (tee_local $0 + (i32.add + (i32.const 216) + (i32.shl + (i32.shl + (get_local $1) + (i32.const 1) + ) + (i32.const 2) + ) + ) + ) + (get_local $0) + ) + (i32.store offset=8 + (get_local $0) + (get_local $0) + ) + (br_if $while-out$46 + (i32.eq + (tee_local $1 + (i32.add + (get_local $1) + (i32.const 1) + ) + ) + (i32.const 32) + ) + ) + (br $while-in$47) + ) + ) + (set_local $1 + (i32.eqz + (i32.and + (tee_local $0 + (i32.add + (get_local $14) + (i32.const 8) + ) + ) + (i32.const 7) + ) + ) + ) + (i32.store + (i32.const 200) + (tee_local $0 + (i32.add + (get_local $14) + (tee_local $1 + (select + (i32.const 0) + (i32.and + (i32.sub + (i32.const 0) + (get_local $0) + ) + (i32.const 7) + ) + (get_local $1) + ) + ) + ) + ) + ) + (i32.store + (i32.const 188) + (tee_local $1 + (i32.sub + (i32.add + (get_local $19) + (i32.const -40) + ) + (get_local $1) + ) + ) + ) + (i32.store offset=4 + (get_local $0) + (i32.or + (get_local $1) + (i32.const 1) + ) + ) + (i32.store offset=4 + (i32.add + (get_local $0) + (get_local $1) + ) + (i32.const 40) + ) + (i32.store + (i32.const 204) + (i32.load + (i32.const 664) + ) + ) + ) ) ) (if @@ -15482,9 +15234,8 @@ (local $17 i32) (local $18 i32) (if - (i32.eq + (i32.eqz (get_local $0) - (i32.const 0) ) (return) ) @@ -15536,12 +15287,17 @@ ) (block $do-once$0 (if - (i32.eq - (i32.and - (get_local $0) - (i32.const 1) + (i32.and + (get_local $0) + (i32.const 1) + ) + (block + (set_local $3 + (get_local $2) + ) + (set_local $10 + (get_local $7) ) - (i32.const 0) ) (block (set_local $0 @@ -15550,9 +15306,8 @@ ) ) (if - (i32.eq + (i32.eqz (get_local $8) - (i32.const 0) ) (return) ) @@ -15798,38 +15553,29 @@ ) (block (if - (i32.eq - (tee_local $0 - (i32.load - (tee_local $7 - (i32.add - (tee_local $13 - (i32.add - (get_local $4) - (i32.const 16) - ) + (tee_local $0 + (i32.load + (tee_local $7 + (i32.add + (tee_local $13 + (i32.add + (get_local $4) + (i32.const 16) ) - (i32.const 4) ) + (i32.const 4) ) ) ) - (i32.const 0) + ) + (set_local $2 + (get_local $0) ) (if - (i32.eq - (tee_local $0 - (i32.load - (get_local $13) - ) - ) - (i32.const 0) - ) - (block - (set_local $5 - (i32.const 0) + (tee_local $0 + (i32.load + (get_local $13) ) - (br $do-once$2) ) (block (set_local $2 @@ -15839,26 +15585,30 @@ (get_local $13) ) ) - ) - (set_local $2 - (get_local $0) + (block + (set_local $5 + (i32.const 0) + ) + (br $do-once$2) + ) ) ) (loop $while-in$5 (block $while-out$4 (if - (i32.ne - (tee_local $0 - (i32.load - (tee_local $13 - (i32.add - (get_local $2) - (i32.const 20) + (i32.eqz + (i32.eqz + (tee_local $0 + (i32.load + (tee_local $13 + (i32.add + (get_local $2) + (i32.const 20) + ) ) ) ) ) - (i32.const 0) ) (block (set_local $2 @@ -15871,20 +15621,16 @@ ) ) (if - (i32.eq - (tee_local $0 - (i32.load - (tee_local $13 - (i32.add - (get_local $2) - (i32.const 16) - ) + (tee_local $0 + (i32.load + (tee_local $13 + (i32.add + (get_local $2) + (i32.const 16) ) ) ) - (i32.const 0) ) - (br $while-out$4) (block (set_local $2 (get_local $0) @@ -15893,6 +15639,7 @@ (get_local $13) ) ) + (br $while-out$4) ) (br $while-in$5) ) @@ -15971,18 +15718,7 @@ ) ) (if - (i32.eq - (get_local $8) - (i32.const 0) - ) - (block - (set_local $3 - (get_local $4) - ) - (set_local $10 - (get_local $12) - ) - ) + (get_local $8) (block (if (i32.eq @@ -16009,9 +15745,8 @@ (get_local $5) ) (if - (i32.eq + (i32.eqz (get_local $5) - (i32.const 0) ) (block (i32.store @@ -16071,9 +15806,8 @@ ) ) (if - (i32.eq + (i32.eqz (get_local $5) - (i32.const 0) ) (block (set_local $3 @@ -16103,18 +15837,19 @@ (get_local $8) ) (if - (i32.ne - (tee_local $1 - (i32.load - (tee_local $2 - (i32.add - (get_local $4) - (i32.const 16) + (i32.eqz + (i32.eqz + (tee_local $1 + (i32.load + (tee_local $2 + (i32.add + (get_local $4) + (i32.const 16) + ) ) ) ) ) - (i32.const 0) ) (if (i32.lt_u @@ -16135,20 +15870,9 @@ ) ) (if - (i32.eq - (tee_local $0 - (i32.load offset=4 - (get_local $2) - ) - ) - (i32.const 0) - ) - (block - (set_local $3 - (get_local $4) - ) - (set_local $10 - (get_local $12) + (tee_local $0 + (i32.load offset=4 + (get_local $2) ) ) (if @@ -16176,16 +15900,24 @@ ) ) ) + (block + (set_local $3 + (get_local $4) + ) + (set_local $10 + (get_local $12) + ) + ) + ) + ) + (block + (set_local $3 + (get_local $4) + ) + (set_local $10 + (get_local $12) ) ) - ) - ) - (block - (set_local $3 - (get_local $2) - ) - (set_local $10 - (get_local $7) ) ) ) @@ -16198,7 +15930,7 @@ (call_import $_abort) ) (if - (i32.eq + (i32.eqz (i32.and (tee_local $0 (i32.load @@ -16212,17 +15944,39 @@ ) (i32.const 1) ) - (i32.const 0) ) (call_import $_abort) ) (if - (i32.eq - (i32.and - (get_local $0) - (i32.const 2) + (i32.and + (get_local $0) + (i32.const 2) + ) + (block + (i32.store + (get_local $1) + (i32.and + (get_local $0) + (i32.const -2) + ) + ) + (i32.store offset=4 + (get_local $3) + (i32.or + (get_local $10) + (i32.const 1) + ) + ) + (i32.store + (i32.add + (get_local $3) + (get_local $10) + ) + (get_local $10) + ) + (set_local $5 + (get_local $10) ) - (i32.const 0) ) (block (if @@ -16474,38 +16228,29 @@ ) (block (if - (i32.eq - (tee_local $1 - (i32.load - (tee_local $8 - (i32.add - (tee_local $7 - (i32.add - (get_local $9) - (i32.const 16) - ) + (tee_local $1 + (i32.load + (tee_local $8 + (i32.add + (tee_local $7 + (i32.add + (get_local $9) + (i32.const 16) ) - (i32.const 4) ) + (i32.const 4) ) ) ) - (i32.const 0) + ) + (set_local $2 + (get_local $1) ) (if - (i32.eq - (tee_local $1 - (i32.load - (get_local $7) - ) - ) - (i32.const 0) - ) - (block - (set_local $11 - (i32.const 0) + (tee_local $1 + (i32.load + (get_local $7) ) - (br $do-once$10) ) (block (set_local $2 @@ -16515,26 +16260,30 @@ (get_local $7) ) ) - ) - (set_local $2 - (get_local $1) + (block + (set_local $11 + (i32.const 0) + ) + (br $do-once$10) + ) ) ) (loop $while-in$13 (block $while-out$12 (if - (i32.ne - (tee_local $1 - (i32.load - (tee_local $7 - (i32.add - (get_local $2) - (i32.const 20) + (i32.eqz + (i32.eqz + (tee_local $1 + (i32.load + (tee_local $7 + (i32.add + (get_local $2) + (i32.const 20) + ) ) ) ) ) - (i32.const 0) ) (block (set_local $2 @@ -16547,20 +16296,16 @@ ) ) (if - (i32.eq - (tee_local $1 - (i32.load - (tee_local $7 - (i32.add - (get_local $2) - (i32.const 16) - ) + (tee_local $1 + (i32.load + (tee_local $7 + (i32.add + (get_local $2) + (i32.const 16) ) ) ) - (i32.const 0) ) - (br $while-out$12) (block (set_local $2 (get_local $1) @@ -16569,6 +16314,7 @@ (get_local $7) ) ) + (br $while-out$12) ) (br $while-in$13) ) @@ -16651,9 +16397,10 @@ ) ) (if - (i32.ne - (get_local $0) - (i32.const 0) + (i32.eqz + (i32.eqz + (get_local $0) + ) ) (block (if @@ -16681,9 +16428,8 @@ (get_local $11) ) (if - (i32.eq + (i32.eqz (get_local $11) - (i32.const 0) ) (block (i32.store @@ -16737,9 +16483,8 @@ ) ) (br_if $do-once$8 - (i32.eq + (i32.eqz (get_local $11) - (i32.const 0) ) ) ) @@ -16760,18 +16505,19 @@ (get_local $0) ) (if - (i32.ne - (tee_local $0 - (i32.load - (tee_local $2 - (i32.add - (get_local $9) - (i32.const 16) + (i32.eqz + (i32.eqz + (tee_local $0 + (i32.load + (tee_local $2 + (i32.add + (get_local $9) + (i32.const 16) + ) ) ) ) ) - (i32.const 0) ) (if (i32.lt_u @@ -16792,13 +16538,14 @@ ) ) (if - (i32.ne - (tee_local $0 - (i32.load offset=4 - (get_local $2) + (i32.eqz + (i32.eqz + (tee_local $0 + (i32.load offset=4 + (get_local $2) + ) ) ) - (i32.const 0) ) (if (i32.lt_u @@ -16855,32 +16602,6 @@ ) ) ) - (block - (i32.store - (get_local $1) - (i32.and - (get_local $0) - (i32.const -2) - ) - ) - (i32.store offset=4 - (get_local $3) - (i32.or - (get_local $10) - (i32.const 1) - ) - ) - (i32.store - (i32.add - (get_local $3) - (get_local $10) - ) - (get_local $10) - ) - (set_local $5 - (get_local $10) - ) - ) ) (set_local $1 (i32.shr_u @@ -16907,39 +16628,18 @@ ) ) (if - (i32.eq - (i32.and - (tee_local $0 - (i32.load - (i32.const 176) - ) - ) - (tee_local $1 - (i32.shl - (i32.const 1) - (get_local $1) - ) + (i32.and + (tee_local $0 + (i32.load + (i32.const 176) ) ) - (i32.const 0) - ) - (block - (i32.store - (i32.const 176) - (i32.or - (get_local $0) + (tee_local $1 + (i32.shl + (i32.const 1) (get_local $1) ) ) - (set_local $6 - (i32.add - (get_local $2) - (i32.const 8) - ) - ) - (set_local $14 - (get_local $2) - ) ) (if (i32.lt_u @@ -16967,6 +16667,24 @@ ) ) ) + (block + (i32.store + (i32.const 176) + (i32.or + (get_local $0) + (get_local $1) + ) + ) + (set_local $6 + (i32.add + (get_local $2) + (i32.const 8) + ) + ) + (set_local $14 + (get_local $2) + ) + ) ) (i32.store (get_local $6) @@ -16993,16 +16711,12 @@ (i32.shl (tee_local $6 (if - (i32.eq - (tee_local $0 - (i32.shr_u - (get_local $5) - (i32.const 8) - ) + (tee_local $0 + (i32.shr_u + (get_local $5) + (i32.const 8) ) - (i32.const 0) ) - (i32.const 0) (if (i32.gt_u (get_local $5) @@ -17094,6 +16808,7 @@ ) ) ) + (i32.const 0) ) ) (i32.const 2) @@ -17113,46 +16828,18 @@ (i32.const 0) ) (if - (i32.eq - (i32.and - (tee_local $0 - (i32.load - (i32.const 180) - ) - ) - (tee_local $2 - (i32.shl - (i32.const 1) - (get_local $6) - ) + (i32.and + (tee_local $0 + (i32.load + (i32.const 180) ) ) - (i32.const 0) - ) - (block - (i32.store - (i32.const 180) - (i32.or - (get_local $0) - (get_local $2) + (tee_local $2 + (i32.shl + (i32.const 1) + (get_local $6) ) ) - (i32.store - (get_local $1) - (get_local $3) - ) - (i32.store offset=24 - (get_local $3) - (get_local $1) - ) - (i32.store offset=12 - (get_local $3) - (get_local $3) - ) - (i32.store offset=8 - (get_local $3) - (get_local $3) - ) ) (block (set_local $6 @@ -17208,27 +16895,32 @@ ) ) (if - (i32.eq - (tee_local $0 - (i32.load - (tee_local $6 + (tee_local $0 + (i32.load + (tee_local $6 + (i32.add (i32.add - (i32.add - (get_local $1) - (i32.const 16) - ) - (i32.shl - (i32.shr_u - (get_local $6) - (i32.const 31) - ) - (i32.const 2) + (get_local $1) + (i32.const 16) + ) + (i32.shl + (i32.shr_u + (get_local $6) + (i32.const 31) ) + (i32.const 2) ) ) ) ) - (i32.const 0) + ) + (block + (set_local $6 + (get_local $2) + ) + (set_local $1 + (get_local $0) + ) ) (block (set_local $18 @@ -17242,14 +16934,6 @@ ) (br $while-out$18) ) - (block - (set_local $6 - (get_local $2) - ) - (set_local $1 - (get_local $0) - ) - ) ) (br $while-in$19) ) @@ -17342,6 +17026,31 @@ ) ) ) + (block + (i32.store + (i32.const 180) + (i32.or + (get_local $0) + (get_local $2) + ) + ) + (i32.store + (get_local $1) + (get_local $3) + ) + (i32.store offset=24 + (get_local $3) + (get_local $1) + ) + (i32.store offset=12 + (get_local $3) + (get_local $3) + ) + (i32.store offset=8 + (get_local $3) + (get_local $3) + ) + ) ) (i32.store (i32.const 208) @@ -17355,25 +17064,21 @@ ) ) (if - (i32.eq - (get_local $0) - (i32.const 0) - ) + (get_local $0) + (return) (set_local $6 (i32.const 632) ) - (return) ) (loop $while-in$21 (block $while-out$20 (set_local $0 - (i32.eq + (i32.eqz (tee_local $6 (i32.load (get_local $6) ) ) - (i32.const 0) ) ) (set_local $6 @@ -17719,9 +17424,8 @@ ) ) (if - (i32.eq + (i32.eqz (get_local $2) - (i32.const 0) ) (return (get_local $3) @@ -18378,13 +18082,12 @@ ) ) (if - (i32.eq + (i32.eqz (tee_local $6 (tee_local $9 (get_local $1) ) ) - (i32.const 0) ) (block (set_local $2 @@ -18394,37 +18097,7 @@ ) ) (if - (i32.eq - (get_local $7) - (i32.const 0) - ) - (block - (if - (get_local $2) - (block - (i32.store - (get_local $4) - (i32.rem_u - (get_local $8) - (get_local $5) - ) - ) - (i32.store offset=4 - (get_local $4) - (i32.const 0) - ) - ) - ) - (set_global $tempRet0 - (i32.const 0) - ) - (return - (i32.div_u - (get_local $8) - (get_local $5) - ) - ) - ) + (get_local $7) (block (if (i32.eqz @@ -18460,248 +18133,44 @@ (i32.const 0) ) ) - ) - ) - ) - (set_local $10 - (i32.eq - (get_local $7) - (i32.const 0) - ) - ) - (block $do-once$0 - (if - (i32.eq - (get_local $5) - (i32.const 0) - ) - (block - (if - (get_local $10) - (block - (if - (i32.ne - (get_local $4) - (i32.const 0) - ) - (block - (i32.store - (get_local $4) - (i32.rem_u - (get_local $6) - (get_local $5) - ) - ) - (i32.store offset=4 - (get_local $4) - (i32.const 0) - ) - ) - ) - (set_global $tempRet0 - (i32.const 0) - ) - (return - (i32.div_u - (get_local $6) - (get_local $5) - ) - ) - ) - ) - (if - (i32.eq - (get_local $8) - (i32.const 0) - ) - (block - (if - (i32.ne + (block + (if + (get_local $2) + (block + (i32.store (get_local $4) - (i32.const 0) - ) - (block - (i32.store - (get_local $4) - (i32.const 0) - ) - (i32.store offset=4 - (get_local $4) - (i32.rem_u - (get_local $6) - (get_local $7) - ) - ) - ) - ) - (set_global $tempRet0 - (i32.const 0) - ) - (return - (i32.div_u - (get_local $6) - (get_local $7) - ) - ) - ) - ) - (if - (i32.eq - (i32.and - (tee_local $5 - (i32.sub - (get_local $7) - (i32.const 1) + (i32.rem_u + (get_local $8) + (get_local $5) ) ) - (get_local $7) - ) - (i32.const 0) - ) - (block - (if - (i32.ne + (i32.store offset=4 (get_local $4) (i32.const 0) ) - (block - (i32.store - (get_local $4) - (i32.or - (i32.const 0) - (i32.and - (get_local $0) - (i32.const -1) - ) - ) - ) - (i32.store offset=4 - (get_local $4) - (i32.or - (i32.and - (get_local $5) - (get_local $6) - ) - (i32.and - (get_local $1) - (i32.const 0) - ) - ) - ) - ) - ) - (set_global $tempRet0 - (i32.const 0) - ) - (return - (i32.shr_u - (get_local $6) - (i32.ctz - (get_local $7) - ) - ) ) ) - ) - (if - (i32.le_u - (tee_local $5 - (i32.sub - (i32.clz - (get_local $7) - ) - (i32.clz - (get_local $6) - ) - ) - ) - (i32.const 30) - ) - (block - (set_local $12 - (tee_local $0 - (i32.add - (get_local $5) - (i32.const 1) - ) - ) - ) - (set_local $11 - (i32.or - (i32.shl - (get_local $6) - (tee_local $1 - (i32.sub - (i32.const 31) - (get_local $5) - ) - ) - ) - (i32.shr_u - (get_local $8) - (get_local $0) - ) - ) - ) - (set_local $13 - (i32.shr_u - (get_local $6) - (get_local $0) - ) - ) - (set_local $10 - (i32.const 0) - ) - (set_local $0 - (i32.shl - (get_local $8) - (get_local $1) - ) - ) - (br $do-once$0) - ) - ) - (if - (i32.eq - (get_local $4) - (i32.const 0) - ) - (block - (set_global $tempRet0 - (i32.const 0) - ) - (return - (i32.const 0) - ) - ) - ) - (i32.store - (get_local $4) - (i32.or + (set_global $tempRet0 (i32.const 0) - (i32.and - (get_local $0) - (i32.const -1) - ) ) - ) - (i32.store offset=4 - (get_local $4) - (i32.or - (get_local $9) - (i32.and - (get_local $1) - (i32.const 0) + (return + (i32.div_u + (get_local $8) + (get_local $5) ) ) ) - (set_global $tempRet0 - (i32.const 0) - ) - (return - (i32.const 0) - ) ) + ) + ) + (set_local $10 + (i32.eqz + (get_local $7) + ) + ) + (block $do-once$0 + (if + (get_local $5) (block (if (i32.eqz @@ -18781,9 +18250,8 @@ ) ) (if - (i32.eq + (i32.eqz (get_local $4) - (i32.const 0) ) (block (set_global $tempRet0 @@ -19036,23 +18504,235 @@ ) ) ) - ) - ) - (set_local $0 - (if - (i32.eq - (get_local $12) - (i32.const 0) - ) (block - (set_local $6 - (get_local $0) + (if + (get_local $10) + (block + (if + (i32.ne + (get_local $4) + (i32.const 0) + ) + (block + (i32.store + (get_local $4) + (i32.rem_u + (get_local $6) + (get_local $5) + ) + ) + (i32.store offset=4 + (get_local $4) + (i32.const 0) + ) + ) + ) + (set_global $tempRet0 + (i32.const 0) + ) + (return + (i32.div_u + (get_local $6) + (get_local $5) + ) + ) + ) ) - (set_local $1 + (if + (i32.eqz + (get_local $8) + ) + (block + (if + (i32.ne + (get_local $4) + (i32.const 0) + ) + (block + (i32.store + (get_local $4) + (i32.const 0) + ) + (i32.store offset=4 + (get_local $4) + (i32.rem_u + (get_local $6) + (get_local $7) + ) + ) + ) + ) + (set_global $tempRet0 + (i32.const 0) + ) + (return + (i32.div_u + (get_local $6) + (get_local $7) + ) + ) + ) + ) + (if + (i32.eqz + (i32.and + (tee_local $5 + (i32.sub + (get_local $7) + (i32.const 1) + ) + ) + (get_local $7) + ) + ) + (block + (if + (i32.ne + (get_local $4) + (i32.const 0) + ) + (block + (i32.store + (get_local $4) + (i32.or + (i32.const 0) + (i32.and + (get_local $0) + (i32.const -1) + ) + ) + ) + (i32.store offset=4 + (get_local $4) + (i32.or + (i32.and + (get_local $5) + (get_local $6) + ) + (i32.and + (get_local $1) + (i32.const 0) + ) + ) + ) + ) + ) + (set_global $tempRet0 + (i32.const 0) + ) + (return + (i32.shr_u + (get_local $6) + (i32.ctz + (get_local $7) + ) + ) + ) + ) + ) + (if + (i32.le_u + (tee_local $5 + (i32.sub + (i32.clz + (get_local $7) + ) + (i32.clz + (get_local $6) + ) + ) + ) + (i32.const 30) + ) + (block + (set_local $12 + (tee_local $0 + (i32.add + (get_local $5) + (i32.const 1) + ) + ) + ) + (set_local $11 + (i32.or + (i32.shl + (get_local $6) + (tee_local $1 + (i32.sub + (i32.const 31) + (get_local $5) + ) + ) + ) + (i32.shr_u + (get_local $8) + (get_local $0) + ) + ) + ) + (set_local $13 + (i32.shr_u + (get_local $6) + (get_local $0) + ) + ) + (set_local $10 + (i32.const 0) + ) + (set_local $0 + (i32.shl + (get_local $8) + (get_local $1) + ) + ) + (br $do-once$0) + ) + ) + (if + (i32.eqz + (get_local $4) + ) + (block + (set_global $tempRet0 + (i32.const 0) + ) + (return + (i32.const 0) + ) + ) + ) + (i32.store + (get_local $4) + (i32.or + (i32.const 0) + (i32.and + (get_local $0) + (i32.const -1) + ) + ) + ) + (i32.store offset=4 + (get_local $4) + (i32.or + (get_local $9) + (i32.and + (get_local $1) + (i32.const 0) + ) + ) + ) + (set_global $tempRet0 + (i32.const 0) + ) + (return (i32.const 0) ) - (i32.const 0) ) + ) + ) + (set_local $0 + (if + (get_local $12) (block (set_local $3 (call $_i64Add @@ -19210,16 +18890,12 @@ (get_global $tempRet0) ) (if - (i32.eq - (tee_local $12 - (i32.sub - (get_local $12) - (i32.const 1) - ) + (tee_local $12 + (i32.sub + (get_local $12) + (i32.const 1) ) - (i32.const 0) ) - (br $while-out$2) (block (set_local $9 (get_local $6) @@ -19228,6 +18904,7 @@ (get_local $7) ) ) + (br $while-out$2) ) (br $while-in$3) ) @@ -19237,6 +18914,15 @@ ) (get_local $7) ) + (block + (set_local $6 + (get_local $0) + ) + (set_local $1 + (i32.const 0) + ) + (i32.const 0) + ) ) ) (set_local $3 diff --git a/test/example/relooper-fuzz.txt b/test/example/relooper-fuzz.txt index 151360306..b46932009 100644 --- a/test/example/relooper-fuzz.txt +++ b/test/example/relooper-fuzz.txt @@ -449,15 +449,9 @@ (i32.const 0) ) (if - (i32.eq - (i32.rem_u - (call $check) - (i32.const 2) - ) - (i32.const 0) - ) - (set_local $0 - (i32.const 6) + (i32.rem_u + (call $check) + (i32.const 2) ) (block (call_import $print @@ -467,6 +461,9 @@ (call $check) ) ) + (set_local $0 + (i32.const 6) + ) ) (loop $shape$3$continue (if @@ -482,20 +479,17 @@ (i32.const 5) ) (if - (i32.eq - (i32.rem_u - (call $check) - (i32.const 2) - ) - (i32.const 0) + (i32.rem_u + (call $check) + (i32.const 2) ) - (br $shape$3$continue) (block (set_local $0 (i32.const 6) ) (br $shape$3$continue) ) + (br $shape$3$continue) ) ) ) @@ -503,16 +497,12 @@ (i32.const 4) ) (if - (i32.eq - (i32.rem_u - (tee_local $1 - (call $check) - ) - (i32.const 3) + (i32.rem_u + (tee_local $1 + (call $check) ) - (i32.const 0) + (i32.const 3) ) - (br $shape$3$continue) (if (i32.eq (i32.rem_u @@ -528,6 +518,7 @@ (br $shape$3$continue) ) ) + (br $shape$3$continue) ) (call_import $print (i32.const 2) diff --git a/test/example/relooper-fuzz1.txt b/test/example/relooper-fuzz1.txt index be8130228..b4ad8b5a1 100644 --- a/test/example/relooper-fuzz1.txt +++ b/test/example/relooper-fuzz1.txt @@ -438,14 +438,11 @@ (i32.const 0) ) (if - (i32.ne - (i32.rem_u - (tee_local $0 - (call $check) - ) - (i32.const 4) + (i32.rem_u + (tee_local $0 + (call $check) ) - (i32.const 0) + (i32.const 4) ) (if (i32.eq @@ -460,12 +457,9 @@ (i32.const 7) ) (br_if $block$10$break - (i32.ne - (i32.rem_u - (call $check) - (i32.const 3) - ) - (i32.const 0) + (i32.rem_u + (call $check) + (i32.const 3) ) ) ) @@ -476,12 +470,9 @@ (i32.const 2) ) (br_if $block$10$break - (i32.ne - (i32.rem_u - (call $check) - (i32.const 2) - ) - (i32.const 0) + (i32.rem_u + (call $check) + (i32.const 2) ) ) ) diff --git a/test/memorygrowth.fromasm b/test/memorygrowth.fromasm index c0cce359a..34a7d1898 100644 --- a/test/memorygrowth.fromasm +++ b/test/memorygrowth.fromasm @@ -1675,9 +1675,8 @@ ) ) (i32.or - (i32.eq + (i32.eqz (get_local $29) - (i32.const 0) ) (i32.eq (get_local $29) @@ -1704,9 +1703,8 @@ ) (if (tee_local $29 - (i32.eq + (i32.eqz (get_local $19) - (i32.const 0) ) ) (block @@ -1777,13 +1775,11 @@ (tee_local $0 (if (i32.and - (i32.eq + (i32.eqz (get_local $12) - (i32.const 0) ) - (i32.eq + (i32.eqz (get_local $38) - (i32.const 0) ) ) (block @@ -3827,12 +3823,11 @@ ) (i32.const 7) ) - (i32.eq + (i32.eqz (i32.and (get_local $1) (i32.const 7) ) - (i32.const 0) ) ) ) @@ -4002,12 +3997,11 @@ ) (i32.const 7) ) - (i32.eq + (i32.eqz (i32.and (get_local $1) (i32.const 7) ) - (i32.const 0) ) ) ) @@ -4029,12 +4023,11 @@ ) (i32.const 7) ) - (i32.eq + (i32.eqz (i32.and (get_local $1) (i32.const 7) ) - (i32.const 0) ) ) ) @@ -5216,12 +5209,11 @@ ) (i32.const 7) ) - (i32.eq + (i32.eqz (i32.and (get_local $24) (i32.const 7) ) - (i32.const 0) ) ) ) @@ -5260,12 +5252,11 @@ ) (i32.const 7) ) - (i32.eq + (i32.eqz (i32.and (get_local $4) (i32.const 7) ) - (i32.const 0) ) ) ) @@ -5858,13 +5849,12 @@ (block (if (i32.or - (i32.eq + (i32.eqz (tee_local $4 (i32.load (i32.const 1224) ) ) - (i32.const 0) ) (i32.lt_u (get_local $28) @@ -5953,12 +5943,11 @@ ) (i32.const 7) ) - (i32.eq + (i32.eqz (i32.and (get_local $4) (i32.const 7) ) - (i32.const 0) ) ) ) @@ -8721,11 +8710,10 @@ ) ) (set_local $2 - (i32.eq + (i32.eqz (call $Ya (get_local $0) ) - (i32.const 0) ) ) (set_local $1 @@ -9612,11 +9600,10 @@ ) (block (set_local $5 - (i32.eq + (i32.eqz (call $Ya (get_local $3) ) - (i32.const 0) ) ) (set_local $0 diff --git a/test/memorygrowth.fromasm.imprecise b/test/memorygrowth.fromasm.imprecise index aea127692..5e6d64c47 100644 --- a/test/memorygrowth.fromasm.imprecise +++ b/test/memorygrowth.fromasm.imprecise @@ -1673,9 +1673,8 @@ ) ) (i32.or - (i32.eq + (i32.eqz (get_local $29) - (i32.const 0) ) (i32.eq (get_local $29) @@ -1702,9 +1701,8 @@ ) (if (tee_local $29 - (i32.eq + (i32.eqz (get_local $19) - (i32.const 0) ) ) (block @@ -1775,13 +1773,11 @@ (tee_local $0 (if (i32.and - (i32.eq + (i32.eqz (get_local $12) - (i32.const 0) ) - (i32.eq + (i32.eqz (get_local $38) - (i32.const 0) ) ) (block @@ -3825,12 +3821,11 @@ ) (i32.const 7) ) - (i32.eq + (i32.eqz (i32.and (get_local $1) (i32.const 7) ) - (i32.const 0) ) ) ) @@ -4000,12 +3995,11 @@ ) (i32.const 7) ) - (i32.eq + (i32.eqz (i32.and (get_local $1) (i32.const 7) ) - (i32.const 0) ) ) ) @@ -4027,12 +4021,11 @@ ) (i32.const 7) ) - (i32.eq + (i32.eqz (i32.and (get_local $1) (i32.const 7) ) - (i32.const 0) ) ) ) @@ -5214,12 +5207,11 @@ ) (i32.const 7) ) - (i32.eq + (i32.eqz (i32.and (get_local $24) (i32.const 7) ) - (i32.const 0) ) ) ) @@ -5258,12 +5250,11 @@ ) (i32.const 7) ) - (i32.eq + (i32.eqz (i32.and (get_local $4) (i32.const 7) ) - (i32.const 0) ) ) ) @@ -5856,13 +5847,12 @@ (block (if (i32.or - (i32.eq + (i32.eqz (tee_local $4 (i32.load (i32.const 1224) ) ) - (i32.const 0) ) (i32.lt_u (get_local $28) @@ -5951,12 +5941,11 @@ ) (i32.const 7) ) - (i32.eq + (i32.eqz (i32.and (get_local $4) (i32.const 7) ) - (i32.const 0) ) ) ) @@ -8719,11 +8708,10 @@ ) ) (set_local $2 - (i32.eq + (i32.eqz (call $Ya (get_local $0) ) - (i32.const 0) ) ) (set_local $1 @@ -9610,11 +9598,10 @@ ) (block (set_local $5 - (i32.eq + (i32.eqz (call $Ya (get_local $3) ) - (i32.const 0) ) ) (set_local $0 diff --git a/test/passes/optimize-instructions.txt b/test/passes/optimize-instructions.txt index e7af4848e..8ac9ea6fd 100644 --- a/test/passes/optimize-instructions.txt +++ b/test/passes/optimize-instructions.txt @@ -166,5 +166,20 @@ (f64.const 2) ) ) + (drop + (i32.eqz + (i32.const 100) + ) + ) + (drop + (i32.eqz + (i32.const 100) + ) + ) + (drop + (i32.eqz + (i32.const 0) + ) + ) ) ) diff --git a/test/passes/optimize-instructions.wast b/test/passes/optimize-instructions.wast index f06d99fd9..a9296c3cc 100644 --- a/test/passes/optimize-instructions.wast +++ b/test/passes/optimize-instructions.wast @@ -192,5 +192,23 @@ ) ) ) + (drop + (i32.eq + (i32.const 100) + (i32.const 0) + ) + ) + (drop + (i32.eq + (i32.const 0) + (i32.const 100) + ) + ) + (drop + (i32.eq + (i32.const 0) + (i32.const 0) + ) + ) ) ) |