summaryrefslogtreecommitdiff
path: root/test/wasm2js/loop.2asm.js
diff options
context:
space:
mode:
authorAlon Zakai <azakai@google.com>2019-05-01 10:43:01 -0700
committerGitHub <noreply@github.com>2019-05-01 10:43:01 -0700
commit73709b4da08d285c2237c8c23a54ba53274c0c7f (patch)
tree2f428e5367c511b22391a8c471edbc0e7ed0688a /test/wasm2js/loop.2asm.js
parentac93469d7fde75397403db94d9bf0c1bac0cf60f (diff)
downloadbinaryen-73709b4da08d285c2237c8c23a54ba53274c0c7f.tar.gz
binaryen-73709b4da08d285c2237c8c23a54ba53274c0c7f.tar.bz2
binaryen-73709b4da08d285c2237c8c23a54ba53274c0c7f.zip
wasm2js: run more optimizations (#2073)
In particular, coalesce-locals is useful even if closure is run later (apparently it finds stuff closure can't).
Diffstat (limited to 'test/wasm2js/loop.2asm.js')
-rw-r--r--test/wasm2js/loop.2asm.js479
1 files changed, 187 insertions, 292 deletions
diff --git a/test/wasm2js/loop.2asm.js b/test/wasm2js/loop.2asm.js
index 6ba7086ea..44f59c91e 100644
--- a/test/wasm2js/loop.2asm.js
+++ b/test/wasm2js/loop.2asm.js
@@ -33,13 +33,10 @@ function asmFunc(global, env, buffer) {
}
function $2() {
- var $0 = 0;
- $0 = 7;
- return $0 | 0;
+ return 7 | 0;
}
function $3() {
- var $2_1 = 0;
dummy();
dummy();
dummy();
@@ -47,77 +44,40 @@ function asmFunc(global, env, buffer) {
dummy();
dummy();
dummy();
- $2_1 = 8;
- return $2_1 | 0;
+ return 8 | 0;
}
function $4() {
- var $2_1 = 0;
dummy();
dummy();
- $2_1 = 9;
- return $2_1 | 0;
+ return 9 | 0;
}
function $5() {
- var $2_1 = 0, $6_1 = 0, $10_1 = 0, $14_1 = 0, $18_1 = 0, $22 = 0, $26 = 0, $30 = 0, $34 = 0, $38 = 0, $42 = 0, $46 = 0, $50 = 0, $54 = 0, $58 = 0, $62 = 0, $66 = 0, $70 = 0, $74 = 0, $78 = 0, $82 = 0;
dummy();
- $2_1 = 150;
- $6_1 = $2_1;
- $10_1 = $6_1;
- $14_1 = $10_1;
- $18_1 = $14_1;
- $22 = $18_1;
- $26 = $22;
- $30 = $26;
- $34 = $30;
- $38 = $34;
- $42 = $38;
- $46 = $42;
- $50 = $46;
- $54 = $50;
- $58 = $54;
- $62 = $58;
- $66 = $62;
- $70 = $66;
- $74 = $70;
- $78 = $74;
- $82 = $78;
- return $82 | 0;
+ return 150 | 0;
}
function $6() {
- var $2_1 = 0;
dummy();
- $2_1 = 13;
- return __wasm_ctz_i32($2_1 | 0) | 0 | 0;
+ return __wasm_ctz_i32(13 | 0) | 0 | 0;
}
function $7() {
- var $2_1 = 0, $3_1 = 0, $6_1 = 0;
dummy();
- $2_1 = 3;
- $3_1 = $2_1;
dummy();
- $6_1 = 4;
- return Math_imul($3_1, $6_1) | 0;
+ return Math_imul(3, 4) | 0;
}
function $8() {
- var $2_1 = 0;
dummy();
- $2_1 = 13;
- return !$2_1 | 0;
+ return !13 | 0;
}
function $9() {
- var $2_1 = Math_fround(0), $3_1 = Math_fround(0), $6_1 = Math_fround(0);
dummy();
- $2_1 = Math_fround(3.0);
- $3_1 = $2_1;
dummy();
- $6_1 = Math_fround(3.0);
- return $3_1 > $6_1 | 0;
+ return Math_fround(3.0) > Math_fround(3.0) | 0;
}
function $10() {
@@ -146,7 +106,7 @@ function asmFunc(global, env, buffer) {
}
function $11() {
- var $0 = 0, $1_1 = 0, $3_1 = 0;
+ var $0 = 0;
block : {
loop_in : while (1) {
$0 = 18;
@@ -157,7 +117,7 @@ function asmFunc(global, env, buffer) {
}
function $12() {
- var $0 = 0, $5_1 = 0, $7_1 = 0;
+ var $0 = 0;
block : {
$0 = 18;
break block;
@@ -166,46 +126,39 @@ function asmFunc(global, env, buffer) {
}
function $13() {
- var $0 = 0, $1_1 = 0, $2_1 = 0, $5_1 = 0, $6_1 = 0, $9_1 = 0, $10_1 = 0, $12_1 = 0, $17_1 = 0, $18_1 = 0, $21 = 0, $22 = 0;
+ var $0 = 0, $1_1 = 0;
$0 = 0;
- $1_1 = $0;
block : {
- $2_1 = 1;
+ $1_1 = 1;
break block;
}
- $0 = $1_1 + $2_1 | 0;
- $5_1 = $0;
+ $0 = $0 + $1_1 | 0;
block55 : {
- $6_1 = 2;
+ $1_1 = 2;
break block55;
}
- $0 = $5_1 + $6_1 | 0;
- $9_1 = $0;
+ $0 = $0 + $1_1 | 0;
block60 : {
- $10_1 = 4;
+ $1_1 = 4;
break block60;
}
- $12_1 = $10_1;
- $0 = $9_1 + $12_1 | 0;
- $17_1 = $0;
+ $0 = $0 + $1_1 | 0;
block62 : {
- $18_1 = 8;
+ $1_1 = 8;
break block62;
}
- $0 = $17_1 + $18_1 | 0;
- $21 = $0;
+ $0 = $0 + $1_1 | 0;
block64 : {
- $22 = 16;
+ $1_1 = 16;
break block64;
}
- $0 = $21 + $22 | 0;
+ $0 = $0 + $1_1 | 0;
return $0 | 0;
}
function $14() {
- var $0 = 0, $1_1 = 0, $2_1 = 0, $3_1 = 0, $5_1 = 0;
+ var $0 = 0;
$0 = 0;
- $1_1 = $0;
loop_in : while (1) continue loop_in;
}
@@ -221,80 +174,71 @@ function asmFunc(global, env, buffer) {
return ($0 | 0) == (-14 | 0) | 0;
}
- function $16($0, $0$hi) {
+ function $16($0, $1_1) {
$0 = $0 | 0;
- $0$hi = $0$hi | 0;
- var i64toi32_i32$0 = 0, $1$hi = 0, i64toi32_i32$5 = 0, i64toi32_i32$1 = 0, $1_1 = 0, i64toi32_i32$3 = 0;
- i64toi32_i32$0 = 0;
- $1_1 = 1;
- $1$hi = i64toi32_i32$0;
+ $1_1 = $1_1 | 0;
+ var $2_1 = 0, $3_1 = 0, $4_1 = 0, $5_1 = 0, $6_1 = 0;
+ $2_1 = 0;
+ $4_1 = 1;
+ $3_1 = $2_1;
block : {
loop_in : while (1) {
- i64toi32_i32$0 = $0$hi;
- if (!($0 | i64toi32_i32$0 | 0)) {
+ $2_1 = $1_1;
+ if (!($0 | $2_1 | 0)) {
break block
}
- i64toi32_i32$0 = $0$hi;
- i64toi32_i32$0 = $1$hi;
- i64toi32_i32$0 = $0$hi;
- i64toi32_i32$1 = $1$hi;
- i64toi32_i32$1 = __wasm_i64_mul($0 | 0, i64toi32_i32$0 | 0, $1_1 | 0, $1$hi | 0) | 0;
- i64toi32_i32$0 = i64toi32_i32$HIGH_BITS;
- $1_1 = i64toi32_i32$1;
- $1$hi = i64toi32_i32$0;
- i64toi32_i32$0 = $0$hi;
- i64toi32_i32$1 = 0;
- i64toi32_i32$3 = 1;
- i64toi32_i32$5 = ($0 >>> 0 < i64toi32_i32$3 >>> 0) + i64toi32_i32$1 | 0;
- i64toi32_i32$5 = i64toi32_i32$0 - i64toi32_i32$5 | 0;
- $0 = $0 - i64toi32_i32$3 | 0;
- $0$hi = i64toi32_i32$5;
+ $2_1 = $1_1;
+ $5_1 = __wasm_i64_mul($0 | 0, $2_1 | 0, $4_1 | 0, $3_1 | 0) | 0;
+ $2_1 = i64toi32_i32$HIGH_BITS;
+ $4_1 = $5_1;
+ $3_1 = $2_1;
+ $2_1 = $1_1;
+ $5_1 = 0;
+ $6_1 = 1;
+ $1_1 = ($0 >>> 0 < $6_1 >>> 0) + $5_1 | 0;
+ $1_1 = $2_1 - $1_1 | 0;
+ $0 = $0 - $6_1 | 0;
continue loop_in;
};
}
- i64toi32_i32$5 = $1$hi;
- i64toi32_i32$HIGH_BITS = i64toi32_i32$5;
- return $1_1 | 0;
+ $1_1 = $3_1;
+ i64toi32_i32$HIGH_BITS = $1_1;
+ return $4_1 | 0;
}
- function $17($0, $0$hi) {
+ function $17($0, $1_1) {
$0 = $0 | 0;
- $0$hi = $0$hi | 0;
- var i64toi32_i32$0 = 0, $1$hi = 0, $2$hi = 0, i64toi32_i32$1 = 0, $2_1 = 0, i64toi32_i32$5 = 0, $1_1 = 0, i64toi32_i32$4 = 0;
- i64toi32_i32$0 = 0;
- $1_1 = 1;
- $1$hi = i64toi32_i32$0;
- i64toi32_i32$0 = 0;
- $2_1 = 2;
- $2$hi = i64toi32_i32$0;
+ $1_1 = $1_1 | 0;
+ var $2_1 = 0, $3_1 = 0, $4_1 = 0, $5_1 = 0, $6_1 = 0, $7_1 = 0;
+ $2_1 = 0;
+ $7_1 = 1;
+ $4_1 = $2_1;
+ $2_1 = 0;
+ $5_1 = 2;
+ $3_1 = $2_1;
block : {
loop_in : while (1) {
- i64toi32_i32$0 = $2$hi;
- i64toi32_i32$0 = $0$hi;
- i64toi32_i32$0 = $2$hi;
- i64toi32_i32$1 = $0$hi;
- if (i64toi32_i32$0 >>> 0 > i64toi32_i32$1 >>> 0 | ((i64toi32_i32$0 | 0) == (i64toi32_i32$1 | 0) & $2_1 >>> 0 > $0 >>> 0 | 0) | 0) {
+ $2_1 = $3_1;
+ $6_1 = $1_1;
+ if ($2_1 >>> 0 > $6_1 >>> 0 | (($2_1 | 0) == ($6_1 | 0) & $5_1 >>> 0 > $0 >>> 0 | 0) | 0) {
break block
}
- i64toi32_i32$0 = $2$hi;
- i64toi32_i32$0 = __wasm_i64_mul($1_1 | 0, $1$hi | 0, $2_1 | 0, i64toi32_i32$0 | 0) | 0;
- $1_1 = i64toi32_i32$0;
- $1$hi = i64toi32_i32$HIGH_BITS;
- i64toi32_i32$0 = 0;
- i64toi32_i32$1 = 1;
- i64toi32_i32$4 = $2_1 + i64toi32_i32$1 | 0;
- i64toi32_i32$5 = $2$hi + i64toi32_i32$0 | 0;
- if (i64toi32_i32$4 >>> 0 < i64toi32_i32$1 >>> 0) {
- i64toi32_i32$5 = i64toi32_i32$5 + 1 | 0
+ $2_1 = $3_1;
+ $2_1 = __wasm_i64_mul($7_1 | 0, $4_1 | 0, $5_1 | 0, $2_1 | 0) | 0;
+ $7_1 = $2_1;
+ $4_1 = i64toi32_i32$HIGH_BITS;
+ $2_1 = 0;
+ $6_1 = 1;
+ $5_1 = $5_1 + $6_1 | 0;
+ $3_1 = $3_1 + $2_1 | 0;
+ if ($5_1 >>> 0 < $6_1 >>> 0) {
+ $3_1 = $3_1 + 1 | 0
}
- $2_1 = i64toi32_i32$4;
- $2$hi = i64toi32_i32$5;
continue loop_in;
};
}
- i64toi32_i32$5 = $1$hi;
- i64toi32_i32$HIGH_BITS = $1$hi;
- return $1_1 | 0;
+ i64toi32_i32$HIGH_BITS = $4_1;
+ return $7_1 | 0;
}
function $18($0, $1_1) {
@@ -331,213 +275,164 @@ function asmFunc(global, env, buffer) {
function legalstub$16($0, $1_1) {
$0 = $0 | 0;
$1_1 = $1_1 | 0;
- var i64toi32_i32$2 = 0, i64toi32_i32$4 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, i64toi32_i32$3 = 0, $12_1 = 0, $13_1 = 0, $4_1 = 0, $4$hi = 0, $7$hi = 0, $2_1 = 0, $2$hi = 0;
- i64toi32_i32$0 = 0;
- $4_1 = $0;
- $4$hi = i64toi32_i32$0;
- i64toi32_i32$0 = 0;
- i64toi32_i32$2 = $1_1;
- i64toi32_i32$1 = 0;
- i64toi32_i32$3 = 32;
- i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0;
- if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) {
+ var $2_1 = 0, $3_1 = 0, $4_1 = 0, $5_1 = 0, $6_1 = 0;
+ $3_1 = 0;
+ $5_1 = $0;
+ $6_1 = $3_1;
+ $3_1 = 0;
+ $4_1 = 32;
+ $2_1 = $4_1 & 31 | 0;
+ if (32 >>> 0 <= ($4_1 & 63 | 0) >>> 0) {
{
- i64toi32_i32$1 = i64toi32_i32$2 << i64toi32_i32$4 | 0;
- $12_1 = 0;
+ $0 = $1_1 << $2_1 | 0;
+ $4_1 = 0;
}
} else {
{
- i64toi32_i32$1 = ((1 << i64toi32_i32$4 | 0) - 1 | 0) & (i64toi32_i32$2 >>> (32 - i64toi32_i32$4 | 0) | 0) | 0 | (i64toi32_i32$0 << i64toi32_i32$4 | 0) | 0;
- $12_1 = i64toi32_i32$2 << i64toi32_i32$4 | 0;
+ $0 = ((1 << $2_1 | 0) - 1 | 0) & ($1_1 >>> (32 - $2_1 | 0) | 0) | 0 | ($3_1 << $2_1 | 0) | 0;
+ $4_1 = $1_1 << $2_1 | 0;
}
}
- $7$hi = i64toi32_i32$1;
- i64toi32_i32$1 = $4$hi;
- i64toi32_i32$0 = $4_1;
- i64toi32_i32$2 = $7$hi;
- i64toi32_i32$3 = $12_1;
- i64toi32_i32$2 = i64toi32_i32$1 | i64toi32_i32$2 | 0;
- i64toi32_i32$2 = $16(i64toi32_i32$0 | i64toi32_i32$3 | 0 | 0, i64toi32_i32$2 | 0) | 0;
- i64toi32_i32$0 = i64toi32_i32$HIGH_BITS;
- $2_1 = i64toi32_i32$2;
- $2$hi = i64toi32_i32$0;
- i64toi32_i32$1 = i64toi32_i32$2;
- i64toi32_i32$2 = 0;
- i64toi32_i32$3 = 32;
- i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0;
- if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) {
- {
- i64toi32_i32$2 = 0;
- $13_1 = i64toi32_i32$0 >>> i64toi32_i32$4 | 0;
- }
+ $1_1 = $0;
+ $0 = $6_1;
+ $3_1 = $5_1;
+ $1_1 = $0 | $1_1 | 0;
+ $1_1 = $16($3_1 | $4_1 | 0 | 0, $1_1 | 0) | 0;
+ $3_1 = i64toi32_i32$HIGH_BITS;
+ $6_1 = $1_1;
+ $5_1 = $3_1;
+ $0 = $1_1;
+ $4_1 = 32;
+ $2_1 = $4_1 & 31 | 0;
+ if (32 >>> 0 <= ($4_1 & 63 | 0) >>> 0) {
+ $0 = $3_1 >>> $2_1 | 0
} else {
- {
- i64toi32_i32$2 = i64toi32_i32$0 >>> i64toi32_i32$4 | 0;
- $13_1 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$0 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$1 >>> i64toi32_i32$4 | 0) | 0;
- }
+ $0 = (((1 << $2_1 | 0) - 1 | 0) & $3_1 | 0) << (32 - $2_1 | 0) | 0 | ($0 >>> $2_1 | 0) | 0
}
- setTempRet0($13_1 | 0);
- i64toi32_i32$2 = $2$hi;
- return $2_1 | 0;
+ setTempRet0($0 | 0);
+ return $6_1 | 0;
}
function legalstub$17($0, $1_1) {
$0 = $0 | 0;
$1_1 = $1_1 | 0;
- var i64toi32_i32$2 = 0, i64toi32_i32$4 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, i64toi32_i32$3 = 0, $12_1 = 0, $13_1 = 0, $4_1 = 0, $4$hi = 0, $7$hi = 0, $2_1 = 0, $2$hi = 0;
- i64toi32_i32$0 = 0;
- $4_1 = $0;
- $4$hi = i64toi32_i32$0;
- i64toi32_i32$0 = 0;
- i64toi32_i32$2 = $1_1;
- i64toi32_i32$1 = 0;
- i64toi32_i32$3 = 32;
- i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0;
- if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) {
+ var $2_1 = 0, $3_1 = 0, $4_1 = 0, $5_1 = 0, $6_1 = 0;
+ $3_1 = 0;
+ $5_1 = $0;
+ $6_1 = $3_1;
+ $3_1 = 0;
+ $4_1 = 32;
+ $2_1 = $4_1 & 31 | 0;
+ if (32 >>> 0 <= ($4_1 & 63 | 0) >>> 0) {
{
- i64toi32_i32$1 = i64toi32_i32$2 << i64toi32_i32$4 | 0;
- $12_1 = 0;
+ $0 = $1_1 << $2_1 | 0;
+ $4_1 = 0;
}
} else {
{
- i64toi32_i32$1 = ((1 << i64toi32_i32$4 | 0) - 1 | 0) & (i64toi32_i32$2 >>> (32 - i64toi32_i32$4 | 0) | 0) | 0 | (i64toi32_i32$0 << i64toi32_i32$4 | 0) | 0;
- $12_1 = i64toi32_i32$2 << i64toi32_i32$4 | 0;
+ $0 = ((1 << $2_1 | 0) - 1 | 0) & ($1_1 >>> (32 - $2_1 | 0) | 0) | 0 | ($3_1 << $2_1 | 0) | 0;
+ $4_1 = $1_1 << $2_1 | 0;
}
}
- $7$hi = i64toi32_i32$1;
- i64toi32_i32$1 = $4$hi;
- i64toi32_i32$0 = $4_1;
- i64toi32_i32$2 = $7$hi;
- i64toi32_i32$3 = $12_1;
- i64toi32_i32$2 = i64toi32_i32$1 | i64toi32_i32$2 | 0;
- i64toi32_i32$2 = $17(i64toi32_i32$0 | i64toi32_i32$3 | 0 | 0, i64toi32_i32$2 | 0) | 0;
- i64toi32_i32$0 = i64toi32_i32$HIGH_BITS;
- $2_1 = i64toi32_i32$2;
- $2$hi = i64toi32_i32$0;
- i64toi32_i32$1 = i64toi32_i32$2;
- i64toi32_i32$2 = 0;
- i64toi32_i32$3 = 32;
- i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0;
- if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) {
- {
- i64toi32_i32$2 = 0;
- $13_1 = i64toi32_i32$0 >>> i64toi32_i32$4 | 0;
- }
+ $1_1 = $0;
+ $0 = $6_1;
+ $3_1 = $5_1;
+ $1_1 = $0 | $1_1 | 0;
+ $1_1 = $17($3_1 | $4_1 | 0 | 0, $1_1 | 0) | 0;
+ $3_1 = i64toi32_i32$HIGH_BITS;
+ $6_1 = $1_1;
+ $5_1 = $3_1;
+ $0 = $1_1;
+ $4_1 = 32;
+ $2_1 = $4_1 & 31 | 0;
+ if (32 >>> 0 <= ($4_1 & 63 | 0) >>> 0) {
+ $0 = $3_1 >>> $2_1 | 0
} else {
- {
- i64toi32_i32$2 = i64toi32_i32$0 >>> i64toi32_i32$4 | 0;
- $13_1 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$0 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$1 >>> i64toi32_i32$4 | 0) | 0;
- }
+ $0 = (((1 << $2_1 | 0) - 1 | 0) & $3_1 | 0) << (32 - $2_1 | 0) | 0 | ($0 >>> $2_1 | 0) | 0
}
- setTempRet0($13_1 | 0);
- i64toi32_i32$2 = $2$hi;
- return $2_1 | 0;
+ setTempRet0($0 | 0);
+ return $6_1 | 0;
}
- function _ZN17compiler_builtins3int3mul3Mul3mul17h070e9a1c69faec5bE(var$0, var$0$hi, var$1, var$1$hi) {
- var$0 = var$0 | 0;
- var$0$hi = var$0$hi | 0;
- var$1 = var$1 | 0;
- var$1$hi = var$1$hi | 0;
- var i64toi32_i32$4 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, var$2 = 0, i64toi32_i32$2 = 0, i64toi32_i32$3 = 0, var$3 = 0, var$4 = 0, var$5 = 0, $21 = 0, $22 = 0, var$6 = 0, $24 = 0, $17_1 = 0, $18_1 = 0, $23 = 0, $29 = 0, $45 = 0, $56$hi = 0, $62$hi = 0;
- i64toi32_i32$0 = var$1$hi;
- var$2 = var$1;
- var$4 = var$2 >>> 16 | 0;
- i64toi32_i32$0 = var$0$hi;
- var$3 = var$0;
- var$5 = var$3 >>> 16 | 0;
- $17_1 = Math_imul(var$4, var$5);
- $18_1 = var$2;
- i64toi32_i32$2 = var$3;
- i64toi32_i32$1 = 0;
- i64toi32_i32$3 = 32;
- i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0;
- if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) {
- {
- i64toi32_i32$1 = 0;
- $21 = i64toi32_i32$0 >>> i64toi32_i32$4 | 0;
- }
+ function _ZN17compiler_builtins3int3mul3Mul3mul17h070e9a1c69faec5bE($0, $1_1, $2_1, $3_1) {
+ $0 = $0 | 0;
+ $1_1 = $1_1 | 0;
+ $2_1 = $2_1 | 0;
+ $3_1 = $3_1 | 0;
+ var $4_1 = 0, $5_1 = 0, $6_1 = 0, $7_1 = 0, $8_1 = 0, $9_1 = 0, $10_1 = 0, $11_1 = 0;
+ $5_1 = $2_1;
+ $9_1 = $5_1 >>> 16 | 0;
+ $10_1 = $0 >>> 16 | 0;
+ $11_1 = Math_imul($9_1, $10_1);
+ $8_1 = $5_1;
+ $6_1 = $0;
+ $7_1 = 32;
+ $4_1 = $7_1 & 31 | 0;
+ if (32 >>> 0 <= ($7_1 & 63 | 0) >>> 0) {
+ $1_1 = $1_1 >>> $4_1 | 0
} else {
- {
- i64toi32_i32$1 = i64toi32_i32$0 >>> i64toi32_i32$4 | 0;
- $21 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$0 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$2 >>> i64toi32_i32$4 | 0) | 0;
- }
+ $1_1 = (((1 << $4_1 | 0) - 1 | 0) & $1_1 | 0) << (32 - $4_1 | 0) | 0 | ($6_1 >>> $4_1 | 0) | 0
}
- $23 = $17_1 + Math_imul($18_1, $21) | 0;
- i64toi32_i32$1 = var$1$hi;
- i64toi32_i32$0 = var$1;
- i64toi32_i32$2 = 0;
- i64toi32_i32$3 = 32;
- i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0;
- if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) {
- {
- i64toi32_i32$2 = 0;
- $22 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0;
- }
+ $6_1 = $11_1 + Math_imul($8_1, $1_1) | 0;
+ $1_1 = $2_1;
+ $7_1 = 32;
+ $4_1 = $7_1 & 31 | 0;
+ if (32 >>> 0 <= ($7_1 & 63 | 0) >>> 0) {
+ $1_1 = $3_1 >>> $4_1 | 0
} else {
- {
- i64toi32_i32$2 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0;
- $22 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$1 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$0 >>> i64toi32_i32$4 | 0) | 0;
- }
+ $1_1 = (((1 << $4_1 | 0) - 1 | 0) & $3_1 | 0) << (32 - $4_1 | 0) | 0 | ($1_1 >>> $4_1 | 0) | 0
}
- $29 = $23 + Math_imul($22, var$3) | 0;
- var$2 = var$2 & 65535 | 0;
- var$3 = var$3 & 65535 | 0;
- var$6 = Math_imul(var$2, var$3);
- var$2 = (var$6 >>> 16 | 0) + Math_imul(var$2, var$5) | 0;
- $45 = $29 + (var$2 >>> 16 | 0) | 0;
- var$2 = (var$2 & 65535 | 0) + Math_imul(var$4, var$3) | 0;
- i64toi32_i32$2 = 0;
- i64toi32_i32$1 = $45 + (var$2 >>> 16 | 0) | 0;
- i64toi32_i32$0 = 0;
- i64toi32_i32$3 = 32;
- i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0;
- if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) {
+ $1_1 = $6_1 + Math_imul($1_1, $0) | 0;
+ $5_1 = $5_1 & 65535 | 0;
+ $0 = $0 & 65535 | 0;
+ $8_1 = Math_imul($5_1, $0);
+ $5_1 = ($8_1 >>> 16 | 0) + Math_imul($5_1, $10_1) | 0;
+ $1_1 = $1_1 + ($5_1 >>> 16 | 0) | 0;
+ $5_1 = ($5_1 & 65535 | 0) + Math_imul($9_1, $0) | 0;
+ $6_1 = 0;
+ $3_1 = $1_1 + ($5_1 >>> 16 | 0) | 0;
+ $7_1 = 32;
+ $4_1 = $7_1 & 31 | 0;
+ if (32 >>> 0 <= ($7_1 & 63 | 0) >>> 0) {
{
- i64toi32_i32$0 = i64toi32_i32$1 << i64toi32_i32$4 | 0;
- $24 = 0;
+ $1_1 = $3_1 << $4_1 | 0;
+ $6_1 = 0;
}
} else {
{
- i64toi32_i32$0 = ((1 << i64toi32_i32$4 | 0) - 1 | 0) & (i64toi32_i32$1 >>> (32 - i64toi32_i32$4 | 0) | 0) | 0 | (i64toi32_i32$2 << i64toi32_i32$4 | 0) | 0;
- $24 = i64toi32_i32$1 << i64toi32_i32$4 | 0;
+ $1_1 = ((1 << $4_1 | 0) - 1 | 0) & ($3_1 >>> (32 - $4_1 | 0) | 0) | 0 | ($6_1 << $4_1 | 0) | 0;
+ $6_1 = $3_1 << $4_1 | 0;
}
}
- $56$hi = i64toi32_i32$0;
- i64toi32_i32$0 = 0;
- $62$hi = i64toi32_i32$0;
- i64toi32_i32$0 = $56$hi;
- i64toi32_i32$2 = $24;
- i64toi32_i32$1 = $62$hi;
- i64toi32_i32$3 = var$2 << 16 | 0 | (var$6 & 65535 | 0) | 0;
- i64toi32_i32$1 = i64toi32_i32$0 | i64toi32_i32$1 | 0;
- i64toi32_i32$2 = i64toi32_i32$2 | i64toi32_i32$3 | 0;
- i64toi32_i32$HIGH_BITS = i64toi32_i32$1;
- return i64toi32_i32$2 | 0;
+ $0 = $1_1;
+ $1_1 = 0;
+ $2_1 = $1_1;
+ $1_1 = $0;
+ $3_1 = $2_1;
+ $7_1 = $5_1 << 16 | 0 | ($8_1 & 65535 | 0) | 0;
+ $3_1 = $1_1 | $3_1 | 0;
+ $6_1 = $6_1 | $7_1 | 0;
+ i64toi32_i32$HIGH_BITS = $3_1;
+ return $6_1 | 0;
}
- function __wasm_ctz_i32(var$0) {
- var$0 = var$0 | 0;
- if (var$0) {
- return 31 - Math_clz32((var$0 + -1 | 0) ^ var$0 | 0) | 0 | 0
+ function __wasm_ctz_i32($0) {
+ $0 = $0 | 0;
+ if ($0) {
+ return 31 - Math_clz32(($0 + -1 | 0) ^ $0 | 0) | 0 | 0
}
return 32 | 0;
}
- function __wasm_i64_mul(var$0, var$0$hi, var$1, var$1$hi) {
- var$0 = var$0 | 0;
- var$0$hi = var$0$hi | 0;
- var$1 = var$1 | 0;
- var$1$hi = var$1$hi | 0;
- var i64toi32_i32$0 = 0, i64toi32_i32$1 = 0;
- i64toi32_i32$0 = var$0$hi;
- i64toi32_i32$0 = var$1$hi;
- i64toi32_i32$0 = var$0$hi;
- i64toi32_i32$1 = var$1$hi;
- i64toi32_i32$1 = _ZN17compiler_builtins3int3mul3Mul3mul17h070e9a1c69faec5bE(var$0 | 0, i64toi32_i32$0 | 0, var$1 | 0, i64toi32_i32$1 | 0) | 0;
- i64toi32_i32$0 = i64toi32_i32$HIGH_BITS;
- i64toi32_i32$HIGH_BITS = i64toi32_i32$0;
- return i64toi32_i32$1 | 0;
+ function __wasm_i64_mul($0, $1_1, $2_1, $3_1) {
+ $0 = $0 | 0;
+ $1_1 = $1_1 | 0;
+ $2_1 = $2_1 | 0;
+ $3_1 = $3_1 | 0;
+ $3_1 = _ZN17compiler_builtins3int3mul3Mul3mul17h070e9a1c69faec5bE($0 | 0, $1_1 | 0, $2_1 | 0, $3_1 | 0) | 0;
+ $1_1 = i64toi32_i32$HIGH_BITS;
+ i64toi32_i32$HIGH_BITS = $1_1;
+ return $3_1 | 0;
}
var FUNCTION_TABLE = [];