diff options
author | Alon Zakai <alonzakai@gmail.com> | 2016-04-11 20:27:35 -0700 |
---|---|---|
committer | Alon Zakai <alonzakai@gmail.com> | 2016-04-11 20:40:12 -0700 |
commit | 3c961d1383629e9907bc8d4c5b6f1f566d13a3f2 (patch) | |
tree | 5fa0079a54f37791a1694e6612a67d645a925bf7 | |
parent | cfa616dffc11e82390070315cc2e4635e42c437e (diff) | |
download | binaryen-3c961d1383629e9907bc8d4c5b6f1f566d13a3f2.tar.gz binaryen-3c961d1383629e9907bc8d4c5b6f1f566d13a3f2.tar.bz2 binaryen-3c961d1383629e9907bc8d4c5b6f1f566d13a3f2.zip |
continue simplifying locals while opportunities present themselves
-rw-r--r-- | src/passes/SimplifyLocals.cpp | 60 | ||||
-rw-r--r-- | test/emcc_O2_hello_world.fromasm | 888 | ||||
-rw-r--r-- | test/emcc_O2_hello_world.fromasm.imprecise | 888 | ||||
-rw-r--r-- | test/emcc_hello_world.fromasm | 1729 | ||||
-rw-r--r-- | test/emcc_hello_world.fromasm.imprecise | 1729 | ||||
-rw-r--r-- | test/memorygrowth.fromasm | 940 | ||||
-rw-r--r-- | test/memorygrowth.fromasm.imprecise | 940 | ||||
-rw-r--r-- | test/passes/simplify-locals.txt | 8 |
8 files changed, 3398 insertions, 3784 deletions
diff --git a/src/passes/SimplifyLocals.cpp b/src/passes/SimplifyLocals.cpp index 77e4f788a..faf6e3a6e 100644 --- a/src/passes/SimplifyLocals.cpp +++ b/src/passes/SimplifyLocals.cpp @@ -41,6 +41,8 @@ struct SimplifyLocals : public WalkerPass<LinearExecutionWalker<SimplifyLocals>> // locals in current linear execution trace, which we try to sink std::map<Name, SinkableInfo> sinkables; + bool sunk; + // name => # of get_locals for it std::map<Name, int> numGetLocals; @@ -60,6 +62,7 @@ struct SimplifyLocals : public WalkerPass<LinearExecutionWalker<SimplifyLocals>> *found->second.item = curr; ExpressionManipulator::nop(curr); sinkables.erase(found); + sunk = true; } else { numGetLocals[curr->name]++; } @@ -150,31 +153,42 @@ struct SimplifyLocals : public WalkerPass<LinearExecutionWalker<SimplifyLocals>> self->pushTask(visitPre, currp); } - void visitFunction(Function *curr) { - // after optimizing a function, we can see if we have set_locals - // for a local with no remaining gets, in which case, we can - // remove the set. - std::vector<SetLocal*> optimizables; - for (auto pair : setLocalOrigins) { - SetLocal* curr = pair.first; - if (numGetLocals[curr->name] == 0) { - // no gets, can remove the set and leave just the value - optimizables.push_back(curr); + void startWalk(Function *func) { + // multiple passes may be required per function, consider this: + // x = load + // y = store + // c(x, y) + // the load cannot cross the store, but y can be sunk, after which so can x + do { + sunk = false; + // main operation + walk(func->body); + // after optimizing a function, we can see if we have set_locals + // for a local with no remaining gets, in which case, we can + // remove the set. + std::vector<SetLocal*> optimizables; + for (auto pair : setLocalOrigins) { + SetLocal* curr = pair.first; + if (numGetLocals[curr->name] == 0) { + // no gets, can remove the set and leave just the value + optimizables.push_back(curr); + } } - } - for (auto* curr : optimizables) { - Expression** origin = setLocalOrigins[curr]; - *origin = curr->value; - // nested set_values need to be handled properly. - // consider (set_local x (set_local y (..)), where both can be - // reduced to their values, and we might do it in either - // order. - if (curr->value->is<SetLocal>()) { - setLocalOrigins[curr->value->cast<SetLocal>()] = origin; + for (auto* curr : optimizables) { + Expression** origin = setLocalOrigins[curr]; + *origin = curr->value; + // nested set_values need to be handled properly. + // consider (set_local x (set_local y (..)), where both can be + // reduced to their values, and we might do it in either + // order. + if (curr->value->is<SetLocal>()) { + setLocalOrigins[curr->value->cast<SetLocal>()] = origin; + } } - } - numGetLocals.clear(); - setLocalOrigins.clear(); + // clean up + numGetLocals.clear(); + setLocalOrigins.clear(); + } while (sunk); } }; diff --git a/test/emcc_O2_hello_world.fromasm b/test/emcc_O2_hello_world.fromasm index 7b630ef8c..26f092448 100644 --- a/test/emcc_O2_hello_world.fromasm +++ b/test/emcc_O2_hello_world.fromasm @@ -59,8 +59,8 @@ (local $i36 i32) (local $i14 i32) (local $i61 i32) - (local $i2 i32) (local $i53 i32) + (local $i2 i32) (local $i52 i32) (local $i12 i32) (local $i17 i32) @@ -76,8 +76,8 @@ (local $i72 i32) (local $i56 i32) (local $i24 i32) - (local $i9 i32) (local $i16 i32) + (local $i9 i32) (local $i79 i32) (local $i89 i32) (local $i82 i32) @@ -361,48 +361,6 @@ (i32.const 16) ) ) - (set_local $i11 - (i32.and - (i32.shr_u - (set_local $i12 - (i32.shr_u - (get_local $i11) - (get_local $i7) - ) - ) - (i32.const 5) - ) - (i32.const 8) - ) - ) - (set_local $i12 - (i32.and - (i32.shr_u - (set_local $i14 - (i32.shr_u - (get_local $i12) - (get_local $i11) - ) - ) - (i32.const 2) - ) - (i32.const 4) - ) - ) - (set_local $i14 - (i32.and - (i32.shr_u - (set_local $i15 - (i32.shr_u - (get_local $i14) - (get_local $i12) - ) - ) - (i32.const 1) - ) - (i32.const 2) - ) - ) (set_local $i7 (i32.load (set_local $i12 @@ -422,12 +380,51 @@ (i32.or (i32.or (i32.or - (get_local $i11) + (set_local $i11 + (i32.and + (i32.shr_u + (set_local $i12 + (i32.shr_u + (get_local $i11) + (get_local $i7) + ) + ) + (i32.const 5) + ) + (i32.const 8) + ) + ) (get_local $i7) ) - (get_local $i12) + (set_local $i12 + (i32.and + (i32.shr_u + (set_local $i14 + (i32.shr_u + (get_local $i12) + (get_local $i11) + ) + ) + (i32.const 2) + ) + (i32.const 4) + ) + ) + ) + (set_local $i14 + (i32.and + (i32.shr_u + (set_local $i15 + (i32.shr_u + (get_local $i14) + (get_local $i12) + ) + ) + (i32.const 1) + ) + (i32.const 2) + ) ) - (get_local $i14) ) (set_local $i15 (i32.and @@ -709,48 +706,6 @@ (i32.const 16) ) ) - (set_local $i8 - (i32.and - (i32.shr_u - (set_local $i15 - (i32.shr_u - (get_local $i8) - (get_local $i4) - ) - ) - (i32.const 5) - ) - (i32.const 8) - ) - ) - (set_local $i15 - (i32.and - (i32.shr_u - (set_local $i7 - (i32.shr_u - (get_local $i15) - (get_local $i8) - ) - ) - (i32.const 2) - ) - (i32.const 4) - ) - ) - (set_local $i7 - (i32.and - (i32.shr_u - (set_local $i5 - (i32.shr_u - (get_local $i7) - (get_local $i15) - ) - ) - (i32.const 1) - ) - (i32.const 2) - ) - ) (set_local $i5 (i32.sub (i32.and @@ -763,12 +718,51 @@ (i32.or (i32.or (i32.or - (get_local $i8) + (set_local $i8 + (i32.and + (i32.shr_u + (set_local $i15 + (i32.shr_u + (get_local $i8) + (get_local $i4) + ) + ) + (i32.const 5) + ) + (i32.const 8) + ) + ) (get_local $i4) ) - (get_local $i15) + (set_local $i15 + (i32.and + (i32.shr_u + (set_local $i7 + (i32.shr_u + (get_local $i15) + (get_local $i8) + ) + ) + (i32.const 2) + ) + (i32.const 4) + ) + ) + ) + (set_local $i7 + (i32.and + (i32.shr_u + (set_local $i5 + (i32.shr_u + (get_local $i7) + (get_local $i15) + ) + ) + (i32.const 1) + ) + (i32.const 2) + ) ) - (get_local $i7) ) (set_local $i5 (i32.and @@ -1481,87 +1475,84 @@ (set_local $i32 (i32.const 31) ) - (block - (set_local $i17 + (set_local $i32 + (i32.or (i32.and (i32.shr_u + (get_local $i5) (i32.add - (set_local $i12 - (i32.shl - (get_local $i17) - (set_local $i7 - (i32.and - (i32.shr_u - (i32.add - (get_local $i17) - (i32.const 1048320) - ) - (i32.const 16) - ) - (i32.const 8) - ) - ) - ) - ) - (i32.const 520192) - ) - (i32.const 16) - ) - (i32.const 4) - ) - ) - (set_local $i32 - (i32.or - (i32.and - (i32.shr_u - (get_local $i5) - (i32.add - (set_local $i4 - (i32.add - (i32.sub - (i32.const 14) + (set_local $i4 + (i32.add + (i32.sub + (i32.const 14) + (i32.or (i32.or - (i32.or - (get_local $i17) - (get_local $i7) - ) - (set_local $i12 + (set_local $i17 (i32.and (i32.shr_u (i32.add - (set_local $i10 + (set_local $i12 (i32.shl - (get_local $i12) (get_local $i17) + (set_local $i7 + (i32.and + (i32.shr_u + (i32.add + (get_local $i17) + (i32.const 1048320) + ) + (i32.const 16) + ) + (i32.const 8) + ) + ) ) ) - (i32.const 245760) + (i32.const 520192) ) (i32.const 16) ) - (i32.const 2) + (i32.const 4) + ) + ) + (get_local $i7) + ) + (set_local $i12 + (i32.and + (i32.shr_u + (i32.add + (set_local $i10 + (i32.shl + (get_local $i12) + (get_local $i17) + ) + ) + (i32.const 245760) + ) + (i32.const 16) ) + (i32.const 2) ) ) ) - (i32.shr_u - (i32.shl - (get_local $i10) - (get_local $i12) - ) - (i32.const 15) + ) + (i32.shr_u + (i32.shl + (get_local $i10) + (get_local $i12) ) + (i32.const 15) ) ) - (i32.const 7) ) + (i32.const 7) ) - (i32.const 1) - ) - (i32.shl - (get_local $i4) - (i32.const 1) ) + (i32.const 1) + ) + (i32.shl + (get_local $i4) + (i32.const 1) ) ) ) @@ -1668,16 +1659,15 @@ ) ) ) - (set_local $i9 - (i32.load offset=20 - (get_local $i17) - ) - ) (set_local $i16 (if (i32.or (i32.eq - (get_local $i9) + (set_local $i9 + (i32.load offset=20 + (get_local $i17) + ) + ) (i32.const 0) ) (i32.eq @@ -1835,48 +1825,6 @@ (i32.const 16) ) ) - (set_local $i4 - (i32.and - (i32.shr_u - (set_local $i2 - (i32.shr_u - (get_local $i4) - (get_local $i14) - ) - ) - (i32.const 5) - ) - (i32.const 8) - ) - ) - (set_local $i2 - (i32.and - (i32.shr_u - (set_local $i3 - (i32.shr_u - (get_local $i2) - (get_local $i4) - ) - ) - (i32.const 2) - ) - (i32.const 4) - ) - ) - (set_local $i3 - (i32.and - (i32.shr_u - (set_local $i8 - (i32.shr_u - (get_local $i3) - (get_local $i2) - ) - ) - (i32.const 1) - ) - (i32.const 2) - ) - ) (set_local $i42 (i32.load offset=480 (i32.shl @@ -1885,12 +1833,51 @@ (i32.or (i32.or (i32.or - (get_local $i4) + (set_local $i4 + (i32.and + (i32.shr_u + (set_local $i2 + (i32.shr_u + (get_local $i4) + (get_local $i14) + ) + ) + (i32.const 5) + ) + (i32.const 8) + ) + ) (get_local $i14) ) - (get_local $i2) + (set_local $i2 + (i32.and + (i32.shr_u + (set_local $i3 + (i32.shr_u + (get_local $i2) + (get_local $i4) + ) + ) + (i32.const 2) + ) + (i32.const 4) + ) + ) + ) + (set_local $i3 + (i32.and + (i32.shr_u + (set_local $i8 + (i32.shr_u + (get_local $i3) + (get_local $i2) + ) + ) + (i32.const 1) + ) + (i32.const 2) + ) ) - (get_local $i3) ) (set_local $i8 (i32.and @@ -2576,87 +2563,84 @@ (set_local $i52 (i32.const 31) ) - (block - (set_local $i15 + (set_local $i52 + (i32.or (i32.and (i32.shr_u + (get_local $i43) (i32.add - (set_local $i7 - (i32.shl - (get_local $i15) - (set_local $i2 - (i32.and - (i32.shr_u - (i32.add - (get_local $i15) - (i32.const 1048320) - ) - (i32.const 16) - ) - (i32.const 8) - ) - ) - ) - ) - (i32.const 520192) - ) - (i32.const 16) - ) - (i32.const 4) - ) - ) - (set_local $i52 - (i32.or - (i32.and - (i32.shr_u - (get_local $i43) - (i32.add - (set_local $i3 - (i32.add - (i32.sub - (i32.const 14) + (set_local $i3 + (i32.add + (i32.sub + (i32.const 14) + (i32.or (i32.or - (i32.or - (get_local $i15) - (get_local $i2) - ) - (set_local $i7 + (set_local $i15 (i32.and (i32.shr_u (i32.add - (set_local $i4 + (set_local $i7 (i32.shl - (get_local $i7) (get_local $i15) + (set_local $i2 + (i32.and + (i32.shr_u + (i32.add + (get_local $i15) + (i32.const 1048320) + ) + (i32.const 16) + ) + (i32.const 8) + ) + ) ) ) - (i32.const 245760) + (i32.const 520192) ) (i32.const 16) ) - (i32.const 2) + (i32.const 4) ) ) + (get_local $i2) ) - ) - (i32.shr_u - (i32.shl - (get_local $i4) - (get_local $i7) + (set_local $i7 + (i32.and + (i32.shr_u + (i32.add + (set_local $i4 + (i32.shl + (get_local $i7) + (get_local $i15) + ) + ) + (i32.const 245760) + ) + (i32.const 16) + ) + (i32.const 2) + ) ) - (i32.const 15) ) ) + (i32.shr_u + (i32.shl + (get_local $i4) + (get_local $i7) + ) + (i32.const 15) + ) ) - (i32.const 7) ) + (i32.const 7) ) - (i32.const 1) - ) - (i32.shl - (get_local $i3) - (i32.const 1) ) + (i32.const 1) + ) + (i32.shl + (get_local $i3) + (i32.const 1) ) ) ) @@ -3197,26 +3181,25 @@ (i32.const 48) ) ) - (set_local $i55 - (i32.add - (set_local $i43 - (i32.load - (i32.const 656) - ) - ) - (set_local $i44 - (i32.add - (get_local $i31) - (i32.const 47) - ) - ) - ) - ) (if (i32.le_u (set_local $i43 (i32.and - (get_local $i55) + (set_local $i55 + (i32.add + (set_local $i43 + (i32.load + (i32.const 656) + ) + ) + (set_local $i44 + (i32.add + (get_local $i31) + (i32.const 47) + ) + ) + ) + ) (set_local $i54 (i32.sub (i32.const 0) @@ -3684,30 +3667,27 @@ ) (i32.const 0) ) - (block - (set_local $i63 - (call_import $_sbrk - (get_local $i43) + (i32.and + (i32.lt_u + (set_local $i63 + (call_import $_sbrk + (get_local $i43) + ) + ) + (set_local $i43 + (call_import $_sbrk + (i32.const 0) + ) ) ) (i32.and - (i32.lt_u + (i32.ne (get_local $i63) - (set_local $i43 - (call_import $_sbrk - (i32.const 0) - ) - ) + (i32.const -1) ) - (i32.and - (i32.ne - (get_local $i63) - (i32.const -1) - ) - (i32.ne - (get_local $i43) - (i32.const -1) - ) + (i32.ne + (get_local $i43) + (i32.const -1) ) ) ) @@ -4857,34 +4837,6 @@ (br $do-once$67) ) ) - (set_local $i52 - (i32.and - (i32.shr_u - (i32.add - (set_local $i57 - (i32.shl - (get_local $i5) - (set_local $i54 - (i32.and - (i32.shr_u - (i32.add - (get_local $i5) - (i32.const 1048320) - ) - (i32.const 16) - ) - (i32.const 8) - ) - ) - ) - ) - (i32.const 520192) - ) - (i32.const 16) - ) - (i32.const 4) - ) - ) (set_local $i82 (i32.or (i32.and @@ -4897,7 +4849,34 @@ (i32.const 14) (i32.or (i32.or - (get_local $i52) + (set_local $i52 + (i32.and + (i32.shr_u + (i32.add + (set_local $i57 + (i32.shl + (get_local $i5) + (set_local $i54 + (i32.and + (i32.shr_u + (i32.add + (get_local $i5) + (i32.const 1048320) + ) + (i32.const 16) + ) + (i32.const 8) + ) + ) + ) + ) + (i32.const 520192) + ) + (i32.const 16) + ) + (i32.const 4) + ) + ) (get_local $i54) ) (set_local $i57 @@ -5281,32 +5260,31 @@ ) (set_local $i63 (i32.add - (get_local $i44) - (if - (i32.eq - (i32.and - (get_local $i53) - (i32.const 7) - ) - (i32.const 0) - ) - (i32.const 0) - (i32.and - (i32.sub - (i32.const 0) - (get_local $i53) - ) - (i32.const 7) - ) - ) - ) - ) - (set_local $i63 - (i32.add (set_local $i44 (if (i32.lt_u - (get_local $i63) + (set_local $i63 + (i32.add + (get_local $i44) + (if + (i32.eq + (i32.and + (get_local $i53) + (i32.const 7) + ) + (i32.const 0) + ) + (i32.const 0) + (i32.and + (i32.sub + (i32.const 0) + (get_local $i53) + ) + (i32.const 7) + ) + ) + ) + ) (set_local $i53 (i32.add (get_local $i60) @@ -5609,87 +5587,84 @@ (set_local $i89 (i32.const 31) ) - (block - (set_local $i61 + (set_local $i89 + (i32.or (i32.and (i32.shr_u + (get_local $i63) (i32.add - (set_local $i62 - (i32.shl - (get_local $i61) - (set_local $i57 - (i32.and - (i32.shr_u - (i32.add - (get_local $i61) - (i32.const 1048320) - ) - (i32.const 16) - ) - (i32.const 8) - ) - ) - ) - ) - (i32.const 520192) - ) - (i32.const 16) - ) - (i32.const 4) - ) - ) - (set_local $i89 - (i32.or - (i32.and - (i32.shr_u - (get_local $i63) - (i32.add - (set_local $i43 - (i32.add - (i32.sub - (i32.const 14) + (set_local $i43 + (i32.add + (i32.sub + (i32.const 14) + (i32.or (i32.or - (i32.or - (get_local $i61) - (get_local $i57) - ) - (set_local $i62 + (set_local $i61 (i32.and (i32.shr_u (i32.add - (set_local $i5 + (set_local $i62 (i32.shl - (get_local $i62) (get_local $i61) + (set_local $i57 + (i32.and + (i32.shr_u + (i32.add + (get_local $i61) + (i32.const 1048320) + ) + (i32.const 16) + ) + (i32.const 8) + ) + ) ) ) - (i32.const 245760) + (i32.const 520192) ) (i32.const 16) ) - (i32.const 2) + (i32.const 4) ) ) + (get_local $i57) ) - ) - (i32.shr_u - (i32.shl - (get_local $i5) - (get_local $i62) + (set_local $i62 + (i32.and + (i32.shr_u + (i32.add + (set_local $i5 + (i32.shl + (get_local $i62) + (get_local $i61) + ) + ) + (i32.const 245760) + ) + (i32.const 16) + ) + (i32.const 2) + ) ) - (i32.const 15) ) ) + (i32.shr_u + (i32.shl + (get_local $i5) + (get_local $i62) + ) + (i32.const 15) + ) ) - (i32.const 7) ) + (i32.const 7) ) - (i32.const 1) - ) - (i32.shl - (get_local $i43) - (i32.const 1) ) + (i32.const 1) + ) + (i32.shl + (get_local $i43) + (i32.const 1) ) ) ) @@ -7692,87 +7667,84 @@ (set_local $i32 (i32.const 31) ) - (block - (set_local $i2 + (set_local $i32 + (i32.or (i32.and (i32.shr_u + (get_local $i29) (i32.add - (set_local $i30 - (i32.shl - (get_local $i2) - (set_local $i31 - (i32.and - (i32.shr_u - (i32.add - (get_local $i2) - (i32.const 1048320) - ) - (i32.const 16) - ) - (i32.const 8) - ) - ) - ) - ) - (i32.const 520192) - ) - (i32.const 16) - ) - (i32.const 4) - ) - ) - (set_local $i32 - (i32.or - (i32.and - (i32.shr_u - (get_local $i29) - (i32.add - (set_local $i5 - (i32.add - (i32.sub - (i32.const 14) + (set_local $i5 + (i32.add + (i32.sub + (i32.const 14) + (i32.or (i32.or - (i32.or - (get_local $i2) - (get_local $i31) - ) - (set_local $i30 + (set_local $i2 (i32.and (i32.shr_u (i32.add - (set_local $i18 + (set_local $i30 (i32.shl - (get_local $i30) (get_local $i2) + (set_local $i31 + (i32.and + (i32.shr_u + (i32.add + (get_local $i2) + (i32.const 1048320) + ) + (i32.const 16) + ) + (i32.const 8) + ) + ) ) ) - (i32.const 245760) + (i32.const 520192) ) (i32.const 16) ) - (i32.const 2) + (i32.const 4) ) ) + (get_local $i31) ) - ) - (i32.shr_u - (i32.shl - (get_local $i18) - (get_local $i30) + (set_local $i30 + (i32.and + (i32.shr_u + (i32.add + (set_local $i18 + (i32.shl + (get_local $i30) + (get_local $i2) + ) + ) + (i32.const 245760) + ) + (i32.const 16) + ) + (i32.const 2) + ) ) - (i32.const 15) ) ) + (i32.shr_u + (i32.shl + (get_local $i18) + (get_local $i30) + ) + (i32.const 15) + ) ) - (i32.const 7) ) + (i32.const 7) ) - (i32.const 1) - ) - (i32.shl - (get_local $i5) - (i32.const 1) ) + (i32.const 1) + ) + (i32.shl + (get_local $i5) + (i32.const 1) ) ) ) diff --git a/test/emcc_O2_hello_world.fromasm.imprecise b/test/emcc_O2_hello_world.fromasm.imprecise index 7b630ef8c..26f092448 100644 --- a/test/emcc_O2_hello_world.fromasm.imprecise +++ b/test/emcc_O2_hello_world.fromasm.imprecise @@ -59,8 +59,8 @@ (local $i36 i32) (local $i14 i32) (local $i61 i32) - (local $i2 i32) (local $i53 i32) + (local $i2 i32) (local $i52 i32) (local $i12 i32) (local $i17 i32) @@ -76,8 +76,8 @@ (local $i72 i32) (local $i56 i32) (local $i24 i32) - (local $i9 i32) (local $i16 i32) + (local $i9 i32) (local $i79 i32) (local $i89 i32) (local $i82 i32) @@ -361,48 +361,6 @@ (i32.const 16) ) ) - (set_local $i11 - (i32.and - (i32.shr_u - (set_local $i12 - (i32.shr_u - (get_local $i11) - (get_local $i7) - ) - ) - (i32.const 5) - ) - (i32.const 8) - ) - ) - (set_local $i12 - (i32.and - (i32.shr_u - (set_local $i14 - (i32.shr_u - (get_local $i12) - (get_local $i11) - ) - ) - (i32.const 2) - ) - (i32.const 4) - ) - ) - (set_local $i14 - (i32.and - (i32.shr_u - (set_local $i15 - (i32.shr_u - (get_local $i14) - (get_local $i12) - ) - ) - (i32.const 1) - ) - (i32.const 2) - ) - ) (set_local $i7 (i32.load (set_local $i12 @@ -422,12 +380,51 @@ (i32.or (i32.or (i32.or - (get_local $i11) + (set_local $i11 + (i32.and + (i32.shr_u + (set_local $i12 + (i32.shr_u + (get_local $i11) + (get_local $i7) + ) + ) + (i32.const 5) + ) + (i32.const 8) + ) + ) (get_local $i7) ) - (get_local $i12) + (set_local $i12 + (i32.and + (i32.shr_u + (set_local $i14 + (i32.shr_u + (get_local $i12) + (get_local $i11) + ) + ) + (i32.const 2) + ) + (i32.const 4) + ) + ) + ) + (set_local $i14 + (i32.and + (i32.shr_u + (set_local $i15 + (i32.shr_u + (get_local $i14) + (get_local $i12) + ) + ) + (i32.const 1) + ) + (i32.const 2) + ) ) - (get_local $i14) ) (set_local $i15 (i32.and @@ -709,48 +706,6 @@ (i32.const 16) ) ) - (set_local $i8 - (i32.and - (i32.shr_u - (set_local $i15 - (i32.shr_u - (get_local $i8) - (get_local $i4) - ) - ) - (i32.const 5) - ) - (i32.const 8) - ) - ) - (set_local $i15 - (i32.and - (i32.shr_u - (set_local $i7 - (i32.shr_u - (get_local $i15) - (get_local $i8) - ) - ) - (i32.const 2) - ) - (i32.const 4) - ) - ) - (set_local $i7 - (i32.and - (i32.shr_u - (set_local $i5 - (i32.shr_u - (get_local $i7) - (get_local $i15) - ) - ) - (i32.const 1) - ) - (i32.const 2) - ) - ) (set_local $i5 (i32.sub (i32.and @@ -763,12 +718,51 @@ (i32.or (i32.or (i32.or - (get_local $i8) + (set_local $i8 + (i32.and + (i32.shr_u + (set_local $i15 + (i32.shr_u + (get_local $i8) + (get_local $i4) + ) + ) + (i32.const 5) + ) + (i32.const 8) + ) + ) (get_local $i4) ) - (get_local $i15) + (set_local $i15 + (i32.and + (i32.shr_u + (set_local $i7 + (i32.shr_u + (get_local $i15) + (get_local $i8) + ) + ) + (i32.const 2) + ) + (i32.const 4) + ) + ) + ) + (set_local $i7 + (i32.and + (i32.shr_u + (set_local $i5 + (i32.shr_u + (get_local $i7) + (get_local $i15) + ) + ) + (i32.const 1) + ) + (i32.const 2) + ) ) - (get_local $i7) ) (set_local $i5 (i32.and @@ -1481,87 +1475,84 @@ (set_local $i32 (i32.const 31) ) - (block - (set_local $i17 + (set_local $i32 + (i32.or (i32.and (i32.shr_u + (get_local $i5) (i32.add - (set_local $i12 - (i32.shl - (get_local $i17) - (set_local $i7 - (i32.and - (i32.shr_u - (i32.add - (get_local $i17) - (i32.const 1048320) - ) - (i32.const 16) - ) - (i32.const 8) - ) - ) - ) - ) - (i32.const 520192) - ) - (i32.const 16) - ) - (i32.const 4) - ) - ) - (set_local $i32 - (i32.or - (i32.and - (i32.shr_u - (get_local $i5) - (i32.add - (set_local $i4 - (i32.add - (i32.sub - (i32.const 14) + (set_local $i4 + (i32.add + (i32.sub + (i32.const 14) + (i32.or (i32.or - (i32.or - (get_local $i17) - (get_local $i7) - ) - (set_local $i12 + (set_local $i17 (i32.and (i32.shr_u (i32.add - (set_local $i10 + (set_local $i12 (i32.shl - (get_local $i12) (get_local $i17) + (set_local $i7 + (i32.and + (i32.shr_u + (i32.add + (get_local $i17) + (i32.const 1048320) + ) + (i32.const 16) + ) + (i32.const 8) + ) + ) ) ) - (i32.const 245760) + (i32.const 520192) ) (i32.const 16) ) - (i32.const 2) + (i32.const 4) + ) + ) + (get_local $i7) + ) + (set_local $i12 + (i32.and + (i32.shr_u + (i32.add + (set_local $i10 + (i32.shl + (get_local $i12) + (get_local $i17) + ) + ) + (i32.const 245760) + ) + (i32.const 16) ) + (i32.const 2) ) ) ) - (i32.shr_u - (i32.shl - (get_local $i10) - (get_local $i12) - ) - (i32.const 15) + ) + (i32.shr_u + (i32.shl + (get_local $i10) + (get_local $i12) ) + (i32.const 15) ) ) - (i32.const 7) ) + (i32.const 7) ) - (i32.const 1) - ) - (i32.shl - (get_local $i4) - (i32.const 1) ) + (i32.const 1) + ) + (i32.shl + (get_local $i4) + (i32.const 1) ) ) ) @@ -1668,16 +1659,15 @@ ) ) ) - (set_local $i9 - (i32.load offset=20 - (get_local $i17) - ) - ) (set_local $i16 (if (i32.or (i32.eq - (get_local $i9) + (set_local $i9 + (i32.load offset=20 + (get_local $i17) + ) + ) (i32.const 0) ) (i32.eq @@ -1835,48 +1825,6 @@ (i32.const 16) ) ) - (set_local $i4 - (i32.and - (i32.shr_u - (set_local $i2 - (i32.shr_u - (get_local $i4) - (get_local $i14) - ) - ) - (i32.const 5) - ) - (i32.const 8) - ) - ) - (set_local $i2 - (i32.and - (i32.shr_u - (set_local $i3 - (i32.shr_u - (get_local $i2) - (get_local $i4) - ) - ) - (i32.const 2) - ) - (i32.const 4) - ) - ) - (set_local $i3 - (i32.and - (i32.shr_u - (set_local $i8 - (i32.shr_u - (get_local $i3) - (get_local $i2) - ) - ) - (i32.const 1) - ) - (i32.const 2) - ) - ) (set_local $i42 (i32.load offset=480 (i32.shl @@ -1885,12 +1833,51 @@ (i32.or (i32.or (i32.or - (get_local $i4) + (set_local $i4 + (i32.and + (i32.shr_u + (set_local $i2 + (i32.shr_u + (get_local $i4) + (get_local $i14) + ) + ) + (i32.const 5) + ) + (i32.const 8) + ) + ) (get_local $i14) ) - (get_local $i2) + (set_local $i2 + (i32.and + (i32.shr_u + (set_local $i3 + (i32.shr_u + (get_local $i2) + (get_local $i4) + ) + ) + (i32.const 2) + ) + (i32.const 4) + ) + ) + ) + (set_local $i3 + (i32.and + (i32.shr_u + (set_local $i8 + (i32.shr_u + (get_local $i3) + (get_local $i2) + ) + ) + (i32.const 1) + ) + (i32.const 2) + ) ) - (get_local $i3) ) (set_local $i8 (i32.and @@ -2576,87 +2563,84 @@ (set_local $i52 (i32.const 31) ) - (block - (set_local $i15 + (set_local $i52 + (i32.or (i32.and (i32.shr_u + (get_local $i43) (i32.add - (set_local $i7 - (i32.shl - (get_local $i15) - (set_local $i2 - (i32.and - (i32.shr_u - (i32.add - (get_local $i15) - (i32.const 1048320) - ) - (i32.const 16) - ) - (i32.const 8) - ) - ) - ) - ) - (i32.const 520192) - ) - (i32.const 16) - ) - (i32.const 4) - ) - ) - (set_local $i52 - (i32.or - (i32.and - (i32.shr_u - (get_local $i43) - (i32.add - (set_local $i3 - (i32.add - (i32.sub - (i32.const 14) + (set_local $i3 + (i32.add + (i32.sub + (i32.const 14) + (i32.or (i32.or - (i32.or - (get_local $i15) - (get_local $i2) - ) - (set_local $i7 + (set_local $i15 (i32.and (i32.shr_u (i32.add - (set_local $i4 + (set_local $i7 (i32.shl - (get_local $i7) (get_local $i15) + (set_local $i2 + (i32.and + (i32.shr_u + (i32.add + (get_local $i15) + (i32.const 1048320) + ) + (i32.const 16) + ) + (i32.const 8) + ) + ) ) ) - (i32.const 245760) + (i32.const 520192) ) (i32.const 16) ) - (i32.const 2) + (i32.const 4) ) ) + (get_local $i2) ) - ) - (i32.shr_u - (i32.shl - (get_local $i4) - (get_local $i7) + (set_local $i7 + (i32.and + (i32.shr_u + (i32.add + (set_local $i4 + (i32.shl + (get_local $i7) + (get_local $i15) + ) + ) + (i32.const 245760) + ) + (i32.const 16) + ) + (i32.const 2) + ) ) - (i32.const 15) ) ) + (i32.shr_u + (i32.shl + (get_local $i4) + (get_local $i7) + ) + (i32.const 15) + ) ) - (i32.const 7) ) + (i32.const 7) ) - (i32.const 1) - ) - (i32.shl - (get_local $i3) - (i32.const 1) ) + (i32.const 1) + ) + (i32.shl + (get_local $i3) + (i32.const 1) ) ) ) @@ -3197,26 +3181,25 @@ (i32.const 48) ) ) - (set_local $i55 - (i32.add - (set_local $i43 - (i32.load - (i32.const 656) - ) - ) - (set_local $i44 - (i32.add - (get_local $i31) - (i32.const 47) - ) - ) - ) - ) (if (i32.le_u (set_local $i43 (i32.and - (get_local $i55) + (set_local $i55 + (i32.add + (set_local $i43 + (i32.load + (i32.const 656) + ) + ) + (set_local $i44 + (i32.add + (get_local $i31) + (i32.const 47) + ) + ) + ) + ) (set_local $i54 (i32.sub (i32.const 0) @@ -3684,30 +3667,27 @@ ) (i32.const 0) ) - (block - (set_local $i63 - (call_import $_sbrk - (get_local $i43) + (i32.and + (i32.lt_u + (set_local $i63 + (call_import $_sbrk + (get_local $i43) + ) + ) + (set_local $i43 + (call_import $_sbrk + (i32.const 0) + ) ) ) (i32.and - (i32.lt_u + (i32.ne (get_local $i63) - (set_local $i43 - (call_import $_sbrk - (i32.const 0) - ) - ) + (i32.const -1) ) - (i32.and - (i32.ne - (get_local $i63) - (i32.const -1) - ) - (i32.ne - (get_local $i43) - (i32.const -1) - ) + (i32.ne + (get_local $i43) + (i32.const -1) ) ) ) @@ -4857,34 +4837,6 @@ (br $do-once$67) ) ) - (set_local $i52 - (i32.and - (i32.shr_u - (i32.add - (set_local $i57 - (i32.shl - (get_local $i5) - (set_local $i54 - (i32.and - (i32.shr_u - (i32.add - (get_local $i5) - (i32.const 1048320) - ) - (i32.const 16) - ) - (i32.const 8) - ) - ) - ) - ) - (i32.const 520192) - ) - (i32.const 16) - ) - (i32.const 4) - ) - ) (set_local $i82 (i32.or (i32.and @@ -4897,7 +4849,34 @@ (i32.const 14) (i32.or (i32.or - (get_local $i52) + (set_local $i52 + (i32.and + (i32.shr_u + (i32.add + (set_local $i57 + (i32.shl + (get_local $i5) + (set_local $i54 + (i32.and + (i32.shr_u + (i32.add + (get_local $i5) + (i32.const 1048320) + ) + (i32.const 16) + ) + (i32.const 8) + ) + ) + ) + ) + (i32.const 520192) + ) + (i32.const 16) + ) + (i32.const 4) + ) + ) (get_local $i54) ) (set_local $i57 @@ -5281,32 +5260,31 @@ ) (set_local $i63 (i32.add - (get_local $i44) - (if - (i32.eq - (i32.and - (get_local $i53) - (i32.const 7) - ) - (i32.const 0) - ) - (i32.const 0) - (i32.and - (i32.sub - (i32.const 0) - (get_local $i53) - ) - (i32.const 7) - ) - ) - ) - ) - (set_local $i63 - (i32.add (set_local $i44 (if (i32.lt_u - (get_local $i63) + (set_local $i63 + (i32.add + (get_local $i44) + (if + (i32.eq + (i32.and + (get_local $i53) + (i32.const 7) + ) + (i32.const 0) + ) + (i32.const 0) + (i32.and + (i32.sub + (i32.const 0) + (get_local $i53) + ) + (i32.const 7) + ) + ) + ) + ) (set_local $i53 (i32.add (get_local $i60) @@ -5609,87 +5587,84 @@ (set_local $i89 (i32.const 31) ) - (block - (set_local $i61 + (set_local $i89 + (i32.or (i32.and (i32.shr_u + (get_local $i63) (i32.add - (set_local $i62 - (i32.shl - (get_local $i61) - (set_local $i57 - (i32.and - (i32.shr_u - (i32.add - (get_local $i61) - (i32.const 1048320) - ) - (i32.const 16) - ) - (i32.const 8) - ) - ) - ) - ) - (i32.const 520192) - ) - (i32.const 16) - ) - (i32.const 4) - ) - ) - (set_local $i89 - (i32.or - (i32.and - (i32.shr_u - (get_local $i63) - (i32.add - (set_local $i43 - (i32.add - (i32.sub - (i32.const 14) + (set_local $i43 + (i32.add + (i32.sub + (i32.const 14) + (i32.or (i32.or - (i32.or - (get_local $i61) - (get_local $i57) - ) - (set_local $i62 + (set_local $i61 (i32.and (i32.shr_u (i32.add - (set_local $i5 + (set_local $i62 (i32.shl - (get_local $i62) (get_local $i61) + (set_local $i57 + (i32.and + (i32.shr_u + (i32.add + (get_local $i61) + (i32.const 1048320) + ) + (i32.const 16) + ) + (i32.const 8) + ) + ) ) ) - (i32.const 245760) + (i32.const 520192) ) (i32.const 16) ) - (i32.const 2) + (i32.const 4) ) ) + (get_local $i57) ) - ) - (i32.shr_u - (i32.shl - (get_local $i5) - (get_local $i62) + (set_local $i62 + (i32.and + (i32.shr_u + (i32.add + (set_local $i5 + (i32.shl + (get_local $i62) + (get_local $i61) + ) + ) + (i32.const 245760) + ) + (i32.const 16) + ) + (i32.const 2) + ) ) - (i32.const 15) ) ) + (i32.shr_u + (i32.shl + (get_local $i5) + (get_local $i62) + ) + (i32.const 15) + ) ) - (i32.const 7) ) + (i32.const 7) ) - (i32.const 1) - ) - (i32.shl - (get_local $i43) - (i32.const 1) ) + (i32.const 1) + ) + (i32.shl + (get_local $i43) + (i32.const 1) ) ) ) @@ -7692,87 +7667,84 @@ (set_local $i32 (i32.const 31) ) - (block - (set_local $i2 + (set_local $i32 + (i32.or (i32.and (i32.shr_u + (get_local $i29) (i32.add - (set_local $i30 - (i32.shl - (get_local $i2) - (set_local $i31 - (i32.and - (i32.shr_u - (i32.add - (get_local $i2) - (i32.const 1048320) - ) - (i32.const 16) - ) - (i32.const 8) - ) - ) - ) - ) - (i32.const 520192) - ) - (i32.const 16) - ) - (i32.const 4) - ) - ) - (set_local $i32 - (i32.or - (i32.and - (i32.shr_u - (get_local $i29) - (i32.add - (set_local $i5 - (i32.add - (i32.sub - (i32.const 14) + (set_local $i5 + (i32.add + (i32.sub + (i32.const 14) + (i32.or (i32.or - (i32.or - (get_local $i2) - (get_local $i31) - ) - (set_local $i30 + (set_local $i2 (i32.and (i32.shr_u (i32.add - (set_local $i18 + (set_local $i30 (i32.shl - (get_local $i30) (get_local $i2) + (set_local $i31 + (i32.and + (i32.shr_u + (i32.add + (get_local $i2) + (i32.const 1048320) + ) + (i32.const 16) + ) + (i32.const 8) + ) + ) ) ) - (i32.const 245760) + (i32.const 520192) ) (i32.const 16) ) - (i32.const 2) + (i32.const 4) ) ) + (get_local $i31) ) - ) - (i32.shr_u - (i32.shl - (get_local $i18) - (get_local $i30) + (set_local $i30 + (i32.and + (i32.shr_u + (i32.add + (set_local $i18 + (i32.shl + (get_local $i30) + (get_local $i2) + ) + ) + (i32.const 245760) + ) + (i32.const 16) + ) + (i32.const 2) + ) ) - (i32.const 15) ) ) + (i32.shr_u + (i32.shl + (get_local $i18) + (get_local $i30) + ) + (i32.const 15) + ) ) - (i32.const 7) ) + (i32.const 7) ) - (i32.const 1) - ) - (i32.shl - (get_local $i5) - (i32.const 1) ) + (i32.const 1) + ) + (i32.shl + (get_local $i5) + (i32.const 1) ) ) ) diff --git a/test/emcc_hello_world.fromasm b/test/emcc_hello_world.fromasm index d8a2f161d..71181add9 100644 --- a/test/emcc_hello_world.fromasm +++ b/test/emcc_hello_world.fromasm @@ -3790,7 +3790,6 @@ (local $$conv207 i32) (local $$conv174$lcssa i32) (local $$conv174 i32) - (local $$cond304$i i32) (local $$cond233$i i32) (local $$cmp38$i i32) (local $$cmp37 i32) @@ -3813,7 +3812,6 @@ (local $$add$i$lcssa i32) (local $$add$i$203 i32) (local $$add$i i32) - (local $$92 i32) (local $$49 i32) (local $$29 i32) (local $$255 i32) @@ -3822,15 +3820,11 @@ (local $$231 i32) (local $$223 i32) (local $$219 i32) - (local $$215 i32) (local $$210 i32) (local $$194 i32) (local $$143 i32) (local $$142 i32) - (local $$130 i32) (local $$129 i32) - (local $$118 i32) - (local $$102 i32) (local $$101 i32) (local $$10 i32) (local $$1 i32) @@ -3920,13 +3914,13 @@ (local $$cond629$i i32) (local $$cond43$i i32) (local $$cond426 i32) + (local $$cond304$i i32) (local $$cond245 i32) (local $$cond100$i i32) (local $$cond$i i32) (local $$cnt$1$lcssa i32) (local $$cmp94$i i32) (local $$cmp614$i i32) - (local $$cmp385 i32) (local $$cmp374$i i32) (local $$cmp338$i i32) (local $$cmp299$i i32) @@ -3961,10 +3955,10 @@ (local $$add$ptr311$i i32) (local $$add$ptr213$i i32) (local $$95 i32) + (local $$92 i32) (local $$90 i32) (local $$86 i32) (local $$76 i32) - (local $$67 i32) (local $$65 i32) (local $$60 i32) (local $$59 i32) @@ -3988,11 +3982,10 @@ (local $$225 i32) (local $$217 i32) (local $$216 i32) - (local $$213 i32) + (local $$215 i32) (local $$201 i32) (local $$200 i32) (local $$193 i32) - (local $$188 i32) (local $$187 i32) (local $$18 i32) (local $$179 i32) @@ -4004,16 +3997,17 @@ (local $$161 i32) (local $$16 i32) (local $$159 i32) - (local $$153 i32) (local $$151 i32) (local $$144 i32) (local $$135 i32) (local $$131 i32) + (local $$130 i32) (local $$121 i32) + (local $$118 i32) (local $$116 i32) - (local $$109 i32) (local $$107 i32) (local $$103 i32) + (local $$102 i32) (local $$0 i32) (local $$$l10n$0 i32) (local $$$$i i32) @@ -4308,6 +4302,7 @@ (local $$cmp390$i i32) (local $$cmp390 i32) (local $$cmp385$i i32) + (local $$cmp385 i32) (local $$cmp377$314 i32) (local $$cmp377 i32) (local $$cmp363$525$i i32) @@ -4445,6 +4440,7 @@ (local $$70 i32) (local $$69 i32) (local $$68 i32) + (local $$67 i32) (local $$66 i32) (local $$64 i32) (local $$63 i32) @@ -4516,6 +4512,7 @@ (local $$22 i32) (local $$218 i32) (local $$214 i32) + (local $$213 i32) (local $$212 i32) (local $$21 i32) (local $$209 i32) @@ -4537,6 +4534,7 @@ (local $$190 i32) (local $$19 i32) (local $$189 i32) + (local $$188 i32) (local $$186 i32) (local $$185 i32) (local $$184 i32) @@ -4562,6 +4560,7 @@ (local $$156 i32) (local $$155 i32) (local $$154 i32) + (local $$153 i32) (local $$152 i32) (local $$150 i32) (local $$15 i32) @@ -4593,6 +4592,7 @@ (local $$111 i32) (local $$110 i32) (local $$11 i32) + (local $$109 i32) (local $$108 i32) (local $$106 i32) (local $$105 i32) @@ -6520,17 +6520,16 @@ ) (br $switch$24) ) - (set_local $$118 - (i32.load - (set_local $$116 - (get_local $$arg) - ) - ) - ) (if (i32.and (i32.eq - (get_local $$118) + (set_local $$118 + (i32.load + (set_local $$116 + (get_local $$arg) + ) + ) + ) (i32.const 0) ) (i32.eq @@ -6574,17 +6573,16 @@ (i32.const 255) ) ) - (set_local $$130 - (call $_bitshift64Lshr - (get_local $$126) - (get_local $$129) - (i32.const 3) - ) - ) (if (i32.and (i32.eq - (get_local $$130) + (set_local $$130 + (call $_bitshift64Lshr + (get_local $$126) + (get_local $$129) + (i32.const 3) + ) + ) (i32.const 0) ) (i32.eq @@ -6806,16 +6804,13 @@ ) (br $switch$24) ) - (set_local $$67 + (set_local $$148 (i32.load (set_local $$65 (get_local $$arg) ) ) ) - (set_local $$148 - (get_local $$67) - ) (set_local $$149 (i32.load offset=4 (get_local $$65) @@ -7068,25 +7063,22 @@ (i32.const 24) ) ) - (set_local $$188 - (i32.lt_u - (set_local $$187 - (i32.and - (i32.load offset=4 - (i32.load - (i32.const 24) + (block $do-once$56 + (if + (i32.or + (i32.lt_u + (set_local $$187 + (i32.and + (i32.load offset=4 + (i32.load + (i32.const 24) + ) + ) + (i32.const 2146435072) ) ) (i32.const 2146435072) ) - ) - (i32.const 2146435072) - ) - ) - (block $do-once$56 - (if - (i32.or - (get_local $$188) (i32.and (i32.eq (get_local $$187) @@ -7807,28 +7799,24 @@ (get_local $$d$0$542$i) ) (loop $while-out$72 $while-in$73 - (set_local $$213 - (call $_bitshift64Shl - (i32.load - (get_local $$d$0545$i) - ) - (i32.const 0) - (get_local $$cond233$i) - ) - ) - (set_local $$215 - (call $_i64Add - (get_local $$213) - (i32.load - (i32.const 168) - ) - (get_local $$carry$0544$i) - (i32.const 0) - ) - ) (set_local $$217 (call $___uremdi3 - (get_local $$215) + (set_local $$215 + (call $_i64Add + (call $_bitshift64Shl + (i32.load + (get_local $$d$0545$i) + ) + (i32.const 0) + (get_local $$cond233$i) + ) + (i32.load + (i32.const 168) + ) + (get_local $$carry$0544$i) + (i32.const 0) + ) + ) (set_local $$216 (i32.load (i32.const 168) @@ -8213,16 +8201,15 @@ ) ) ) - (set_local $$cond304$i - (if - (get_local $$cmp299$i) - (get_local $$arraydecay208$add$ptr213$i) - (get_local $$incdec$ptr292$a$3573$i) - ) - ) (set_local $$add$ptr311$i (i32.add - (get_local $$cond304$i) + (set_local $$cond304$i + (if + (get_local $$cmp299$i) + (get_local $$arraydecay208$add$ptr213$i) + (get_local $$incdec$ptr292$a$3573$i) + ) + ) (i32.shl (get_local $$add275$i) (i32.const 2) @@ -10277,13 +10264,6 @@ (set_local $label (i32.const 0) ) - (set_local $$92 - (i32.load - (set_local $$90 - (get_local $$arg) - ) - ) - ) (set_local $$and249 (i32.and (get_local $$t$1) @@ -10293,7 +10273,13 @@ (if (i32.and (i32.eq - (get_local $$92) + (set_local $$92 + (i32.load + (set_local $$90 + (get_local $$arg) + ) + ) + ) (i32.const 0) ) (i32.eq @@ -10362,17 +10348,16 @@ (i32.const 255) ) ) - (set_local $$102 - (call $_bitshift64Lshr - (get_local $$99) - (get_local $$101) - (i32.const 4) - ) - ) (if (i32.and (i32.eq - (get_local $$102) + (set_local $$102 + (call $_bitshift64Lshr + (get_local $$99) + (get_local $$101) + (i32.const 4) + ) + ) (i32.const 0) ) (i32.eq @@ -10404,13 +10389,6 @@ ) (br $while-in$130) ) - (set_local $$109 - (i32.load - (set_local $$107 - (get_local $$arg) - ) - ) - ) (if (i32.or (i32.eq @@ -10422,7 +10400,11 @@ ) (i32.and (i32.eq - (get_local $$109) + (i32.load + (set_local $$107 + (get_local $$arg) + ) + ) (i32.const 0) ) (i32.eq @@ -10621,20 +10603,17 @@ (br $while-out$131) ) ) - (set_local $$cmp385 - (i32.lt_s - (set_local $$call384 - (call $_wctomb - (get_local $$mb) - (get_local $$177) - ) - ) - (i32.const 0) - ) - ) (if (i32.or - (get_local $$cmp385) + (i32.lt_s + (set_local $$call384 + (call $_wctomb + (get_local $$mb) + (get_local $$177) + ) + ) + (i32.const 0) + ) (i32.gt_u (get_local $$call384) (i32.sub @@ -10902,13 +10881,6 @@ (get_local $$fl$4) ) ) - (set_local $$153 - (i32.load - (set_local $$151 - (get_local $$arg) - ) - ) - ) (if (i32.or (i32.ne @@ -10918,7 +10890,11 @@ (set_local $$159 (i32.or (i32.ne - (get_local $$153) + (i32.load + (set_local $$151 + (get_local $$arg) + ) + ) (i32.const 0) ) (i32.ne @@ -12548,8 +12524,6 @@ (local $$shr i32) (local $$rsize$0$i i32) (local $$cond4$i i32) - (local $$call83$i i32) - (local $$call131$i i32) (local $$br$2$ph$i i32) (local $$arrayidx289$i i32) (local $$arrayidx223$i$i i32) @@ -12579,7 +12553,9 @@ (local $$rsize$1$i i32) (local $$rsize$0$i$152 i32) (local $$i$01$i$i i32) + (local $$call83$i i32) (local $$call37$i i32) + (local $$call131$i i32) (local $$call$i$i i32) (local $$arrayidx91$i$i i32) (local $$arrayidx355$i i32) @@ -12651,7 +12627,6 @@ (local $$and37$i$i i32) (local $$and3$i i32) (local $$and104$i i32) - (local $$add9$i i32) (local $$add8 i32) (local $$add64 i32) (local $$add54$i i32) @@ -12688,25 +12663,21 @@ (local $$$pre$phi$i$iZ2D i32) (local $$$pre$phi$i$57$iZ2D i32) (local $$$pre$phi$i$178Z2D i32) - (local $$sub80$i$i i32) (local $$sub70$i i32) (local $$sub63$i i32) (local $$sub44 i32) (local $$sub42 i32) (local $$sub41$i i32) (local $$sub381$i i32) - (local $$sub343$i i32) (local $$sub313$i$i i32) (local $$sub31$rsize$0$i i32) (local $$sub31$i i32) (local $$sub30$i i32) - (local $$sub275$i$i i32) (local $$sub260$i i32) (local $$sub2$i i32) (local $$sub190 i32) (local $$sub172$i i32) (local $$sub16$i$i i32) - (local $$sub14$i i32) (local $$sub113$i$i i32) (local $$sub112$i i32) (local $$sub101$i i32) @@ -12791,13 +12762,7 @@ (local $$cond$i i32) (local $$cmp7$i$i i32) (local $$cmp49$i i32) - (local $$cmp45$i$155 i32) - (local $$cmp422$i i32) - (local $$cmp350$i$i i32) (local $$cmp32$i i32) - (local $$cmp19$i i32) - (local $$cmp159$i$199 i32) - (local $$cmp153$i$i i32) (local $$cmp102$i i32) (local $$cmp$i$34$i i32) (local $$cmp$i$23$i i32) @@ -12870,30 +12835,16 @@ (local $$and12$i i32) (local $$and$i$143 i32) (local $$and i32) - (local $$add90$i i32) - (local $$add86$i i32) + (local $$add9$i i32) (local $$add83$i$i i32) - (local $$add82$i i32) - (local $$add78$i i32) - (local $$add74$i$i i32) - (local $$add62 i32) - (local $$add58 i32) - (local $$add54 i32) - (local $$add50 i32) (local $$add346$i i32) - (local $$add337$i i32) (local $$add278$i$i i32) - (local $$add269$i$i i32) (local $$add268$i i32) (local $$add246$i i32) - (local $$add18$i i32) (local $$add177$i i32) (local $$add17$i$183 i32) (local $$add17$i i32) (local $$add144 i32) - (local $$add14$i i32) - (local $$add101$i i32) - (local $$add10$i i32) (local $$add$ptr8$i122$i i32) (local $$add$ptr7$i$i i32) (local $$add$ptr262$i i32) @@ -12903,8 +12854,6 @@ (local $$add$ptr$i$i$i i32) (local $$add$i$i i32) (local $$add$i$180 i32) - (local $$add$i$146 i32) - (local $$add$i i32) (local $$T$0$i$lcssa293 i32) (local $$T$0$i$i$lcssa284 i32) (local $$T$0$i$58$i$lcssa283 i32) @@ -13007,6 +12956,7 @@ (local $$tobool107 i32) (local $$tobool$i$i i32) (local $$sub99$i i32) + (local $$sub80$i$i i32) (local $$sub76$i$i i32) (local $$sub71$i$i i32) (local $$sub67$i$i i32) @@ -13014,13 +12964,16 @@ (local $$sub6$i i32) (local $$sub50$i i32) (local $$sub4$i i32) + (local $$sub343$i i32) (local $$sub339$i i32) (local $$sub334$i i32) (local $$sub329$i i32) + (local $$sub275$i$i i32) (local $$sub271$i$i i32) (local $$sub266$i$i i32) (local $$sub262$i$i i32) (local $$sub22$i i32) + (local $$sub14$i i32) (local $$sub118$i i32) (local $$sub10$i i32) (local $$sub$ptr$sub$i$41$i i32) @@ -13298,9 +13251,11 @@ (local $$cmp46$i$i i32) (local $$cmp46$i$49$i i32) (local $$cmp46$i i32) + (local $$cmp45$i$155 i32) (local $$cmp45$i i32) (local $$cmp44$i$i i32) (local $$cmp43$i i32) + (local $$cmp422$i i32) (local $$cmp42$i$i i32) (local $$cmp41$i$i i32) (local $$cmp401$i i32) @@ -13312,6 +13267,7 @@ (local $$cmp374$i i32) (local $$cmp36$i$i i32) (local $$cmp36$i i32) + (local $$cmp350$i$i i32) (local $$cmp35$i i32) (local $$cmp34$i$i i32) (local $$cmp34$i i32) @@ -13360,6 +13316,7 @@ (local $$cmp198$i i32) (local $$cmp191$i i32) (local $$cmp190$i i32) + (local $$cmp19$i i32) (local $$cmp189$i$i i32) (local $$cmp186$i i32) (local $$cmp186 i32) @@ -13376,12 +13333,14 @@ (local $$cmp162 i32) (local $$cmp160$i$i i32) (local $$cmp16 i32) + (local $$cmp159$i$199 i32) (local $$cmp159$i i32) (local $$cmp157$i i32) (local $$cmp156$i$i i32) (local $$cmp156$i i32) (local $$cmp156 i32) (local $$cmp155$i i32) + (local $$cmp153$i$i i32) (local $$cmp152$i i32) (local $$cmp151$i i32) (local $$cmp15$i i32) @@ -13538,18 +13497,29 @@ (local $$and$i$12$i i32) (local $$and$i i32) (local $$add92$i i32) + (local $$add90$i i32) (local $$add88$i$i i32) + (local $$add86$i i32) (local $$add85$i$i i32) + (local $$add82$i i32) (local $$add79$i$i i32) + (local $$add78$i i32) (local $$add77$i i32) + (local $$add74$i$i i32) + (local $$add62 i32) + (local $$add58 i32) + (local $$add54 i32) (local $$add51$i i32) + (local $$add50 i32) (local $$add46$i i32) (local $$add351$i i32) (local $$add348$i i32) (local $$add342$i i32) + (local $$add337$i i32) (local $$add283$i$i i32) (local $$add280$i$i i32) (local $$add274$i$i i32) + (local $$add269$i$i i32) (local $$add22$i i32) (local $$add215$i i32) (local $$add212$i i32) @@ -13557,9 +13527,13 @@ (local $$add20$i i32) (local $$add2 i32) (local $$add19$i i32) + (local $$add18$i i32) (local $$add140$i i32) + (local $$add14$i i32) (local $$add13$i i32) (local $$add110$i i32) + (local $$add101$i i32) + (local $$add10$i i32) (local $$add$ptr98 i32) (local $$add$ptr6$i$i$i i32) (local $$add$ptr6$i$i i32) @@ -13589,6 +13563,8 @@ (local $$add$ptr$i$11$i i32) (local $$add$ptr$i$1$i$i i32) (local $$add$ptr i32) + (local $$add$i$146 i32) + (local $$add$i i32) (local $$99 i32) (local $$96 i32) (local $$93 i32) @@ -13934,82 +13910,6 @@ (i32.const 16) ) ) - (set_local $$add50 - (i32.or - (set_local $$and49 - (i32.and - (i32.shr_u - (set_local $$shr47 - (i32.shr_u - (get_local $$sub44) - (get_local $$and46) - ) - ) - (i32.const 5) - ) - (i32.const 8) - ) - ) - (get_local $$and46) - ) - ) - (set_local $$add54 - (i32.or - (get_local $$add50) - (set_local $$and53 - (i32.and - (i32.shr_u - (set_local $$shr51 - (i32.shr_u - (get_local $$shr47) - (get_local $$and49) - ) - ) - (i32.const 2) - ) - (i32.const 4) - ) - ) - ) - ) - (set_local $$add58 - (i32.or - (get_local $$add54) - (set_local $$and57 - (i32.and - (i32.shr_u - (set_local $$shr55 - (i32.shr_u - (get_local $$shr51) - (get_local $$and53) - ) - ) - (i32.const 1) - ) - (i32.const 2) - ) - ) - ) - ) - (set_local $$add62 - (i32.or - (get_local $$add58) - (set_local $$and61 - (i32.and - (i32.shr_u - (set_local $$shr59 - (i32.shr_u - (get_local $$shr55) - (get_local $$and57) - ) - ) - (i32.const 1) - ) - (i32.const 1) - ) - ) - ) - ) (set_local $$10 (i32.load (set_local $$fd69 @@ -14025,7 +13925,71 @@ (i32.shl (set_local $$add64 (i32.add - (get_local $$add62) + (i32.or + (i32.or + (i32.or + (i32.or + (set_local $$and49 + (i32.and + (i32.shr_u + (set_local $$shr47 + (i32.shr_u + (get_local $$sub44) + (get_local $$and46) + ) + ) + (i32.const 5) + ) + (i32.const 8) + ) + ) + (get_local $$and46) + ) + (set_local $$and53 + (i32.and + (i32.shr_u + (set_local $$shr51 + (i32.shr_u + (get_local $$shr47) + (get_local $$and49) + ) + ) + (i32.const 2) + ) + (i32.const 4) + ) + ) + ) + (set_local $$and57 + (i32.and + (i32.shr_u + (set_local $$shr55 + (i32.shr_u + (get_local $$shr51) + (get_local $$and53) + ) + ) + (i32.const 1) + ) + (i32.const 2) + ) + ) + ) + (set_local $$and61 + (i32.and + (i32.shr_u + (set_local $$shr59 + (i32.shr_u + (get_local $$shr55) + (get_local $$and57) + ) + ) + (i32.const 1) + ) + (i32.const 1) + ) + ) + ) (i32.shr_u (get_local $$shr59) (get_local $$and61) @@ -14305,82 +14269,6 @@ (i32.const 16) ) ) - (set_local $$add$i - (i32.or - (set_local $$and6$i - (i32.and - (i32.shr_u - (set_local $$shr4$i - (i32.shr_u - (get_local $$sub2$i) - (get_local $$and3$i) - ) - ) - (i32.const 5) - ) - (i32.const 8) - ) - ) - (get_local $$and3$i) - ) - ) - (set_local $$add10$i - (i32.or - (get_local $$add$i) - (set_local $$and9$i - (i32.and - (i32.shr_u - (set_local $$shr7$i - (i32.shr_u - (get_local $$shr4$i) - (get_local $$and6$i) - ) - ) - (i32.const 2) - ) - (i32.const 4) - ) - ) - ) - ) - (set_local $$add14$i - (i32.or - (get_local $$add10$i) - (set_local $$and13$i - (i32.and - (i32.shr_u - (set_local $$shr11$i - (i32.shr_u - (get_local $$shr7$i) - (get_local $$and9$i) - ) - ) - (i32.const 1) - ) - (i32.const 2) - ) - ) - ) - ) - (set_local $$add18$i - (i32.or - (get_local $$add14$i) - (set_local $$and17$i - (i32.and - (i32.shr_u - (set_local $$shr15$i - (i32.shr_u - (get_local $$shr11$i) - (get_local $$and13$i) - ) - ) - (i32.const 1) - ) - (i32.const 1) - ) - ) - ) - ) (set_local $$rsize$0$i (i32.sub (i32.and @@ -14389,7 +14277,71 @@ (i32.load offset=480 (i32.shl (i32.add - (get_local $$add18$i) + (i32.or + (i32.or + (i32.or + (i32.or + (set_local $$and6$i + (i32.and + (i32.shr_u + (set_local $$shr4$i + (i32.shr_u + (get_local $$sub2$i) + (get_local $$and3$i) + ) + ) + (i32.const 5) + ) + (i32.const 8) + ) + ) + (get_local $$and3$i) + ) + (set_local $$and9$i + (i32.and + (i32.shr_u + (set_local $$shr7$i + (i32.shr_u + (get_local $$shr4$i) + (get_local $$and6$i) + ) + ) + (i32.const 2) + ) + (i32.const 4) + ) + ) + ) + (set_local $$and13$i + (i32.and + (i32.shr_u + (set_local $$shr11$i + (i32.shr_u + (get_local $$shr7$i) + (get_local $$and9$i) + ) + ) + (i32.const 1) + ) + (i32.const 2) + ) + ) + ) + (set_local $$and17$i + (i32.and + (i32.shr_u + (set_local $$shr15$i + (i32.shr_u + (get_local $$shr11$i) + (get_local $$and13$i) + ) + ) + (i32.const 1) + ) + (i32.const 1) + ) + ) + ) (i32.shr_u (get_local $$shr15$i) (get_local $$and17$i) @@ -15157,69 +15109,63 @@ (i32.const 31) ) (block - (set_local $$add$i$146 - (i32.or - (set_local $$and8$i - (i32.and - (i32.shr_u - (i32.add - (set_local $$shl$i$144 - (i32.shl - (get_local $$shr$i$139) - (set_local $$and$i$143 - (i32.and - (i32.shr_u - (i32.add - (get_local $$shr$i$139) - (i32.const 1048320) + (set_local $$shl18$i + (i32.shl + (set_local $$add17$i + (i32.add + (i32.sub + (i32.const 14) + (i32.or + (i32.or + (set_local $$and8$i + (i32.and + (i32.shr_u + (i32.add + (set_local $$shl$i$144 + (i32.shl + (get_local $$shr$i$139) + (set_local $$and$i$143 + (i32.and + (i32.shr_u + (i32.add + (get_local $$shr$i$139) + (i32.const 1048320) + ) + (i32.const 16) + ) + (i32.const 8) + ) + ) + ) ) - (i32.const 16) + (i32.const 520192) ) - (i32.const 8) + (i32.const 16) ) + (i32.const 4) ) ) + (get_local $$and$i$143) ) - (i32.const 520192) - ) - (i32.const 16) - ) - (i32.const 4) - ) - ) - (get_local $$and$i$143) - ) - ) - (set_local $$sub14$i - (i32.sub - (i32.const 14) - (i32.or - (get_local $$add$i$146) - (set_local $$and12$i - (i32.and - (i32.shr_u - (i32.add - (set_local $$shl9$i - (i32.shl - (get_local $$shl$i$144) - (get_local $$and8$i) + (set_local $$and12$i + (i32.and + (i32.shr_u + (i32.add + (set_local $$shl9$i + (i32.shl + (get_local $$shl$i$144) + (get_local $$and8$i) + ) + ) + (i32.const 245760) + ) + (i32.const 16) ) + (i32.const 2) ) - (i32.const 245760) ) - (i32.const 16) ) - (i32.const 2) ) - ) - ) - ) - ) - (set_local $$shl18$i - (i32.shl - (set_local $$add17$i - (i32.add - (get_local $$sub14$i) (i32.shr_u (i32.shl (get_local $$shl9$i) @@ -15371,20 +15317,17 @@ ) ) ) - (set_local $$cmp45$i$155 - (i32.eq - (set_local $$54 - (i32.load offset=20 - (get_local $$t$0$i$151) - ) - ) - (i32.const 0) - ) - ) (set_local $$rst$1$i (if (i32.or - (get_local $$cmp45$i$155) + (i32.eq + (set_local $$54 + (i32.load offset=20 + (get_local $$t$0$i$151) + ) + ) + (i32.const 0) + ) (i32.eq (get_local $$54) (set_local $$55 @@ -15536,87 +15479,75 @@ (i32.const 16) ) ) - (set_local $$add78$i - (i32.or - (set_local $$and77$i - (i32.and - (i32.shr_u - (set_local $$shr75$i - (i32.shr_u - (get_local $$sub70$i) - (get_local $$and73$i) - ) - ) - (i32.const 5) - ) - (i32.const 8) - ) - ) - (get_local $$and73$i) - ) - ) - (set_local $$add82$i - (i32.or - (get_local $$add78$i) - (set_local $$and81$i - (i32.and - (i32.shr_u - (set_local $$shr79$i - (i32.shr_u - (get_local $$shr75$i) - (get_local $$and77$i) + (set_local $$t$4$ph$i + (i32.load offset=480 + (i32.shl + (i32.add + (i32.or + (i32.or + (i32.or + (i32.or + (set_local $$and77$i + (i32.and + (i32.shr_u + (set_local $$shr75$i + (i32.shr_u + (get_local $$sub70$i) + (get_local $$and73$i) + ) + ) + (i32.const 5) + ) + (i32.const 8) + ) + ) + (get_local $$and73$i) + ) + (set_local $$and81$i + (i32.and + (i32.shr_u + (set_local $$shr79$i + (i32.shr_u + (get_local $$shr75$i) + (get_local $$and77$i) + ) + ) + (i32.const 2) + ) + (i32.const 4) + ) + ) ) - ) - (i32.const 2) - ) - (i32.const 4) - ) - ) - ) - ) - (set_local $$add86$i - (i32.or - (get_local $$add82$i) - (set_local $$and85$i - (i32.and - (i32.shr_u - (set_local $$shr83$i - (i32.shr_u - (get_local $$shr79$i) - (get_local $$and81$i) + (set_local $$and85$i + (i32.and + (i32.shr_u + (set_local $$shr83$i + (i32.shr_u + (get_local $$shr79$i) + (get_local $$and81$i) + ) + ) + (i32.const 1) + ) + (i32.const 2) + ) ) ) - (i32.const 1) - ) - (i32.const 2) - ) - ) - ) - ) - (set_local $$add90$i - (i32.or - (get_local $$add86$i) - (set_local $$and89$i - (i32.and - (i32.shr_u - (set_local $$shr87$i - (i32.shr_u - (get_local $$shr83$i) - (get_local $$and85$i) + (set_local $$and89$i + (i32.and + (i32.shr_u + (set_local $$shr87$i + (i32.shr_u + (get_local $$shr83$i) + (get_local $$and85$i) + ) + ) + (i32.const 1) + ) + (i32.const 1) ) ) - (i32.const 1) ) - (i32.const 1) - ) - ) - ) - ) - (set_local $$t$4$ph$i - (i32.load offset=480 - (i32.shl - (i32.add - (get_local $$add90$i) (i32.shr_u (get_local $$shr87$i) (get_local $$and89$i) @@ -16380,69 +16311,63 @@ (i32.const 31) ) (block - (set_local $$add337$i - (i32.or - (set_local $$and336$i - (i32.and - (i32.shr_u - (i32.add - (set_local $$shl333$i - (i32.shl - (get_local $$shr318$i) - (set_local $$and331$i - (i32.and - (i32.shr_u - (i32.add - (get_local $$shr318$i) - (i32.const 1048320) + (set_local $$shl347$i + (i32.shl + (set_local $$add346$i + (i32.add + (i32.sub + (i32.const 14) + (i32.or + (i32.or + (set_local $$and336$i + (i32.and + (i32.shr_u + (i32.add + (set_local $$shl333$i + (i32.shl + (get_local $$shr318$i) + (set_local $$and331$i + (i32.and + (i32.shr_u + (i32.add + (get_local $$shr318$i) + (i32.const 1048320) + ) + (i32.const 16) + ) + (i32.const 8) + ) + ) + ) ) - (i32.const 16) + (i32.const 520192) ) - (i32.const 8) + (i32.const 16) ) + (i32.const 4) ) ) + (get_local $$and331$i) ) - (i32.const 520192) - ) - (i32.const 16) - ) - (i32.const 4) - ) - ) - (get_local $$and331$i) - ) - ) - (set_local $$sub343$i - (i32.sub - (i32.const 14) - (i32.or - (get_local $$add337$i) - (set_local $$and341$i - (i32.and - (i32.shr_u - (i32.add - (set_local $$shl338$i - (i32.shl - (get_local $$shl333$i) - (get_local $$and336$i) + (set_local $$and341$i + (i32.and + (i32.shr_u + (i32.add + (set_local $$shl338$i + (i32.shl + (get_local $$shl333$i) + (get_local $$and336$i) + ) + ) + (i32.const 245760) + ) + (i32.const 16) ) + (i32.const 2) ) - (i32.const 245760) ) - (i32.const 16) ) - (i32.const 2) ) - ) - ) - ) - ) - (set_local $$shl347$i - (i32.shl - (set_local $$add346$i - (i32.add - (get_local $$sub343$i) (i32.shr_u (i32.shl (get_local $$shl338$i) @@ -16687,8 +16612,8 @@ (get_local $label) (i32.const 148) ) - (block - (set_local $$cmp422$i + (if + (i32.and (i32.ge_u (set_local $$91 (i32.load @@ -16706,40 +16631,35 @@ ) ) ) + (i32.ge_u + (get_local $$T$0$i$lcssa) + (get_local $$92) + ) ) - (if - (i32.and - (get_local $$cmp422$i) - (i32.ge_u - (get_local $$T$0$i$lcssa) - (get_local $$92) - ) + (block + (i32.store offset=12 + (get_local $$91) + (get_local $$add$ptr$i$161) ) - (block - (i32.store offset=12 - (get_local $$91) - (get_local $$add$ptr$i$161) - ) - (i32.store - (get_local $$fd416$i) - (get_local $$add$ptr$i$161) - ) - (i32.store offset=8 - (get_local $$add$ptr$i$161) - (get_local $$91) - ) - (i32.store offset=12 - (get_local $$add$ptr$i$161) - (get_local $$T$0$i$lcssa) - ) - (i32.store offset=24 - (get_local $$add$ptr$i$161) - (i32.const 0) - ) - (br $do-once$29) + (i32.store + (get_local $$fd416$i) + (get_local $$add$ptr$i$161) ) - (call_import $_abort) + (i32.store offset=8 + (get_local $$add$ptr$i$161) + (get_local $$91) + ) + (i32.store offset=12 + (get_local $$add$ptr$i$161) + (get_local $$T$0$i$lcssa) + ) + (i32.store offset=24 + (get_local $$add$ptr$i$161) + (i32.const 0) + ) + (br $do-once$29) ) + (call_import $_abort) ) ) ) @@ -16999,27 +16919,26 @@ (i32.const 48) ) ) - (set_local $$add9$i - (i32.add - (set_local $$100 - (i32.load - (i32.const 656) - ) - ) - (set_local $$sub$i$181 - (i32.add - (get_local $$nb$0) - (i32.const 47) - ) - ) - ) - ) (if (i32.eqz (i32.gt_u (set_local $$and11$i (i32.and - (get_local $$add9$i) + (set_local $$add9$i + (i32.add + (set_local $$100 + (i32.load + (i32.const 656) + ) + ) + (set_local $$sub$i$181 + (i32.add + (get_local $$nb$0) + (i32.const 47) + ) + ) + ) + ) (set_local $$neg$i$182 (i32.sub (i32.const 0) @@ -17046,8 +16965,8 @@ (i32.const 0) ) ) - (block - (set_local $$cmp19$i + (if + (i32.or (i32.le_u (set_local $$add17$i$183 (i32.add @@ -17061,19 +16980,14 @@ ) (get_local $$102) ) - ) - (if - (i32.or - (get_local $$cmp19$i) - (i32.gt_u - (get_local $$add17$i$183) - (get_local $$101) - ) - ) - (return - (i32.const 0) + (i32.gt_u + (get_local $$add17$i$183) + (get_local $$101) ) ) + (return + (i32.const 0) + ) ) ) (block $label$break$L257 @@ -17179,54 +17093,51 @@ ) (i32.const 2147483647) ) - (block - (set_local $$call83$i - (call_import $_sbrk - (get_local $$and80$i) - ) - ) - (if - (i32.eq - (get_local $$call83$i) - (i32.add - (i32.load - (get_local $$base$i$i$lcssa) - ) - (i32.load - (get_local $$size$i$i$lcssa) - ) + (if + (i32.eq + (set_local $$call83$i + (call_import $_sbrk + (get_local $$and80$i) ) ) - (if - (i32.eqz - (i32.eq - (get_local $$call83$i) - (i32.const -1) - ) + (i32.add + (i32.load + (get_local $$base$i$i$lcssa) ) - (block - (set_local $$tbase$796$i - (get_local $$call83$i) - ) - (set_local $$tsize$795$i - (get_local $$and80$i) - ) - (set_local $label - (i32.const 193) - ) - (br $label$break$L257) + (i32.load + (get_local $$size$i$i$lcssa) + ) + ) + ) + (if + (i32.eqz + (i32.eq + (get_local $$call83$i) + (i32.const -1) ) ) (block - (set_local $$br$2$ph$i + (set_local $$tbase$796$i (get_local $$call83$i) ) - (set_local $$ssize$2$ph$i + (set_local $$tsize$795$i (get_local $$and80$i) ) (set_local $label - (i32.const 183) + (i32.const 193) ) + (br $label$break$L257) + ) + ) + (block + (set_local $$br$2$ph$i + (get_local $$call83$i) + ) + (set_local $$ssize$2$ph$i + (get_local $$and80$i) + ) + (set_local $label + (i32.const 183) ) ) ) @@ -17409,59 +17320,54 @@ ) ) ) - (block - (set_local $$add101$i - (i32.add - (i32.sub - (get_local $$sub$i$181) - (get_local $$ssize$2$ph$i) - ) - (set_local $$115 - (i32.load - (i32.const 656) + (if + (i32.lt_u + (set_local $$and104$i + (i32.and + (i32.add + (i32.sub + (get_local $$sub$i$181) + (get_local $$ssize$2$ph$i) + ) + (set_local $$115 + (i32.load + (i32.const 656) + ) + ) + ) + (i32.sub + (i32.const 0) + (get_local $$115) ) ) ) + (i32.const 2147483647) ) (if - (i32.lt_u - (set_local $$and104$i - (i32.and - (get_local $$add101$i) - (i32.sub - (i32.const 0) - (get_local $$115) - ) - ) + (i32.eq + (call_import $_sbrk + (get_local $$and104$i) ) - (i32.const 2147483647) + (i32.const -1) ) - (if - (i32.eq - (call_import $_sbrk - (get_local $$and104$i) - ) - (i32.const -1) - ) - (block - (call_import $_sbrk - (get_local $$sub112$i) - ) - (br $label$break$L279) + (block + (call_import $_sbrk + (get_local $$sub112$i) ) - (block - (set_local $$ssize$5$i - (i32.add - (get_local $$and104$i) - (get_local $$ssize$2$ph$i) - ) + (br $label$break$L279) + ) + (block + (set_local $$ssize$5$i + (i32.add + (get_local $$and104$i) + (get_local $$ssize$2$ph$i) ) - (br $do-once$42) ) + (br $do-once$42) ) - (set_local $$ssize$5$i - (get_local $$ssize$2$ph$i) - ) + ) + (set_local $$ssize$5$i + (get_local $$ssize$2$ph$i) ) ) (set_local $$ssize$5$i @@ -17521,15 +17427,14 @@ (i32.const 2147483647) ) (block - (set_local $$call131$i - (call_import $_sbrk - (get_local $$and11$i) - ) - ) (set_local $$or$cond4$i (i32.and (i32.ne - (get_local $$call131$i) + (set_local $$call131$i + (call_import $_sbrk + (get_local $$and11$i) + ) + ) (i32.const -1) ) (i32.ne @@ -17619,19 +17524,16 @@ (i32.const 0) ) (block - (set_local $$cmp159$i$199 - (i32.eq - (set_local $$120 - (i32.load - (i32.const 192) - ) - ) - (i32.const 0) - ) - ) (if (i32.or - (get_local $$cmp159$i$199) + (i32.eq + (set_local $$120 + (i32.load + (i32.const 192) + ) + ) + (i32.const 0) + ) (i32.lt_u (get_local $$tbase$796$i) (get_local $$120) @@ -18965,69 +18867,63 @@ (br $do-once$69) ) ) - (set_local $$add269$i$i - (i32.or - (set_local $$and268$i$i - (i32.and - (i32.shr_u - (i32.add - (set_local $$shl265$i$i - (i32.shl - (get_local $$shr253$i$i) - (set_local $$and264$i$i - (i32.and - (i32.shr_u - (i32.add - (get_local $$shr253$i$i) - (i32.const 1048320) + (set_local $$shl279$i$i + (i32.shl + (set_local $$add278$i$i + (i32.add + (i32.sub + (i32.const 14) + (i32.or + (i32.or + (set_local $$and268$i$i + (i32.and + (i32.shr_u + (i32.add + (set_local $$shl265$i$i + (i32.shl + (get_local $$shr253$i$i) + (set_local $$and264$i$i + (i32.and + (i32.shr_u + (i32.add + (get_local $$shr253$i$i) + (i32.const 1048320) + ) + (i32.const 16) + ) + (i32.const 8) + ) + ) + ) ) - (i32.const 16) + (i32.const 520192) ) - (i32.const 8) + (i32.const 16) ) + (i32.const 4) ) ) + (get_local $$and264$i$i) ) - (i32.const 520192) - ) - (i32.const 16) - ) - (i32.const 4) - ) - ) - (get_local $$and264$i$i) - ) - ) - (set_local $$sub275$i$i - (i32.sub - (i32.const 14) - (i32.or - (get_local $$add269$i$i) - (set_local $$and273$i$i - (i32.and - (i32.shr_u - (i32.add - (set_local $$shl270$i$i - (i32.shl - (get_local $$shl265$i$i) - (get_local $$and268$i$i) + (set_local $$and273$i$i + (i32.and + (i32.shr_u + (i32.add + (set_local $$shl270$i$i + (i32.shl + (get_local $$shl265$i$i) + (get_local $$and268$i$i) + ) + ) + (i32.const 245760) + ) + (i32.const 16) ) + (i32.const 2) ) - (i32.const 245760) ) - (i32.const 16) ) - (i32.const 2) ) - ) - ) - ) - ) - (set_local $$shl279$i$i - (i32.shl - (set_local $$add278$i$i - (i32.add - (get_local $$sub275$i$i) (i32.shr_u (i32.shl (get_local $$shl270$i$i) @@ -19272,8 +19168,8 @@ (get_local $label) (i32.const 281) ) - (block - (set_local $$cmp350$i$i + (if + (i32.and (i32.ge_u (set_local $$182 (i32.load @@ -19291,40 +19187,35 @@ ) ) ) + (i32.ge_u + (get_local $$T$0$i$58$i$lcssa) + (get_local $$183) + ) ) - (if - (i32.and - (get_local $$cmp350$i$i) - (i32.ge_u - (get_local $$T$0$i$58$i$lcssa) - (get_local $$183) - ) + (block + (i32.store offset=12 + (get_local $$182) + (get_local $$add$ptr17$i$i) ) - (block - (i32.store offset=12 - (get_local $$182) - (get_local $$add$ptr17$i$i) - ) - (i32.store - (get_local $$fd344$i$i) - (get_local $$add$ptr17$i$i) - ) - (i32.store offset=8 - (get_local $$add$ptr17$i$i) - (get_local $$182) - ) - (i32.store offset=12 - (get_local $$add$ptr17$i$i) - (get_local $$T$0$i$58$i$lcssa) - ) - (i32.store offset=24 - (get_local $$add$ptr17$i$i) - (i32.const 0) - ) - (br $do-once$52) + (i32.store + (get_local $$fd344$i$i) + (get_local $$add$ptr17$i$i) ) - (call_import $_abort) + (i32.store offset=8 + (get_local $$add$ptr17$i$i) + (get_local $$182) + ) + (i32.store offset=12 + (get_local $$add$ptr17$i$i) + (get_local $$T$0$i$58$i$lcssa) + ) + (i32.store offset=24 + (get_local $$add$ptr17$i$i) + (i32.const 0) + ) + (br $do-once$52) ) + (call_import $_abort) ) ) ) @@ -19759,69 +19650,63 @@ (i32.const 31) ) (block - (set_local $$add74$i$i - (i32.or - (set_local $$and73$i$i - (i32.and - (i32.shr_u - (i32.add - (set_local $$shl70$i$i - (i32.shl - (get_local $$shr58$i$i) - (set_local $$and69$i$i - (i32.and - (i32.shr_u - (i32.add - (get_local $$shr58$i$i) - (i32.const 1048320) + (set_local $$shl84$i$i + (i32.shl + (set_local $$add83$i$i + (i32.add + (i32.sub + (i32.const 14) + (i32.or + (i32.or + (set_local $$and73$i$i + (i32.and + (i32.shr_u + (i32.add + (set_local $$shl70$i$i + (i32.shl + (get_local $$shr58$i$i) + (set_local $$and69$i$i + (i32.and + (i32.shr_u + (i32.add + (get_local $$shr58$i$i) + (i32.const 1048320) + ) + (i32.const 16) + ) + (i32.const 8) + ) + ) + ) ) - (i32.const 16) + (i32.const 520192) ) - (i32.const 8) + (i32.const 16) ) + (i32.const 4) ) ) + (get_local $$and69$i$i) ) - (i32.const 520192) - ) - (i32.const 16) - ) - (i32.const 4) - ) - ) - (get_local $$and69$i$i) - ) - ) - (set_local $$sub80$i$i - (i32.sub - (i32.const 14) - (i32.or - (get_local $$add74$i$i) - (set_local $$and78$i$i - (i32.and - (i32.shr_u - (i32.add - (set_local $$shl75$i$i - (i32.shl - (get_local $$shl70$i$i) - (get_local $$and73$i$i) + (set_local $$and78$i$i + (i32.and + (i32.shr_u + (i32.add + (set_local $$shl75$i$i + (i32.shl + (get_local $$shl70$i$i) + (get_local $$and73$i$i) + ) + ) + (i32.const 245760) + ) + (i32.const 16) ) + (i32.const 2) ) - (i32.const 245760) ) - (i32.const 16) ) - (i32.const 2) ) - ) - ) - ) - ) - (set_local $$shl84$i$i - (i32.shl - (set_local $$add83$i$i - (i32.add - (get_local $$sub80$i$i) (i32.shr_u (i32.shl (get_local $$shl75$i$i) @@ -20061,8 +19946,8 @@ (get_local $label) (i32.const 307) ) - (block - (set_local $$cmp153$i$i + (if + (i32.and (i32.ge_u (set_local $$204 (i32.load @@ -20080,40 +19965,35 @@ ) ) ) + (i32.ge_u + (get_local $$T$0$i$i$lcssa) + (get_local $$205) + ) ) - (if - (i32.and - (get_local $$cmp153$i$i) - (i32.ge_u - (get_local $$T$0$i$i$lcssa) - (get_local $$205) - ) + (block + (i32.store offset=12 + (get_local $$204) + (get_local $$119) ) - (block - (i32.store offset=12 - (get_local $$204) - (get_local $$119) - ) - (i32.store - (get_local $$fd148$i$i) - (get_local $$119) - ) - (i32.store offset=8 - (get_local $$119) - (get_local $$204) - ) - (i32.store offset=12 - (get_local $$119) - (get_local $$T$0$i$i$lcssa) - ) - (i32.store offset=24 - (get_local $$119) - (i32.const 0) - ) - (br $do-once$44) + (i32.store + (get_local $$fd148$i$i) + (get_local $$119) ) - (call_import $_abort) + (i32.store offset=8 + (get_local $$119) + (get_local $$204) + ) + (i32.store offset=12 + (get_local $$119) + (get_local $$T$0$i$i$lcssa) + ) + (i32.store offset=24 + (get_local $$119) + (i32.const 0) + ) + (br $do-once$44) ) + (call_import $_abort) ) ) ) @@ -20244,7 +20124,6 @@ (local $$1 i32) (local $$$pre$phiZ2D i32) (local $$sub589 i32) - (local $$sub556 i32) (local $$sp$0$i i32) (local $$shl600 i32) (local $$shl573 i32) @@ -20262,7 +20141,6 @@ (local $$fd311 i32) (local $$dec i32) (local $$cond i32) - (local $$cmp624 i32) (local $$cmp$i i32) (local $$child443 i32) (local $$child171 i32) @@ -20286,7 +20164,6 @@ (local $$and545 i32) (local $$and i32) (local $$add559 i32) - (local $$add550 i32) (local $$add246 i32) (local $$T$0$lcssa319 i32) (local $$R332$1$lcssa i32) @@ -20317,6 +20194,7 @@ (local $$tobool513 i32) (local $$tobool241 i32) (local $$tobool233 i32) + (local $$sub556 i32) (local $$sub552 i32) (local $$sub547 i32) (local $$sub i32) @@ -20385,6 +20263,7 @@ (local $$cmp80 i32) (local $$cmp74 i32) (local $$cmp640 i32) + (local $$cmp624 i32) (local $$cmp605 i32) (local $$cmp601 i32) (local $$cmp593 i32) @@ -20497,6 +20376,7 @@ (local $$add564 i32) (local $$add561 i32) (local $$add555 i32) + (local $$add550 i32) (local $$add$ptr498 i32) (local $$add$ptr482 i32) (local $$add$ptr261 i32) @@ -22138,69 +22018,63 @@ (i32.const 31) ) (block - (set_local $$add550 - (i32.or - (set_local $$and549 - (i32.and - (i32.shr_u - (i32.add - (set_local $$shl546 - (i32.shl - (get_local $$shr535) - (set_local $$and545 - (i32.and - (i32.shr_u - (i32.add - (get_local $$shr535) - (i32.const 1048320) + (set_local $$shl560 + (i32.shl + (set_local $$add559 + (i32.add + (i32.sub + (i32.const 14) + (i32.or + (i32.or + (set_local $$and549 + (i32.and + (i32.shr_u + (i32.add + (set_local $$shl546 + (i32.shl + (get_local $$shr535) + (set_local $$and545 + (i32.and + (i32.shr_u + (i32.add + (get_local $$shr535) + (i32.const 1048320) + ) + (i32.const 16) + ) + (i32.const 8) + ) + ) + ) ) - (i32.const 16) + (i32.const 520192) ) - (i32.const 8) + (i32.const 16) ) + (i32.const 4) ) ) + (get_local $$and545) ) - (i32.const 520192) - ) - (i32.const 16) - ) - (i32.const 4) - ) - ) - (get_local $$and545) - ) - ) - (set_local $$sub556 - (i32.sub - (i32.const 14) - (i32.or - (get_local $$add550) - (set_local $$and554 - (i32.and - (i32.shr_u - (i32.add - (set_local $$shl551 - (i32.shl - (get_local $$shl546) - (get_local $$and549) + (set_local $$and554 + (i32.and + (i32.shr_u + (i32.add + (set_local $$shl551 + (i32.shl + (get_local $$shl546) + (get_local $$and549) + ) + ) + (i32.const 245760) + ) + (i32.const 16) ) + (i32.const 2) ) - (i32.const 245760) ) - (i32.const 16) ) - (i32.const 2) ) - ) - ) - ) - ) - (set_local $$shl560 - (i32.shl - (set_local $$add559 - (i32.add - (get_local $$sub556) (i32.shr_u (i32.shl (get_local $$shl551) @@ -22440,8 +22314,8 @@ (get_local $label) (i32.const 130) ) - (block - (set_local $$cmp624 + (if + (i32.and (i32.ge_u (set_local $$71 (i32.load @@ -22459,40 +22333,35 @@ ) ) ) + (i32.ge_u + (get_local $$T$0$lcssa) + (get_local $$72) + ) ) - (if - (i32.and - (get_local $$cmp624) - (i32.ge_u - (get_local $$T$0$lcssa) - (get_local $$72) - ) + (block + (i32.store offset=12 + (get_local $$71) + (get_local $$p$1) ) - (block - (i32.store offset=12 - (get_local $$71) - (get_local $$p$1) - ) - (i32.store - (get_local $$fd620) - (get_local $$p$1) - ) - (i32.store offset=8 - (get_local $$p$1) - (get_local $$71) - ) - (i32.store offset=12 - (get_local $$p$1) - (get_local $$T$0$lcssa) - ) - (i32.store offset=24 - (get_local $$p$1) - (i32.const 0) - ) - (br $do-once$16) + (i32.store + (get_local $$fd620) + (get_local $$p$1) ) - (call_import $_abort) + (i32.store offset=8 + (get_local $$p$1) + (get_local $$71) + ) + (i32.store offset=12 + (get_local $$p$1) + (get_local $$T$0$lcssa) + ) + (i32.store offset=24 + (get_local $$p$1) + (i32.const 0) + ) + (br $do-once$16) ) + (call_import $_abort) ) ) ) @@ -23176,10 +23045,10 @@ (local $$1$0 i32) (local $$7$1 i32) (local $$7$0 i32) - (local $$4$1 i32) - (local $$4$0 i32) (local $$8$0 i32) (local $$6$0 i32) + (local $$4$1 i32) + (local $$4$0 i32) (local $$10$0 i32) (set_local $$1$0 (i32.or @@ -23271,31 +23140,25 @@ ) ) ) - (set_local $$4$0 - (call $_i64Subtract - (i32.xor - (get_local $$1$0) - (get_local $$a$0) - ) - (i32.xor - (get_local $$1$1) - (get_local $$a$1) - ) - (get_local $$1$0) - (get_local $$1$1) - ) - ) - (set_local $$4$1 - (i32.load - (i32.const 168) - ) - ) (return (call $_i64Subtract (i32.xor (call $___udivmoddi4 - (get_local $$4$0) - (get_local $$4$1) + (call $_i64Subtract + (i32.xor + (get_local $$1$0) + (get_local $$a$0) + ) + (i32.xor + (get_local $$1$1) + (get_local $$a$1) + ) + (get_local $$1$0) + (get_local $$1$1) + ) + (i32.load + (i32.const 168) + ) (call $_i64Subtract (i32.xor (get_local $$2$0) @@ -23343,11 +23206,11 @@ (local $__stackBase__ i32) (local $$2$1 i32) (local $$2$0 i32) - (local $$4$1 i32) - (local $$4$0 i32) (local $$10$1 i32) (local $$10$0 i32) (local $$6$0 i32) + (local $$4$1 i32) + (local $$4$0 i32) (set_local $__stackBase__ (i32.load (i32.const 8) @@ -23455,7 +23318,7 @@ ) ) ) - (set_local $$4$0 + (call $___udivmoddi4 (call $_i64Subtract (i32.xor (get_local $$1$0) @@ -23468,15 +23331,9 @@ (get_local $$1$0) (get_local $$1$1) ) - ) - (set_local $$4$1 (i32.load (i32.const 168) ) - ) - (call $___udivmoddi4 - (get_local $$4$0) - (get_local $$4$1) (call $_i64Subtract (i32.xor (get_local $$2$0) diff --git a/test/emcc_hello_world.fromasm.imprecise b/test/emcc_hello_world.fromasm.imprecise index cecb9b3e0..4553d91d2 100644 --- a/test/emcc_hello_world.fromasm.imprecise +++ b/test/emcc_hello_world.fromasm.imprecise @@ -3788,7 +3788,6 @@ (local $$conv207 i32) (local $$conv174$lcssa i32) (local $$conv174 i32) - (local $$cond304$i i32) (local $$cond233$i i32) (local $$cmp38$i i32) (local $$cmp37 i32) @@ -3811,7 +3810,6 @@ (local $$add$i$lcssa i32) (local $$add$i$203 i32) (local $$add$i i32) - (local $$92 i32) (local $$49 i32) (local $$29 i32) (local $$255 i32) @@ -3820,15 +3818,11 @@ (local $$231 i32) (local $$223 i32) (local $$219 i32) - (local $$215 i32) (local $$210 i32) (local $$194 i32) (local $$143 i32) (local $$142 i32) - (local $$130 i32) (local $$129 i32) - (local $$118 i32) - (local $$102 i32) (local $$101 i32) (local $$10 i32) (local $$1 i32) @@ -3918,13 +3912,13 @@ (local $$cond629$i i32) (local $$cond43$i i32) (local $$cond426 i32) + (local $$cond304$i i32) (local $$cond245 i32) (local $$cond100$i i32) (local $$cond$i i32) (local $$cnt$1$lcssa i32) (local $$cmp94$i i32) (local $$cmp614$i i32) - (local $$cmp385 i32) (local $$cmp374$i i32) (local $$cmp338$i i32) (local $$cmp299$i i32) @@ -3959,10 +3953,10 @@ (local $$add$ptr311$i i32) (local $$add$ptr213$i i32) (local $$95 i32) + (local $$92 i32) (local $$90 i32) (local $$86 i32) (local $$76 i32) - (local $$67 i32) (local $$65 i32) (local $$60 i32) (local $$59 i32) @@ -3986,11 +3980,10 @@ (local $$225 i32) (local $$217 i32) (local $$216 i32) - (local $$213 i32) + (local $$215 i32) (local $$201 i32) (local $$200 i32) (local $$193 i32) - (local $$188 i32) (local $$187 i32) (local $$18 i32) (local $$179 i32) @@ -4002,16 +3995,17 @@ (local $$161 i32) (local $$16 i32) (local $$159 i32) - (local $$153 i32) (local $$151 i32) (local $$144 i32) (local $$135 i32) (local $$131 i32) + (local $$130 i32) (local $$121 i32) + (local $$118 i32) (local $$116 i32) - (local $$109 i32) (local $$107 i32) (local $$103 i32) + (local $$102 i32) (local $$0 i32) (local $$$l10n$0 i32) (local $$$$i i32) @@ -4306,6 +4300,7 @@ (local $$cmp390$i i32) (local $$cmp390 i32) (local $$cmp385$i i32) + (local $$cmp385 i32) (local $$cmp377$314 i32) (local $$cmp377 i32) (local $$cmp363$525$i i32) @@ -4443,6 +4438,7 @@ (local $$70 i32) (local $$69 i32) (local $$68 i32) + (local $$67 i32) (local $$66 i32) (local $$64 i32) (local $$63 i32) @@ -4514,6 +4510,7 @@ (local $$22 i32) (local $$218 i32) (local $$214 i32) + (local $$213 i32) (local $$212 i32) (local $$21 i32) (local $$209 i32) @@ -4535,6 +4532,7 @@ (local $$190 i32) (local $$19 i32) (local $$189 i32) + (local $$188 i32) (local $$186 i32) (local $$185 i32) (local $$184 i32) @@ -4560,6 +4558,7 @@ (local $$156 i32) (local $$155 i32) (local $$154 i32) + (local $$153 i32) (local $$152 i32) (local $$150 i32) (local $$15 i32) @@ -4591,6 +4590,7 @@ (local $$111 i32) (local $$110 i32) (local $$11 i32) + (local $$109 i32) (local $$108 i32) (local $$106 i32) (local $$105 i32) @@ -6518,17 +6518,16 @@ ) (br $switch$24) ) - (set_local $$118 - (i32.load - (set_local $$116 - (get_local $$arg) - ) - ) - ) (if (i32.and (i32.eq - (get_local $$118) + (set_local $$118 + (i32.load + (set_local $$116 + (get_local $$arg) + ) + ) + ) (i32.const 0) ) (i32.eq @@ -6572,17 +6571,16 @@ (i32.const 255) ) ) - (set_local $$130 - (call $_bitshift64Lshr - (get_local $$126) - (get_local $$129) - (i32.const 3) - ) - ) (if (i32.and (i32.eq - (get_local $$130) + (set_local $$130 + (call $_bitshift64Lshr + (get_local $$126) + (get_local $$129) + (i32.const 3) + ) + ) (i32.const 0) ) (i32.eq @@ -6804,16 +6802,13 @@ ) (br $switch$24) ) - (set_local $$67 + (set_local $$148 (i32.load (set_local $$65 (get_local $$arg) ) ) ) - (set_local $$148 - (get_local $$67) - ) (set_local $$149 (i32.load offset=4 (get_local $$65) @@ -7066,25 +7061,22 @@ (i32.const 24) ) ) - (set_local $$188 - (i32.lt_u - (set_local $$187 - (i32.and - (i32.load offset=4 - (i32.load - (i32.const 24) + (block $do-once$56 + (if + (i32.or + (i32.lt_u + (set_local $$187 + (i32.and + (i32.load offset=4 + (i32.load + (i32.const 24) + ) + ) + (i32.const 2146435072) ) ) (i32.const 2146435072) ) - ) - (i32.const 2146435072) - ) - ) - (block $do-once$56 - (if - (i32.or - (get_local $$188) (i32.and (i32.eq (get_local $$187) @@ -7805,28 +7797,24 @@ (get_local $$d$0$542$i) ) (loop $while-out$72 $while-in$73 - (set_local $$213 - (call $_bitshift64Shl - (i32.load - (get_local $$d$0545$i) - ) - (i32.const 0) - (get_local $$cond233$i) - ) - ) - (set_local $$215 - (call $_i64Add - (get_local $$213) - (i32.load - (i32.const 168) - ) - (get_local $$carry$0544$i) - (i32.const 0) - ) - ) (set_local $$217 (call $___uremdi3 - (get_local $$215) + (set_local $$215 + (call $_i64Add + (call $_bitshift64Shl + (i32.load + (get_local $$d$0545$i) + ) + (i32.const 0) + (get_local $$cond233$i) + ) + (i32.load + (i32.const 168) + ) + (get_local $$carry$0544$i) + (i32.const 0) + ) + ) (set_local $$216 (i32.load (i32.const 168) @@ -8211,16 +8199,15 @@ ) ) ) - (set_local $$cond304$i - (if - (get_local $$cmp299$i) - (get_local $$arraydecay208$add$ptr213$i) - (get_local $$incdec$ptr292$a$3573$i) - ) - ) (set_local $$add$ptr311$i (i32.add - (get_local $$cond304$i) + (set_local $$cond304$i + (if + (get_local $$cmp299$i) + (get_local $$arraydecay208$add$ptr213$i) + (get_local $$incdec$ptr292$a$3573$i) + ) + ) (i32.shl (get_local $$add275$i) (i32.const 2) @@ -10275,13 +10262,6 @@ (set_local $label (i32.const 0) ) - (set_local $$92 - (i32.load - (set_local $$90 - (get_local $$arg) - ) - ) - ) (set_local $$and249 (i32.and (get_local $$t$1) @@ -10291,7 +10271,13 @@ (if (i32.and (i32.eq - (get_local $$92) + (set_local $$92 + (i32.load + (set_local $$90 + (get_local $$arg) + ) + ) + ) (i32.const 0) ) (i32.eq @@ -10360,17 +10346,16 @@ (i32.const 255) ) ) - (set_local $$102 - (call $_bitshift64Lshr - (get_local $$99) - (get_local $$101) - (i32.const 4) - ) - ) (if (i32.and (i32.eq - (get_local $$102) + (set_local $$102 + (call $_bitshift64Lshr + (get_local $$99) + (get_local $$101) + (i32.const 4) + ) + ) (i32.const 0) ) (i32.eq @@ -10402,13 +10387,6 @@ ) (br $while-in$130) ) - (set_local $$109 - (i32.load - (set_local $$107 - (get_local $$arg) - ) - ) - ) (if (i32.or (i32.eq @@ -10420,7 +10398,11 @@ ) (i32.and (i32.eq - (get_local $$109) + (i32.load + (set_local $$107 + (get_local $$arg) + ) + ) (i32.const 0) ) (i32.eq @@ -10619,20 +10601,17 @@ (br $while-out$131) ) ) - (set_local $$cmp385 - (i32.lt_s - (set_local $$call384 - (call $_wctomb - (get_local $$mb) - (get_local $$177) - ) - ) - (i32.const 0) - ) - ) (if (i32.or - (get_local $$cmp385) + (i32.lt_s + (set_local $$call384 + (call $_wctomb + (get_local $$mb) + (get_local $$177) + ) + ) + (i32.const 0) + ) (i32.gt_u (get_local $$call384) (i32.sub @@ -10900,13 +10879,6 @@ (get_local $$fl$4) ) ) - (set_local $$153 - (i32.load - (set_local $$151 - (get_local $$arg) - ) - ) - ) (if (i32.or (i32.ne @@ -10916,7 +10888,11 @@ (set_local $$159 (i32.or (i32.ne - (get_local $$153) + (i32.load + (set_local $$151 + (get_local $$arg) + ) + ) (i32.const 0) ) (i32.ne @@ -12546,8 +12522,6 @@ (local $$shr i32) (local $$rsize$0$i i32) (local $$cond4$i i32) - (local $$call83$i i32) - (local $$call131$i i32) (local $$br$2$ph$i i32) (local $$arrayidx289$i i32) (local $$arrayidx223$i$i i32) @@ -12577,7 +12551,9 @@ (local $$rsize$1$i i32) (local $$rsize$0$i$152 i32) (local $$i$01$i$i i32) + (local $$call83$i i32) (local $$call37$i i32) + (local $$call131$i i32) (local $$call$i$i i32) (local $$arrayidx91$i$i i32) (local $$arrayidx355$i i32) @@ -12649,7 +12625,6 @@ (local $$and37$i$i i32) (local $$and3$i i32) (local $$and104$i i32) - (local $$add9$i i32) (local $$add8 i32) (local $$add64 i32) (local $$add54$i i32) @@ -12686,25 +12661,21 @@ (local $$$pre$phi$i$iZ2D i32) (local $$$pre$phi$i$57$iZ2D i32) (local $$$pre$phi$i$178Z2D i32) - (local $$sub80$i$i i32) (local $$sub70$i i32) (local $$sub63$i i32) (local $$sub44 i32) (local $$sub42 i32) (local $$sub41$i i32) (local $$sub381$i i32) - (local $$sub343$i i32) (local $$sub313$i$i i32) (local $$sub31$rsize$0$i i32) (local $$sub31$i i32) (local $$sub30$i i32) - (local $$sub275$i$i i32) (local $$sub260$i i32) (local $$sub2$i i32) (local $$sub190 i32) (local $$sub172$i i32) (local $$sub16$i$i i32) - (local $$sub14$i i32) (local $$sub113$i$i i32) (local $$sub112$i i32) (local $$sub101$i i32) @@ -12789,13 +12760,7 @@ (local $$cond$i i32) (local $$cmp7$i$i i32) (local $$cmp49$i i32) - (local $$cmp45$i$155 i32) - (local $$cmp422$i i32) - (local $$cmp350$i$i i32) (local $$cmp32$i i32) - (local $$cmp19$i i32) - (local $$cmp159$i$199 i32) - (local $$cmp153$i$i i32) (local $$cmp102$i i32) (local $$cmp$i$34$i i32) (local $$cmp$i$23$i i32) @@ -12868,30 +12833,16 @@ (local $$and12$i i32) (local $$and$i$143 i32) (local $$and i32) - (local $$add90$i i32) - (local $$add86$i i32) + (local $$add9$i i32) (local $$add83$i$i i32) - (local $$add82$i i32) - (local $$add78$i i32) - (local $$add74$i$i i32) - (local $$add62 i32) - (local $$add58 i32) - (local $$add54 i32) - (local $$add50 i32) (local $$add346$i i32) - (local $$add337$i i32) (local $$add278$i$i i32) - (local $$add269$i$i i32) (local $$add268$i i32) (local $$add246$i i32) - (local $$add18$i i32) (local $$add177$i i32) (local $$add17$i$183 i32) (local $$add17$i i32) (local $$add144 i32) - (local $$add14$i i32) - (local $$add101$i i32) - (local $$add10$i i32) (local $$add$ptr8$i122$i i32) (local $$add$ptr7$i$i i32) (local $$add$ptr262$i i32) @@ -12901,8 +12852,6 @@ (local $$add$ptr$i$i$i i32) (local $$add$i$i i32) (local $$add$i$180 i32) - (local $$add$i$146 i32) - (local $$add$i i32) (local $$T$0$i$lcssa293 i32) (local $$T$0$i$i$lcssa284 i32) (local $$T$0$i$58$i$lcssa283 i32) @@ -13005,6 +12954,7 @@ (local $$tobool107 i32) (local $$tobool$i$i i32) (local $$sub99$i i32) + (local $$sub80$i$i i32) (local $$sub76$i$i i32) (local $$sub71$i$i i32) (local $$sub67$i$i i32) @@ -13012,13 +12962,16 @@ (local $$sub6$i i32) (local $$sub50$i i32) (local $$sub4$i i32) + (local $$sub343$i i32) (local $$sub339$i i32) (local $$sub334$i i32) (local $$sub329$i i32) + (local $$sub275$i$i i32) (local $$sub271$i$i i32) (local $$sub266$i$i i32) (local $$sub262$i$i i32) (local $$sub22$i i32) + (local $$sub14$i i32) (local $$sub118$i i32) (local $$sub10$i i32) (local $$sub$ptr$sub$i$41$i i32) @@ -13296,9 +13249,11 @@ (local $$cmp46$i$i i32) (local $$cmp46$i$49$i i32) (local $$cmp46$i i32) + (local $$cmp45$i$155 i32) (local $$cmp45$i i32) (local $$cmp44$i$i i32) (local $$cmp43$i i32) + (local $$cmp422$i i32) (local $$cmp42$i$i i32) (local $$cmp41$i$i i32) (local $$cmp401$i i32) @@ -13310,6 +13265,7 @@ (local $$cmp374$i i32) (local $$cmp36$i$i i32) (local $$cmp36$i i32) + (local $$cmp350$i$i i32) (local $$cmp35$i i32) (local $$cmp34$i$i i32) (local $$cmp34$i i32) @@ -13358,6 +13314,7 @@ (local $$cmp198$i i32) (local $$cmp191$i i32) (local $$cmp190$i i32) + (local $$cmp19$i i32) (local $$cmp189$i$i i32) (local $$cmp186$i i32) (local $$cmp186 i32) @@ -13374,12 +13331,14 @@ (local $$cmp162 i32) (local $$cmp160$i$i i32) (local $$cmp16 i32) + (local $$cmp159$i$199 i32) (local $$cmp159$i i32) (local $$cmp157$i i32) (local $$cmp156$i$i i32) (local $$cmp156$i i32) (local $$cmp156 i32) (local $$cmp155$i i32) + (local $$cmp153$i$i i32) (local $$cmp152$i i32) (local $$cmp151$i i32) (local $$cmp15$i i32) @@ -13536,18 +13495,29 @@ (local $$and$i$12$i i32) (local $$and$i i32) (local $$add92$i i32) + (local $$add90$i i32) (local $$add88$i$i i32) + (local $$add86$i i32) (local $$add85$i$i i32) + (local $$add82$i i32) (local $$add79$i$i i32) + (local $$add78$i i32) (local $$add77$i i32) + (local $$add74$i$i i32) + (local $$add62 i32) + (local $$add58 i32) + (local $$add54 i32) (local $$add51$i i32) + (local $$add50 i32) (local $$add46$i i32) (local $$add351$i i32) (local $$add348$i i32) (local $$add342$i i32) + (local $$add337$i i32) (local $$add283$i$i i32) (local $$add280$i$i i32) (local $$add274$i$i i32) + (local $$add269$i$i i32) (local $$add22$i i32) (local $$add215$i i32) (local $$add212$i i32) @@ -13555,9 +13525,13 @@ (local $$add20$i i32) (local $$add2 i32) (local $$add19$i i32) + (local $$add18$i i32) (local $$add140$i i32) + (local $$add14$i i32) (local $$add13$i i32) (local $$add110$i i32) + (local $$add101$i i32) + (local $$add10$i i32) (local $$add$ptr98 i32) (local $$add$ptr6$i$i$i i32) (local $$add$ptr6$i$i i32) @@ -13587,6 +13561,8 @@ (local $$add$ptr$i$11$i i32) (local $$add$ptr$i$1$i$i i32) (local $$add$ptr i32) + (local $$add$i$146 i32) + (local $$add$i i32) (local $$99 i32) (local $$96 i32) (local $$93 i32) @@ -13932,82 +13908,6 @@ (i32.const 16) ) ) - (set_local $$add50 - (i32.or - (set_local $$and49 - (i32.and - (i32.shr_u - (set_local $$shr47 - (i32.shr_u - (get_local $$sub44) - (get_local $$and46) - ) - ) - (i32.const 5) - ) - (i32.const 8) - ) - ) - (get_local $$and46) - ) - ) - (set_local $$add54 - (i32.or - (get_local $$add50) - (set_local $$and53 - (i32.and - (i32.shr_u - (set_local $$shr51 - (i32.shr_u - (get_local $$shr47) - (get_local $$and49) - ) - ) - (i32.const 2) - ) - (i32.const 4) - ) - ) - ) - ) - (set_local $$add58 - (i32.or - (get_local $$add54) - (set_local $$and57 - (i32.and - (i32.shr_u - (set_local $$shr55 - (i32.shr_u - (get_local $$shr51) - (get_local $$and53) - ) - ) - (i32.const 1) - ) - (i32.const 2) - ) - ) - ) - ) - (set_local $$add62 - (i32.or - (get_local $$add58) - (set_local $$and61 - (i32.and - (i32.shr_u - (set_local $$shr59 - (i32.shr_u - (get_local $$shr55) - (get_local $$and57) - ) - ) - (i32.const 1) - ) - (i32.const 1) - ) - ) - ) - ) (set_local $$10 (i32.load (set_local $$fd69 @@ -14023,7 +13923,71 @@ (i32.shl (set_local $$add64 (i32.add - (get_local $$add62) + (i32.or + (i32.or + (i32.or + (i32.or + (set_local $$and49 + (i32.and + (i32.shr_u + (set_local $$shr47 + (i32.shr_u + (get_local $$sub44) + (get_local $$and46) + ) + ) + (i32.const 5) + ) + (i32.const 8) + ) + ) + (get_local $$and46) + ) + (set_local $$and53 + (i32.and + (i32.shr_u + (set_local $$shr51 + (i32.shr_u + (get_local $$shr47) + (get_local $$and49) + ) + ) + (i32.const 2) + ) + (i32.const 4) + ) + ) + ) + (set_local $$and57 + (i32.and + (i32.shr_u + (set_local $$shr55 + (i32.shr_u + (get_local $$shr51) + (get_local $$and53) + ) + ) + (i32.const 1) + ) + (i32.const 2) + ) + ) + ) + (set_local $$and61 + (i32.and + (i32.shr_u + (set_local $$shr59 + (i32.shr_u + (get_local $$shr55) + (get_local $$and57) + ) + ) + (i32.const 1) + ) + (i32.const 1) + ) + ) + ) (i32.shr_u (get_local $$shr59) (get_local $$and61) @@ -14303,82 +14267,6 @@ (i32.const 16) ) ) - (set_local $$add$i - (i32.or - (set_local $$and6$i - (i32.and - (i32.shr_u - (set_local $$shr4$i - (i32.shr_u - (get_local $$sub2$i) - (get_local $$and3$i) - ) - ) - (i32.const 5) - ) - (i32.const 8) - ) - ) - (get_local $$and3$i) - ) - ) - (set_local $$add10$i - (i32.or - (get_local $$add$i) - (set_local $$and9$i - (i32.and - (i32.shr_u - (set_local $$shr7$i - (i32.shr_u - (get_local $$shr4$i) - (get_local $$and6$i) - ) - ) - (i32.const 2) - ) - (i32.const 4) - ) - ) - ) - ) - (set_local $$add14$i - (i32.or - (get_local $$add10$i) - (set_local $$and13$i - (i32.and - (i32.shr_u - (set_local $$shr11$i - (i32.shr_u - (get_local $$shr7$i) - (get_local $$and9$i) - ) - ) - (i32.const 1) - ) - (i32.const 2) - ) - ) - ) - ) - (set_local $$add18$i - (i32.or - (get_local $$add14$i) - (set_local $$and17$i - (i32.and - (i32.shr_u - (set_local $$shr15$i - (i32.shr_u - (get_local $$shr11$i) - (get_local $$and13$i) - ) - ) - (i32.const 1) - ) - (i32.const 1) - ) - ) - ) - ) (set_local $$rsize$0$i (i32.sub (i32.and @@ -14387,7 +14275,71 @@ (i32.load offset=480 (i32.shl (i32.add - (get_local $$add18$i) + (i32.or + (i32.or + (i32.or + (i32.or + (set_local $$and6$i + (i32.and + (i32.shr_u + (set_local $$shr4$i + (i32.shr_u + (get_local $$sub2$i) + (get_local $$and3$i) + ) + ) + (i32.const 5) + ) + (i32.const 8) + ) + ) + (get_local $$and3$i) + ) + (set_local $$and9$i + (i32.and + (i32.shr_u + (set_local $$shr7$i + (i32.shr_u + (get_local $$shr4$i) + (get_local $$and6$i) + ) + ) + (i32.const 2) + ) + (i32.const 4) + ) + ) + ) + (set_local $$and13$i + (i32.and + (i32.shr_u + (set_local $$shr11$i + (i32.shr_u + (get_local $$shr7$i) + (get_local $$and9$i) + ) + ) + (i32.const 1) + ) + (i32.const 2) + ) + ) + ) + (set_local $$and17$i + (i32.and + (i32.shr_u + (set_local $$shr15$i + (i32.shr_u + (get_local $$shr11$i) + (get_local $$and13$i) + ) + ) + (i32.const 1) + ) + (i32.const 1) + ) + ) + ) (i32.shr_u (get_local $$shr15$i) (get_local $$and17$i) @@ -15155,69 +15107,63 @@ (i32.const 31) ) (block - (set_local $$add$i$146 - (i32.or - (set_local $$and8$i - (i32.and - (i32.shr_u - (i32.add - (set_local $$shl$i$144 - (i32.shl - (get_local $$shr$i$139) - (set_local $$and$i$143 - (i32.and - (i32.shr_u - (i32.add - (get_local $$shr$i$139) - (i32.const 1048320) + (set_local $$shl18$i + (i32.shl + (set_local $$add17$i + (i32.add + (i32.sub + (i32.const 14) + (i32.or + (i32.or + (set_local $$and8$i + (i32.and + (i32.shr_u + (i32.add + (set_local $$shl$i$144 + (i32.shl + (get_local $$shr$i$139) + (set_local $$and$i$143 + (i32.and + (i32.shr_u + (i32.add + (get_local $$shr$i$139) + (i32.const 1048320) + ) + (i32.const 16) + ) + (i32.const 8) + ) + ) + ) ) - (i32.const 16) + (i32.const 520192) ) - (i32.const 8) + (i32.const 16) ) + (i32.const 4) ) ) + (get_local $$and$i$143) ) - (i32.const 520192) - ) - (i32.const 16) - ) - (i32.const 4) - ) - ) - (get_local $$and$i$143) - ) - ) - (set_local $$sub14$i - (i32.sub - (i32.const 14) - (i32.or - (get_local $$add$i$146) - (set_local $$and12$i - (i32.and - (i32.shr_u - (i32.add - (set_local $$shl9$i - (i32.shl - (get_local $$shl$i$144) - (get_local $$and8$i) + (set_local $$and12$i + (i32.and + (i32.shr_u + (i32.add + (set_local $$shl9$i + (i32.shl + (get_local $$shl$i$144) + (get_local $$and8$i) + ) + ) + (i32.const 245760) + ) + (i32.const 16) ) + (i32.const 2) ) - (i32.const 245760) ) - (i32.const 16) ) - (i32.const 2) ) - ) - ) - ) - ) - (set_local $$shl18$i - (i32.shl - (set_local $$add17$i - (i32.add - (get_local $$sub14$i) (i32.shr_u (i32.shl (get_local $$shl9$i) @@ -15369,20 +15315,17 @@ ) ) ) - (set_local $$cmp45$i$155 - (i32.eq - (set_local $$54 - (i32.load offset=20 - (get_local $$t$0$i$151) - ) - ) - (i32.const 0) - ) - ) (set_local $$rst$1$i (if (i32.or - (get_local $$cmp45$i$155) + (i32.eq + (set_local $$54 + (i32.load offset=20 + (get_local $$t$0$i$151) + ) + ) + (i32.const 0) + ) (i32.eq (get_local $$54) (set_local $$55 @@ -15534,87 +15477,75 @@ (i32.const 16) ) ) - (set_local $$add78$i - (i32.or - (set_local $$and77$i - (i32.and - (i32.shr_u - (set_local $$shr75$i - (i32.shr_u - (get_local $$sub70$i) - (get_local $$and73$i) - ) - ) - (i32.const 5) - ) - (i32.const 8) - ) - ) - (get_local $$and73$i) - ) - ) - (set_local $$add82$i - (i32.or - (get_local $$add78$i) - (set_local $$and81$i - (i32.and - (i32.shr_u - (set_local $$shr79$i - (i32.shr_u - (get_local $$shr75$i) - (get_local $$and77$i) + (set_local $$t$4$ph$i + (i32.load offset=480 + (i32.shl + (i32.add + (i32.or + (i32.or + (i32.or + (i32.or + (set_local $$and77$i + (i32.and + (i32.shr_u + (set_local $$shr75$i + (i32.shr_u + (get_local $$sub70$i) + (get_local $$and73$i) + ) + ) + (i32.const 5) + ) + (i32.const 8) + ) + ) + (get_local $$and73$i) + ) + (set_local $$and81$i + (i32.and + (i32.shr_u + (set_local $$shr79$i + (i32.shr_u + (get_local $$shr75$i) + (get_local $$and77$i) + ) + ) + (i32.const 2) + ) + (i32.const 4) + ) + ) ) - ) - (i32.const 2) - ) - (i32.const 4) - ) - ) - ) - ) - (set_local $$add86$i - (i32.or - (get_local $$add82$i) - (set_local $$and85$i - (i32.and - (i32.shr_u - (set_local $$shr83$i - (i32.shr_u - (get_local $$shr79$i) - (get_local $$and81$i) + (set_local $$and85$i + (i32.and + (i32.shr_u + (set_local $$shr83$i + (i32.shr_u + (get_local $$shr79$i) + (get_local $$and81$i) + ) + ) + (i32.const 1) + ) + (i32.const 2) + ) ) ) - (i32.const 1) - ) - (i32.const 2) - ) - ) - ) - ) - (set_local $$add90$i - (i32.or - (get_local $$add86$i) - (set_local $$and89$i - (i32.and - (i32.shr_u - (set_local $$shr87$i - (i32.shr_u - (get_local $$shr83$i) - (get_local $$and85$i) + (set_local $$and89$i + (i32.and + (i32.shr_u + (set_local $$shr87$i + (i32.shr_u + (get_local $$shr83$i) + (get_local $$and85$i) + ) + ) + (i32.const 1) + ) + (i32.const 1) ) ) - (i32.const 1) ) - (i32.const 1) - ) - ) - ) - ) - (set_local $$t$4$ph$i - (i32.load offset=480 - (i32.shl - (i32.add - (get_local $$add90$i) (i32.shr_u (get_local $$shr87$i) (get_local $$and89$i) @@ -16378,69 +16309,63 @@ (i32.const 31) ) (block - (set_local $$add337$i - (i32.or - (set_local $$and336$i - (i32.and - (i32.shr_u - (i32.add - (set_local $$shl333$i - (i32.shl - (get_local $$shr318$i) - (set_local $$and331$i - (i32.and - (i32.shr_u - (i32.add - (get_local $$shr318$i) - (i32.const 1048320) + (set_local $$shl347$i + (i32.shl + (set_local $$add346$i + (i32.add + (i32.sub + (i32.const 14) + (i32.or + (i32.or + (set_local $$and336$i + (i32.and + (i32.shr_u + (i32.add + (set_local $$shl333$i + (i32.shl + (get_local $$shr318$i) + (set_local $$and331$i + (i32.and + (i32.shr_u + (i32.add + (get_local $$shr318$i) + (i32.const 1048320) + ) + (i32.const 16) + ) + (i32.const 8) + ) + ) + ) ) - (i32.const 16) + (i32.const 520192) ) - (i32.const 8) + (i32.const 16) ) + (i32.const 4) ) ) + (get_local $$and331$i) ) - (i32.const 520192) - ) - (i32.const 16) - ) - (i32.const 4) - ) - ) - (get_local $$and331$i) - ) - ) - (set_local $$sub343$i - (i32.sub - (i32.const 14) - (i32.or - (get_local $$add337$i) - (set_local $$and341$i - (i32.and - (i32.shr_u - (i32.add - (set_local $$shl338$i - (i32.shl - (get_local $$shl333$i) - (get_local $$and336$i) + (set_local $$and341$i + (i32.and + (i32.shr_u + (i32.add + (set_local $$shl338$i + (i32.shl + (get_local $$shl333$i) + (get_local $$and336$i) + ) + ) + (i32.const 245760) + ) + (i32.const 16) ) + (i32.const 2) ) - (i32.const 245760) ) - (i32.const 16) ) - (i32.const 2) ) - ) - ) - ) - ) - (set_local $$shl347$i - (i32.shl - (set_local $$add346$i - (i32.add - (get_local $$sub343$i) (i32.shr_u (i32.shl (get_local $$shl338$i) @@ -16685,8 +16610,8 @@ (get_local $label) (i32.const 148) ) - (block - (set_local $$cmp422$i + (if + (i32.and (i32.ge_u (set_local $$91 (i32.load @@ -16704,40 +16629,35 @@ ) ) ) + (i32.ge_u + (get_local $$T$0$i$lcssa) + (get_local $$92) + ) ) - (if - (i32.and - (get_local $$cmp422$i) - (i32.ge_u - (get_local $$T$0$i$lcssa) - (get_local $$92) - ) + (block + (i32.store offset=12 + (get_local $$91) + (get_local $$add$ptr$i$161) ) - (block - (i32.store offset=12 - (get_local $$91) - (get_local $$add$ptr$i$161) - ) - (i32.store - (get_local $$fd416$i) - (get_local $$add$ptr$i$161) - ) - (i32.store offset=8 - (get_local $$add$ptr$i$161) - (get_local $$91) - ) - (i32.store offset=12 - (get_local $$add$ptr$i$161) - (get_local $$T$0$i$lcssa) - ) - (i32.store offset=24 - (get_local $$add$ptr$i$161) - (i32.const 0) - ) - (br $do-once$29) + (i32.store + (get_local $$fd416$i) + (get_local $$add$ptr$i$161) ) - (call_import $_abort) + (i32.store offset=8 + (get_local $$add$ptr$i$161) + (get_local $$91) + ) + (i32.store offset=12 + (get_local $$add$ptr$i$161) + (get_local $$T$0$i$lcssa) + ) + (i32.store offset=24 + (get_local $$add$ptr$i$161) + (i32.const 0) + ) + (br $do-once$29) ) + (call_import $_abort) ) ) ) @@ -16997,27 +16917,26 @@ (i32.const 48) ) ) - (set_local $$add9$i - (i32.add - (set_local $$100 - (i32.load - (i32.const 656) - ) - ) - (set_local $$sub$i$181 - (i32.add - (get_local $$nb$0) - (i32.const 47) - ) - ) - ) - ) (if (i32.eqz (i32.gt_u (set_local $$and11$i (i32.and - (get_local $$add9$i) + (set_local $$add9$i + (i32.add + (set_local $$100 + (i32.load + (i32.const 656) + ) + ) + (set_local $$sub$i$181 + (i32.add + (get_local $$nb$0) + (i32.const 47) + ) + ) + ) + ) (set_local $$neg$i$182 (i32.sub (i32.const 0) @@ -17044,8 +16963,8 @@ (i32.const 0) ) ) - (block - (set_local $$cmp19$i + (if + (i32.or (i32.le_u (set_local $$add17$i$183 (i32.add @@ -17059,19 +16978,14 @@ ) (get_local $$102) ) - ) - (if - (i32.or - (get_local $$cmp19$i) - (i32.gt_u - (get_local $$add17$i$183) - (get_local $$101) - ) - ) - (return - (i32.const 0) + (i32.gt_u + (get_local $$add17$i$183) + (get_local $$101) ) ) + (return + (i32.const 0) + ) ) ) (block $label$break$L257 @@ -17177,54 +17091,51 @@ ) (i32.const 2147483647) ) - (block - (set_local $$call83$i - (call_import $_sbrk - (get_local $$and80$i) - ) - ) - (if - (i32.eq - (get_local $$call83$i) - (i32.add - (i32.load - (get_local $$base$i$i$lcssa) - ) - (i32.load - (get_local $$size$i$i$lcssa) - ) + (if + (i32.eq + (set_local $$call83$i + (call_import $_sbrk + (get_local $$and80$i) ) ) - (if - (i32.eqz - (i32.eq - (get_local $$call83$i) - (i32.const -1) - ) + (i32.add + (i32.load + (get_local $$base$i$i$lcssa) ) - (block - (set_local $$tbase$796$i - (get_local $$call83$i) - ) - (set_local $$tsize$795$i - (get_local $$and80$i) - ) - (set_local $label - (i32.const 193) - ) - (br $label$break$L257) + (i32.load + (get_local $$size$i$i$lcssa) + ) + ) + ) + (if + (i32.eqz + (i32.eq + (get_local $$call83$i) + (i32.const -1) ) ) (block - (set_local $$br$2$ph$i + (set_local $$tbase$796$i (get_local $$call83$i) ) - (set_local $$ssize$2$ph$i + (set_local $$tsize$795$i (get_local $$and80$i) ) (set_local $label - (i32.const 183) + (i32.const 193) ) + (br $label$break$L257) + ) + ) + (block + (set_local $$br$2$ph$i + (get_local $$call83$i) + ) + (set_local $$ssize$2$ph$i + (get_local $$and80$i) + ) + (set_local $label + (i32.const 183) ) ) ) @@ -17407,59 +17318,54 @@ ) ) ) - (block - (set_local $$add101$i - (i32.add - (i32.sub - (get_local $$sub$i$181) - (get_local $$ssize$2$ph$i) - ) - (set_local $$115 - (i32.load - (i32.const 656) + (if + (i32.lt_u + (set_local $$and104$i + (i32.and + (i32.add + (i32.sub + (get_local $$sub$i$181) + (get_local $$ssize$2$ph$i) + ) + (set_local $$115 + (i32.load + (i32.const 656) + ) + ) + ) + (i32.sub + (i32.const 0) + (get_local $$115) ) ) ) + (i32.const 2147483647) ) (if - (i32.lt_u - (set_local $$and104$i - (i32.and - (get_local $$add101$i) - (i32.sub - (i32.const 0) - (get_local $$115) - ) - ) + (i32.eq + (call_import $_sbrk + (get_local $$and104$i) ) - (i32.const 2147483647) + (i32.const -1) ) - (if - (i32.eq - (call_import $_sbrk - (get_local $$and104$i) - ) - (i32.const -1) - ) - (block - (call_import $_sbrk - (get_local $$sub112$i) - ) - (br $label$break$L279) + (block + (call_import $_sbrk + (get_local $$sub112$i) ) - (block - (set_local $$ssize$5$i - (i32.add - (get_local $$and104$i) - (get_local $$ssize$2$ph$i) - ) + (br $label$break$L279) + ) + (block + (set_local $$ssize$5$i + (i32.add + (get_local $$and104$i) + (get_local $$ssize$2$ph$i) ) - (br $do-once$42) ) + (br $do-once$42) ) - (set_local $$ssize$5$i - (get_local $$ssize$2$ph$i) - ) + ) + (set_local $$ssize$5$i + (get_local $$ssize$2$ph$i) ) ) (set_local $$ssize$5$i @@ -17519,15 +17425,14 @@ (i32.const 2147483647) ) (block - (set_local $$call131$i - (call_import $_sbrk - (get_local $$and11$i) - ) - ) (set_local $$or$cond4$i (i32.and (i32.ne - (get_local $$call131$i) + (set_local $$call131$i + (call_import $_sbrk + (get_local $$and11$i) + ) + ) (i32.const -1) ) (i32.ne @@ -17617,19 +17522,16 @@ (i32.const 0) ) (block - (set_local $$cmp159$i$199 - (i32.eq - (set_local $$120 - (i32.load - (i32.const 192) - ) - ) - (i32.const 0) - ) - ) (if (i32.or - (get_local $$cmp159$i$199) + (i32.eq + (set_local $$120 + (i32.load + (i32.const 192) + ) + ) + (i32.const 0) + ) (i32.lt_u (get_local $$tbase$796$i) (get_local $$120) @@ -18963,69 +18865,63 @@ (br $do-once$69) ) ) - (set_local $$add269$i$i - (i32.or - (set_local $$and268$i$i - (i32.and - (i32.shr_u - (i32.add - (set_local $$shl265$i$i - (i32.shl - (get_local $$shr253$i$i) - (set_local $$and264$i$i - (i32.and - (i32.shr_u - (i32.add - (get_local $$shr253$i$i) - (i32.const 1048320) + (set_local $$shl279$i$i + (i32.shl + (set_local $$add278$i$i + (i32.add + (i32.sub + (i32.const 14) + (i32.or + (i32.or + (set_local $$and268$i$i + (i32.and + (i32.shr_u + (i32.add + (set_local $$shl265$i$i + (i32.shl + (get_local $$shr253$i$i) + (set_local $$and264$i$i + (i32.and + (i32.shr_u + (i32.add + (get_local $$shr253$i$i) + (i32.const 1048320) + ) + (i32.const 16) + ) + (i32.const 8) + ) + ) + ) ) - (i32.const 16) + (i32.const 520192) ) - (i32.const 8) + (i32.const 16) ) + (i32.const 4) ) ) + (get_local $$and264$i$i) ) - (i32.const 520192) - ) - (i32.const 16) - ) - (i32.const 4) - ) - ) - (get_local $$and264$i$i) - ) - ) - (set_local $$sub275$i$i - (i32.sub - (i32.const 14) - (i32.or - (get_local $$add269$i$i) - (set_local $$and273$i$i - (i32.and - (i32.shr_u - (i32.add - (set_local $$shl270$i$i - (i32.shl - (get_local $$shl265$i$i) - (get_local $$and268$i$i) + (set_local $$and273$i$i + (i32.and + (i32.shr_u + (i32.add + (set_local $$shl270$i$i + (i32.shl + (get_local $$shl265$i$i) + (get_local $$and268$i$i) + ) + ) + (i32.const 245760) + ) + (i32.const 16) ) + (i32.const 2) ) - (i32.const 245760) ) - (i32.const 16) ) - (i32.const 2) ) - ) - ) - ) - ) - (set_local $$shl279$i$i - (i32.shl - (set_local $$add278$i$i - (i32.add - (get_local $$sub275$i$i) (i32.shr_u (i32.shl (get_local $$shl270$i$i) @@ -19270,8 +19166,8 @@ (get_local $label) (i32.const 281) ) - (block - (set_local $$cmp350$i$i + (if + (i32.and (i32.ge_u (set_local $$182 (i32.load @@ -19289,40 +19185,35 @@ ) ) ) + (i32.ge_u + (get_local $$T$0$i$58$i$lcssa) + (get_local $$183) + ) ) - (if - (i32.and - (get_local $$cmp350$i$i) - (i32.ge_u - (get_local $$T$0$i$58$i$lcssa) - (get_local $$183) - ) + (block + (i32.store offset=12 + (get_local $$182) + (get_local $$add$ptr17$i$i) ) - (block - (i32.store offset=12 - (get_local $$182) - (get_local $$add$ptr17$i$i) - ) - (i32.store - (get_local $$fd344$i$i) - (get_local $$add$ptr17$i$i) - ) - (i32.store offset=8 - (get_local $$add$ptr17$i$i) - (get_local $$182) - ) - (i32.store offset=12 - (get_local $$add$ptr17$i$i) - (get_local $$T$0$i$58$i$lcssa) - ) - (i32.store offset=24 - (get_local $$add$ptr17$i$i) - (i32.const 0) - ) - (br $do-once$52) + (i32.store + (get_local $$fd344$i$i) + (get_local $$add$ptr17$i$i) ) - (call_import $_abort) + (i32.store offset=8 + (get_local $$add$ptr17$i$i) + (get_local $$182) + ) + (i32.store offset=12 + (get_local $$add$ptr17$i$i) + (get_local $$T$0$i$58$i$lcssa) + ) + (i32.store offset=24 + (get_local $$add$ptr17$i$i) + (i32.const 0) + ) + (br $do-once$52) ) + (call_import $_abort) ) ) ) @@ -19757,69 +19648,63 @@ (i32.const 31) ) (block - (set_local $$add74$i$i - (i32.or - (set_local $$and73$i$i - (i32.and - (i32.shr_u - (i32.add - (set_local $$shl70$i$i - (i32.shl - (get_local $$shr58$i$i) - (set_local $$and69$i$i - (i32.and - (i32.shr_u - (i32.add - (get_local $$shr58$i$i) - (i32.const 1048320) + (set_local $$shl84$i$i + (i32.shl + (set_local $$add83$i$i + (i32.add + (i32.sub + (i32.const 14) + (i32.or + (i32.or + (set_local $$and73$i$i + (i32.and + (i32.shr_u + (i32.add + (set_local $$shl70$i$i + (i32.shl + (get_local $$shr58$i$i) + (set_local $$and69$i$i + (i32.and + (i32.shr_u + (i32.add + (get_local $$shr58$i$i) + (i32.const 1048320) + ) + (i32.const 16) + ) + (i32.const 8) + ) + ) + ) ) - (i32.const 16) + (i32.const 520192) ) - (i32.const 8) + (i32.const 16) ) + (i32.const 4) ) ) + (get_local $$and69$i$i) ) - (i32.const 520192) - ) - (i32.const 16) - ) - (i32.const 4) - ) - ) - (get_local $$and69$i$i) - ) - ) - (set_local $$sub80$i$i - (i32.sub - (i32.const 14) - (i32.or - (get_local $$add74$i$i) - (set_local $$and78$i$i - (i32.and - (i32.shr_u - (i32.add - (set_local $$shl75$i$i - (i32.shl - (get_local $$shl70$i$i) - (get_local $$and73$i$i) + (set_local $$and78$i$i + (i32.and + (i32.shr_u + (i32.add + (set_local $$shl75$i$i + (i32.shl + (get_local $$shl70$i$i) + (get_local $$and73$i$i) + ) + ) + (i32.const 245760) + ) + (i32.const 16) ) + (i32.const 2) ) - (i32.const 245760) ) - (i32.const 16) ) - (i32.const 2) ) - ) - ) - ) - ) - (set_local $$shl84$i$i - (i32.shl - (set_local $$add83$i$i - (i32.add - (get_local $$sub80$i$i) (i32.shr_u (i32.shl (get_local $$shl75$i$i) @@ -20059,8 +19944,8 @@ (get_local $label) (i32.const 307) ) - (block - (set_local $$cmp153$i$i + (if + (i32.and (i32.ge_u (set_local $$204 (i32.load @@ -20078,40 +19963,35 @@ ) ) ) + (i32.ge_u + (get_local $$T$0$i$i$lcssa) + (get_local $$205) + ) ) - (if - (i32.and - (get_local $$cmp153$i$i) - (i32.ge_u - (get_local $$T$0$i$i$lcssa) - (get_local $$205) - ) + (block + (i32.store offset=12 + (get_local $$204) + (get_local $$119) ) - (block - (i32.store offset=12 - (get_local $$204) - (get_local $$119) - ) - (i32.store - (get_local $$fd148$i$i) - (get_local $$119) - ) - (i32.store offset=8 - (get_local $$119) - (get_local $$204) - ) - (i32.store offset=12 - (get_local $$119) - (get_local $$T$0$i$i$lcssa) - ) - (i32.store offset=24 - (get_local $$119) - (i32.const 0) - ) - (br $do-once$44) + (i32.store + (get_local $$fd148$i$i) + (get_local $$119) ) - (call_import $_abort) + (i32.store offset=8 + (get_local $$119) + (get_local $$204) + ) + (i32.store offset=12 + (get_local $$119) + (get_local $$T$0$i$i$lcssa) + ) + (i32.store offset=24 + (get_local $$119) + (i32.const 0) + ) + (br $do-once$44) ) + (call_import $_abort) ) ) ) @@ -20242,7 +20122,6 @@ (local $$1 i32) (local $$$pre$phiZ2D i32) (local $$sub589 i32) - (local $$sub556 i32) (local $$sp$0$i i32) (local $$shl600 i32) (local $$shl573 i32) @@ -20260,7 +20139,6 @@ (local $$fd311 i32) (local $$dec i32) (local $$cond i32) - (local $$cmp624 i32) (local $$cmp$i i32) (local $$child443 i32) (local $$child171 i32) @@ -20284,7 +20162,6 @@ (local $$and545 i32) (local $$and i32) (local $$add559 i32) - (local $$add550 i32) (local $$add246 i32) (local $$T$0$lcssa319 i32) (local $$R332$1$lcssa i32) @@ -20315,6 +20192,7 @@ (local $$tobool513 i32) (local $$tobool241 i32) (local $$tobool233 i32) + (local $$sub556 i32) (local $$sub552 i32) (local $$sub547 i32) (local $$sub i32) @@ -20383,6 +20261,7 @@ (local $$cmp80 i32) (local $$cmp74 i32) (local $$cmp640 i32) + (local $$cmp624 i32) (local $$cmp605 i32) (local $$cmp601 i32) (local $$cmp593 i32) @@ -20495,6 +20374,7 @@ (local $$add564 i32) (local $$add561 i32) (local $$add555 i32) + (local $$add550 i32) (local $$add$ptr498 i32) (local $$add$ptr482 i32) (local $$add$ptr261 i32) @@ -22136,69 +22016,63 @@ (i32.const 31) ) (block - (set_local $$add550 - (i32.or - (set_local $$and549 - (i32.and - (i32.shr_u - (i32.add - (set_local $$shl546 - (i32.shl - (get_local $$shr535) - (set_local $$and545 - (i32.and - (i32.shr_u - (i32.add - (get_local $$shr535) - (i32.const 1048320) + (set_local $$shl560 + (i32.shl + (set_local $$add559 + (i32.add + (i32.sub + (i32.const 14) + (i32.or + (i32.or + (set_local $$and549 + (i32.and + (i32.shr_u + (i32.add + (set_local $$shl546 + (i32.shl + (get_local $$shr535) + (set_local $$and545 + (i32.and + (i32.shr_u + (i32.add + (get_local $$shr535) + (i32.const 1048320) + ) + (i32.const 16) + ) + (i32.const 8) + ) + ) + ) ) - (i32.const 16) + (i32.const 520192) ) - (i32.const 8) + (i32.const 16) ) + (i32.const 4) ) ) + (get_local $$and545) ) - (i32.const 520192) - ) - (i32.const 16) - ) - (i32.const 4) - ) - ) - (get_local $$and545) - ) - ) - (set_local $$sub556 - (i32.sub - (i32.const 14) - (i32.or - (get_local $$add550) - (set_local $$and554 - (i32.and - (i32.shr_u - (i32.add - (set_local $$shl551 - (i32.shl - (get_local $$shl546) - (get_local $$and549) + (set_local $$and554 + (i32.and + (i32.shr_u + (i32.add + (set_local $$shl551 + (i32.shl + (get_local $$shl546) + (get_local $$and549) + ) + ) + (i32.const 245760) + ) + (i32.const 16) ) + (i32.const 2) ) - (i32.const 245760) ) - (i32.const 16) ) - (i32.const 2) ) - ) - ) - ) - ) - (set_local $$shl560 - (i32.shl - (set_local $$add559 - (i32.add - (get_local $$sub556) (i32.shr_u (i32.shl (get_local $$shl551) @@ -22438,8 +22312,8 @@ (get_local $label) (i32.const 130) ) - (block - (set_local $$cmp624 + (if + (i32.and (i32.ge_u (set_local $$71 (i32.load @@ -22457,40 +22331,35 @@ ) ) ) + (i32.ge_u + (get_local $$T$0$lcssa) + (get_local $$72) + ) ) - (if - (i32.and - (get_local $$cmp624) - (i32.ge_u - (get_local $$T$0$lcssa) - (get_local $$72) - ) + (block + (i32.store offset=12 + (get_local $$71) + (get_local $$p$1) ) - (block - (i32.store offset=12 - (get_local $$71) - (get_local $$p$1) - ) - (i32.store - (get_local $$fd620) - (get_local $$p$1) - ) - (i32.store offset=8 - (get_local $$p$1) - (get_local $$71) - ) - (i32.store offset=12 - (get_local $$p$1) - (get_local $$T$0$lcssa) - ) - (i32.store offset=24 - (get_local $$p$1) - (i32.const 0) - ) - (br $do-once$16) + (i32.store + (get_local $$fd620) + (get_local $$p$1) ) - (call_import $_abort) + (i32.store offset=8 + (get_local $$p$1) + (get_local $$71) + ) + (i32.store offset=12 + (get_local $$p$1) + (get_local $$T$0$lcssa) + ) + (i32.store offset=24 + (get_local $$p$1) + (i32.const 0) + ) + (br $do-once$16) ) + (call_import $_abort) ) ) ) @@ -23174,10 +23043,10 @@ (local $$1$0 i32) (local $$7$1 i32) (local $$7$0 i32) - (local $$4$1 i32) - (local $$4$0 i32) (local $$8$0 i32) (local $$6$0 i32) + (local $$4$1 i32) + (local $$4$0 i32) (local $$10$0 i32) (set_local $$1$0 (i32.or @@ -23269,31 +23138,25 @@ ) ) ) - (set_local $$4$0 - (call $_i64Subtract - (i32.xor - (get_local $$1$0) - (get_local $$a$0) - ) - (i32.xor - (get_local $$1$1) - (get_local $$a$1) - ) - (get_local $$1$0) - (get_local $$1$1) - ) - ) - (set_local $$4$1 - (i32.load - (i32.const 168) - ) - ) (return (call $_i64Subtract (i32.xor (call $___udivmoddi4 - (get_local $$4$0) - (get_local $$4$1) + (call $_i64Subtract + (i32.xor + (get_local $$1$0) + (get_local $$a$0) + ) + (i32.xor + (get_local $$1$1) + (get_local $$a$1) + ) + (get_local $$1$0) + (get_local $$1$1) + ) + (i32.load + (i32.const 168) + ) (call $_i64Subtract (i32.xor (get_local $$2$0) @@ -23341,11 +23204,11 @@ (local $__stackBase__ i32) (local $$2$1 i32) (local $$2$0 i32) - (local $$4$1 i32) - (local $$4$0 i32) (local $$10$1 i32) (local $$10$0 i32) (local $$6$0 i32) + (local $$4$1 i32) + (local $$4$0 i32) (set_local $__stackBase__ (i32.load (i32.const 8) @@ -23453,7 +23316,7 @@ ) ) ) - (set_local $$4$0 + (call $___udivmoddi4 (call $_i64Subtract (i32.xor (get_local $$1$0) @@ -23466,15 +23329,9 @@ (get_local $$1$0) (get_local $$1$1) ) - ) - (set_local $$4$1 (i32.load (i32.const 168) ) - ) - (call $___udivmoddi4 - (get_local $$4$0) - (get_local $$4$1) (call $_i64Subtract (i32.xor (get_local $$2$0) diff --git a/test/memorygrowth.fromasm b/test/memorygrowth.fromasm index 5f03a70f6..2a739d2af 100644 --- a/test/memorygrowth.fromasm +++ b/test/memorygrowth.fromasm @@ -47,12 +47,12 @@ (local $ma i32) (local $i i32) (local $q i32) - (local $V i32) (local $ja i32) + (local $V i32) (local $c i32) - (local $g i32) - (local $d i32) (local $aa i32) + (local $d i32) + (local $g i32) (local $la i32) (local $f i32) (local $N i32) @@ -61,8 +61,8 @@ (local $ca i32) (local $ga i32) (local $U i32) - (local $$ i32) (local $ea i32) + (local $$ i32) (local $y i32) (local $j i32) (local $ha i32) @@ -70,14 +70,14 @@ (local $ba i32) (local $u i32) (local $da i32) - (local $n i32) (local $W i32) + (local $n i32) (local $ya i32) (local $fa i32) (local $C i32) - (local $l i32) (local $ia i32) (local $b i32) + (local $l i32) (local $Ea i32) (local $P i32) (local $Oa i32) @@ -382,48 +382,6 @@ (i32.const 16) ) ) - (set_local $n - (i32.and - (i32.shr_u - (set_local $o - (i32.shr_u - (get_local $n) - (get_local $i) - ) - ) - (i32.const 5) - ) - (i32.const 8) - ) - ) - (set_local $o - (i32.and - (i32.shr_u - (set_local $q - (i32.shr_u - (get_local $o) - (get_local $n) - ) - ) - (i32.const 2) - ) - (i32.const 4) - ) - ) - (set_local $q - (i32.and - (i32.shr_u - (set_local $s - (i32.shr_u - (get_local $q) - (get_local $o) - ) - ) - (i32.const 1) - ) - (i32.const 2) - ) - ) (set_local $i (i32.load (set_local $o @@ -443,12 +401,51 @@ (i32.or (i32.or (i32.or - (get_local $n) + (set_local $n + (i32.and + (i32.shr_u + (set_local $o + (i32.shr_u + (get_local $n) + (get_local $i) + ) + ) + (i32.const 5) + ) + (i32.const 8) + ) + ) (get_local $i) ) - (get_local $o) + (set_local $o + (i32.and + (i32.shr_u + (set_local $q + (i32.shr_u + (get_local $o) + (get_local $n) + ) + ) + (i32.const 2) + ) + (i32.const 4) + ) + ) + ) + (set_local $q + (i32.and + (i32.shr_u + (set_local $s + (i32.shr_u + (get_local $q) + (get_local $o) + ) + ) + (i32.const 1) + ) + (i32.const 2) + ) ) - (get_local $q) ) (set_local $s (i32.and @@ -734,48 +731,6 @@ (i32.const 16) ) ) - (set_local $i - (i32.and - (i32.shr_u - (set_local $f - (i32.shr_u - (get_local $i) - (get_local $t) - ) - ) - (i32.const 5) - ) - (i32.const 8) - ) - ) - (set_local $f - (i32.and - (i32.shr_u - (set_local $s - (i32.shr_u - (get_local $f) - (get_local $i) - ) - ) - (i32.const 2) - ) - (i32.const 4) - ) - ) - (set_local $s - (i32.and - (i32.shr_u - (set_local $e - (i32.shr_u - (get_local $s) - (get_local $f) - ) - ) - (i32.const 1) - ) - (i32.const 2) - ) - ) (set_local $e (i32.sub (i32.and @@ -789,12 +744,51 @@ (i32.or (i32.or (i32.or - (get_local $i) + (set_local $i + (i32.and + (i32.shr_u + (set_local $f + (i32.shr_u + (get_local $i) + (get_local $t) + ) + ) + (i32.const 5) + ) + (i32.const 8) + ) + ) (get_local $t) ) - (get_local $f) + (set_local $f + (i32.and + (i32.shr_u + (set_local $s + (i32.shr_u + (get_local $f) + (get_local $i) + ) + ) + (i32.const 2) + ) + (i32.const 4) + ) + ) + ) + (set_local $s + (i32.and + (i32.shr_u + (set_local $e + (i32.shr_u + (get_local $s) + (get_local $f) + ) + ) + (i32.const 1) + ) + (i32.const 2) + ) ) - (get_local $s) ) (set_local $e (i32.and @@ -1516,87 +1510,84 @@ (set_local $J (i32.const 31) ) - (block - (set_local $o + (set_local $J + (i32.or (i32.and (i32.shr_u + (get_local $e) (i32.add - (set_local $u - (i32.shl - (get_local $o) - (set_local $s - (i32.and - (i32.shr_u - (i32.add - (get_local $o) - (i32.const 1048320) - ) - (i32.const 16) - ) - (i32.const 8) - ) - ) - ) - ) - (i32.const 520192) - ) - (i32.const 16) - ) - (i32.const 4) - ) - ) - (set_local $J - (i32.or - (i32.and - (i32.shr_u - (get_local $e) - (i32.add - (set_local $t - (i32.add - (i32.sub - (i32.const 14) + (set_local $t + (i32.add + (i32.sub + (i32.const 14) + (i32.or (i32.or - (i32.or - (get_local $o) - (get_local $s) - ) - (set_local $u + (set_local $o (i32.and (i32.shr_u (i32.add - (set_local $j + (set_local $u (i32.shl - (get_local $u) (get_local $o) + (set_local $s + (i32.and + (i32.shr_u + (i32.add + (get_local $o) + (i32.const 1048320) + ) + (i32.const 16) + ) + (i32.const 8) + ) + ) ) ) - (i32.const 245760) + (i32.const 520192) ) (i32.const 16) ) - (i32.const 2) + (i32.const 4) ) ) + (get_local $s) ) - ) - (i32.shr_u - (i32.shl - (get_local $j) - (get_local $u) + (set_local $u + (i32.and + (i32.shr_u + (i32.add + (set_local $j + (i32.shl + (get_local $u) + (get_local $o) + ) + ) + (i32.const 245760) + ) + (i32.const 16) + ) + (i32.const 2) + ) ) - (i32.const 15) ) ) + (i32.shr_u + (i32.shl + (get_local $j) + (get_local $u) + ) + (i32.const 15) + ) ) - (i32.const 7) ) + (i32.const 7) ) - (i32.const 1) - ) - (i32.shl - (get_local $t) - (i32.const 1) ) + (i32.const 1) + ) + (i32.shl + (get_local $t) + (i32.const 1) ) ) ) @@ -1706,16 +1697,15 @@ ) ) ) - (set_local $l - (i32.load offset=20 - (get_local $o) - ) - ) (set_local $m (if (i32.or (i32.eq - (get_local $l) + (set_local $l + (i32.load offset=20 + (get_local $o) + ) + ) (i32.const 0) ) (i32.eq @@ -1873,48 +1863,6 @@ (i32.const 16) ) ) - (set_local $t - (i32.and - (i32.shr_u - (set_local $d - (i32.shr_u - (get_local $t) - (get_local $f) - ) - ) - (i32.const 5) - ) - (i32.const 8) - ) - ) - (set_local $d - (i32.and - (i32.shr_u - (set_local $g - (i32.shr_u - (get_local $d) - (get_local $t) - ) - ) - (i32.const 2) - ) - (i32.const 4) - ) - ) - (set_local $g - (i32.and - (i32.shr_u - (set_local $i - (i32.shr_u - (get_local $g) - (get_local $d) - ) - ) - (i32.const 1) - ) - (i32.const 2) - ) - ) (set_local $T (i32.load (i32.add @@ -1924,12 +1872,51 @@ (i32.or (i32.or (i32.or - (get_local $t) + (set_local $t + (i32.and + (i32.shr_u + (set_local $d + (i32.shr_u + (get_local $t) + (get_local $f) + ) + ) + (i32.const 5) + ) + (i32.const 8) + ) + ) (get_local $f) ) - (get_local $d) + (set_local $d + (i32.and + (i32.shr_u + (set_local $g + (i32.shr_u + (get_local $d) + (get_local $t) + ) + ) + (i32.const 2) + ) + (i32.const 4) + ) + ) + ) + (set_local $g + (i32.and + (i32.shr_u + (set_local $i + (i32.shr_u + (get_local $g) + (get_local $d) + ) + ) + (i32.const 1) + ) + (i32.const 2) + ) ) - (get_local $g) ) (set_local $i (i32.and @@ -2643,87 +2630,84 @@ (set_local $ba (i32.const 31) ) - (block - (set_local $g + (set_local $ba + (i32.or (i32.and (i32.shr_u + (get_local $U) (i32.add - (set_local $d - (i32.shl - (get_local $g) - (set_local $s - (i32.and - (i32.shr_u - (i32.add - (get_local $g) - (i32.const 1048320) - ) - (i32.const 16) - ) - (i32.const 8) - ) - ) - ) - ) - (i32.const 520192) - ) - (i32.const 16) - ) - (i32.const 4) - ) - ) - (set_local $ba - (i32.or - (i32.and - (i32.shr_u - (get_local $U) - (i32.add - (set_local $t - (i32.add - (i32.sub - (i32.const 14) + (set_local $t + (i32.add + (i32.sub + (i32.const 14) + (i32.or (i32.or - (i32.or - (get_local $g) - (get_local $s) - ) - (set_local $d + (set_local $g (i32.and (i32.shr_u (i32.add - (set_local $q + (set_local $d (i32.shl - (get_local $d) (get_local $g) + (set_local $s + (i32.and + (i32.shr_u + (i32.add + (get_local $g) + (i32.const 1048320) + ) + (i32.const 16) + ) + (i32.const 8) + ) + ) ) ) - (i32.const 245760) + (i32.const 520192) ) (i32.const 16) ) - (i32.const 2) + (i32.const 4) ) ) + (get_local $s) ) - ) - (i32.shr_u - (i32.shl - (get_local $q) - (get_local $d) + (set_local $d + (i32.and + (i32.shr_u + (i32.add + (set_local $q + (i32.shl + (get_local $d) + (get_local $g) + ) + ) + (i32.const 245760) + ) + (i32.const 16) + ) + (i32.const 2) + ) ) - (i32.const 15) ) ) + (i32.shr_u + (i32.shl + (get_local $q) + (get_local $d) + ) + (i32.const 15) + ) ) - (i32.const 7) ) + (i32.const 7) ) - (i32.const 1) - ) - (i32.shl - (get_local $t) - (i32.const 1) ) + (i32.const 1) + ) + (i32.shl + (get_local $t) + (i32.const 1) ) ) ) @@ -3233,26 +3217,25 @@ (i32.const 48) ) ) - (set_local $V - (i32.add - (set_local $c - (i32.load - (i32.const 1688) - ) - ) - (set_local $ca - (i32.add - (get_local $y) - (i32.const 47) - ) - ) - ) - ) (if (i32.le_u (set_local $c (i32.and - (get_local $V) + (set_local $V + (i32.add + (set_local $c + (i32.load + (i32.const 1688) + ) + ) + (set_local $ca + (i32.add + (get_local $y) + (i32.const 47) + ) + ) + ) + ) (set_local $da (i32.sub (i32.const 0) @@ -3720,56 +3703,53 @@ (get_local $c) (i32.const 2147483647) ) - (block - (set_local $ma - (call_import $ta - (get_local $c) + (if + (i32.and + (i32.lt_u + (set_local $ma + (call_import $ta + (get_local $c) + ) + ) + (set_local $c + (call_import $ta + (i32.const 0) + ) + ) ) - ) - (if (i32.and - (i32.lt_u + (i32.ne (get_local $ma) - (set_local $c - (call_import $ta - (i32.const 0) - ) - ) + (i32.const -1) ) - (i32.and - (i32.ne - (get_local $ma) - (i32.const -1) - ) - (i32.ne + (i32.ne + (get_local $c) + (i32.const -1) + ) + ) + ) + (if + (i32.gt_u + (set_local $ja + (i32.sub (get_local $c) - (i32.const -1) + (get_local $ma) ) ) + (i32.add + (get_local $y) + (i32.const 40) + ) ) - (if - (i32.gt_u - (set_local $ja - (i32.sub - (get_local $c) - (get_local $ma) - ) - ) - (i32.add - (get_local $y) - (i32.const 40) - ) + (block + (set_local $ha + (get_local $ma) ) - (block - (set_local $ha - (get_local $ma) - ) - (set_local $ia - (get_local $ja) - ) - (set_local $N - (i32.const 191) - ) + (set_local $ia + (get_local $ja) + ) + (set_local $N + (i32.const 191) ) ) ) @@ -4915,34 +4895,6 @@ (br $do-once$67) ) ) - (set_local $$ - (i32.and - (i32.shr_u - (i32.add - (set_local $ga - (i32.shl - (get_local $e) - (set_local $V - (i32.and - (i32.shr_u - (i32.add - (get_local $e) - (i32.const 1048320) - ) - (i32.const 16) - ) - (i32.const 8) - ) - ) - ) - ) - (i32.const 520192) - ) - (i32.const 16) - ) - (i32.const 4) - ) - ) (set_local $Ha (i32.or (i32.and @@ -4955,7 +4907,34 @@ (i32.const 14) (i32.or (i32.or - (get_local $$) + (set_local $$ + (i32.and + (i32.shr_u + (i32.add + (set_local $ga + (i32.shl + (get_local $e) + (set_local $V + (i32.and + (i32.shr_u + (i32.add + (get_local $e) + (i32.const 1048320) + ) + (i32.const 16) + ) + (i32.const 8) + ) + ) + ) + ) + (i32.const 520192) + ) + (i32.const 16) + ) + (i32.const 4) + ) + ) (get_local $V) ) (set_local $ga @@ -5318,32 +5297,31 @@ ) (set_local $ka (i32.add - (get_local $ca) - (if - (i32.eq - (i32.and - (get_local $ea) - (i32.const 7) - ) - (i32.const 0) - ) - (i32.const 0) - (i32.and - (i32.sub - (i32.const 0) - (get_local $ea) - ) - (i32.const 7) - ) - ) - ) - ) - (set_local $ka - (i32.add (set_local $ca (if (i32.lt_u - (get_local $ka) + (set_local $ka + (i32.add + (get_local $ca) + (if + (i32.eq + (i32.and + (get_local $ea) + (i32.const 7) + ) + (i32.const 0) + ) + (i32.const 0) + (i32.and + (i32.sub + (i32.const 0) + (get_local $ea) + ) + (i32.const 7) + ) + ) + ) + ) (set_local $ea (i32.add (get_local $ja) @@ -5646,87 +5624,84 @@ (set_local $Oa (i32.const 31) ) - (block - (set_local $c + (set_local $Oa + (i32.or (i32.and (i32.shr_u + (get_local $ka) (i32.add - (set_local $ga - (i32.shl - (get_local $c) - (set_local $la - (i32.and - (i32.shr_u - (i32.add - (get_local $c) - (i32.const 1048320) - ) - (i32.const 16) - ) - (i32.const 8) - ) - ) - ) - ) - (i32.const 520192) - ) - (i32.const 16) - ) - (i32.const 4) - ) - ) - (set_local $Oa - (i32.or - (i32.and - (i32.shr_u - (get_local $ka) - (i32.add - (set_local $e - (i32.add - (i32.sub - (i32.const 14) + (set_local $e + (i32.add + (i32.sub + (i32.const 14) + (i32.or (i32.or - (i32.or - (get_local $c) - (get_local $la) - ) - (set_local $ga + (set_local $c (i32.and (i32.shr_u (i32.add - (set_local $ma + (set_local $ga (i32.shl - (get_local $ga) (get_local $c) + (set_local $la + (i32.and + (i32.shr_u + (i32.add + (get_local $c) + (i32.const 1048320) + ) + (i32.const 16) + ) + (i32.const 8) + ) + ) ) ) - (i32.const 245760) + (i32.const 520192) ) (i32.const 16) ) - (i32.const 2) + (i32.const 4) ) ) + (get_local $la) ) - ) - (i32.shr_u - (i32.shl - (get_local $ma) - (get_local $ga) + (set_local $ga + (i32.and + (i32.shr_u + (i32.add + (set_local $ma + (i32.shl + (get_local $ga) + (get_local $c) + ) + ) + (i32.const 245760) + ) + (i32.const 16) + ) + (i32.const 2) + ) ) - (i32.const 15) ) ) + (i32.shr_u + (i32.shl + (get_local $ma) + (get_local $ga) + ) + (i32.const 15) + ) ) - (i32.const 7) ) + (i32.const 7) ) - (i32.const 1) - ) - (i32.shl - (get_local $e) - (i32.const 1) ) + (i32.const 1) + ) + (i32.shl + (get_local $e) + (i32.const 1) ) ) ) @@ -7739,87 +7714,84 @@ (set_local $G (i32.const 31) ) - (block - (set_local $b + (set_local $G + (i32.or (i32.and (i32.shr_u + (get_local $D) (i32.add - (set_local $E - (i32.shl - (get_local $b) - (set_local $F - (i32.and - (i32.shr_u - (i32.add - (get_local $b) - (i32.const 1048320) - ) - (i32.const 16) - ) - (i32.const 8) - ) - ) - ) - ) - (i32.const 520192) - ) - (i32.const 16) - ) - (i32.const 4) - ) - ) - (set_local $G - (i32.or - (i32.and - (i32.shr_u - (get_local $D) - (i32.add - (set_local $s - (i32.add - (i32.sub - (i32.const 14) + (set_local $s + (i32.add + (i32.sub + (i32.const 14) + (i32.or (i32.or - (i32.or - (get_local $b) - (get_local $F) - ) - (set_local $E + (set_local $b (i32.and (i32.shr_u (i32.add - (set_local $e + (set_local $E (i32.shl - (get_local $E) (get_local $b) + (set_local $F + (i32.and + (i32.shr_u + (i32.add + (get_local $b) + (i32.const 1048320) + ) + (i32.const 16) + ) + (i32.const 8) + ) + ) ) ) - (i32.const 245760) + (i32.const 520192) ) (i32.const 16) ) - (i32.const 2) + (i32.const 4) ) ) + (get_local $F) ) - ) - (i32.shr_u - (i32.shl - (get_local $e) - (get_local $E) + (set_local $E + (i32.and + (i32.shr_u + (i32.add + (set_local $e + (i32.shl + (get_local $E) + (get_local $b) + ) + ) + (i32.const 245760) + ) + (i32.const 16) + ) + (i32.const 2) + ) ) - (i32.const 15) ) ) + (i32.shr_u + (i32.shl + (get_local $e) + (get_local $E) + ) + (i32.const 15) + ) ) - (i32.const 7) ) + (i32.const 7) ) - (i32.const 1) - ) - (i32.shl - (get_local $s) - (i32.const 1) ) + (i32.const 1) + ) + (i32.shl + (get_local $s) + (i32.const 1) ) ) ) diff --git a/test/memorygrowth.fromasm.imprecise b/test/memorygrowth.fromasm.imprecise index 5f03a70f6..2a739d2af 100644 --- a/test/memorygrowth.fromasm.imprecise +++ b/test/memorygrowth.fromasm.imprecise @@ -47,12 +47,12 @@ (local $ma i32) (local $i i32) (local $q i32) - (local $V i32) (local $ja i32) + (local $V i32) (local $c i32) - (local $g i32) - (local $d i32) (local $aa i32) + (local $d i32) + (local $g i32) (local $la i32) (local $f i32) (local $N i32) @@ -61,8 +61,8 @@ (local $ca i32) (local $ga i32) (local $U i32) - (local $$ i32) (local $ea i32) + (local $$ i32) (local $y i32) (local $j i32) (local $ha i32) @@ -70,14 +70,14 @@ (local $ba i32) (local $u i32) (local $da i32) - (local $n i32) (local $W i32) + (local $n i32) (local $ya i32) (local $fa i32) (local $C i32) - (local $l i32) (local $ia i32) (local $b i32) + (local $l i32) (local $Ea i32) (local $P i32) (local $Oa i32) @@ -382,48 +382,6 @@ (i32.const 16) ) ) - (set_local $n - (i32.and - (i32.shr_u - (set_local $o - (i32.shr_u - (get_local $n) - (get_local $i) - ) - ) - (i32.const 5) - ) - (i32.const 8) - ) - ) - (set_local $o - (i32.and - (i32.shr_u - (set_local $q - (i32.shr_u - (get_local $o) - (get_local $n) - ) - ) - (i32.const 2) - ) - (i32.const 4) - ) - ) - (set_local $q - (i32.and - (i32.shr_u - (set_local $s - (i32.shr_u - (get_local $q) - (get_local $o) - ) - ) - (i32.const 1) - ) - (i32.const 2) - ) - ) (set_local $i (i32.load (set_local $o @@ -443,12 +401,51 @@ (i32.or (i32.or (i32.or - (get_local $n) + (set_local $n + (i32.and + (i32.shr_u + (set_local $o + (i32.shr_u + (get_local $n) + (get_local $i) + ) + ) + (i32.const 5) + ) + (i32.const 8) + ) + ) (get_local $i) ) - (get_local $o) + (set_local $o + (i32.and + (i32.shr_u + (set_local $q + (i32.shr_u + (get_local $o) + (get_local $n) + ) + ) + (i32.const 2) + ) + (i32.const 4) + ) + ) + ) + (set_local $q + (i32.and + (i32.shr_u + (set_local $s + (i32.shr_u + (get_local $q) + (get_local $o) + ) + ) + (i32.const 1) + ) + (i32.const 2) + ) ) - (get_local $q) ) (set_local $s (i32.and @@ -734,48 +731,6 @@ (i32.const 16) ) ) - (set_local $i - (i32.and - (i32.shr_u - (set_local $f - (i32.shr_u - (get_local $i) - (get_local $t) - ) - ) - (i32.const 5) - ) - (i32.const 8) - ) - ) - (set_local $f - (i32.and - (i32.shr_u - (set_local $s - (i32.shr_u - (get_local $f) - (get_local $i) - ) - ) - (i32.const 2) - ) - (i32.const 4) - ) - ) - (set_local $s - (i32.and - (i32.shr_u - (set_local $e - (i32.shr_u - (get_local $s) - (get_local $f) - ) - ) - (i32.const 1) - ) - (i32.const 2) - ) - ) (set_local $e (i32.sub (i32.and @@ -789,12 +744,51 @@ (i32.or (i32.or (i32.or - (get_local $i) + (set_local $i + (i32.and + (i32.shr_u + (set_local $f + (i32.shr_u + (get_local $i) + (get_local $t) + ) + ) + (i32.const 5) + ) + (i32.const 8) + ) + ) (get_local $t) ) - (get_local $f) + (set_local $f + (i32.and + (i32.shr_u + (set_local $s + (i32.shr_u + (get_local $f) + (get_local $i) + ) + ) + (i32.const 2) + ) + (i32.const 4) + ) + ) + ) + (set_local $s + (i32.and + (i32.shr_u + (set_local $e + (i32.shr_u + (get_local $s) + (get_local $f) + ) + ) + (i32.const 1) + ) + (i32.const 2) + ) ) - (get_local $s) ) (set_local $e (i32.and @@ -1516,87 +1510,84 @@ (set_local $J (i32.const 31) ) - (block - (set_local $o + (set_local $J + (i32.or (i32.and (i32.shr_u + (get_local $e) (i32.add - (set_local $u - (i32.shl - (get_local $o) - (set_local $s - (i32.and - (i32.shr_u - (i32.add - (get_local $o) - (i32.const 1048320) - ) - (i32.const 16) - ) - (i32.const 8) - ) - ) - ) - ) - (i32.const 520192) - ) - (i32.const 16) - ) - (i32.const 4) - ) - ) - (set_local $J - (i32.or - (i32.and - (i32.shr_u - (get_local $e) - (i32.add - (set_local $t - (i32.add - (i32.sub - (i32.const 14) + (set_local $t + (i32.add + (i32.sub + (i32.const 14) + (i32.or (i32.or - (i32.or - (get_local $o) - (get_local $s) - ) - (set_local $u + (set_local $o (i32.and (i32.shr_u (i32.add - (set_local $j + (set_local $u (i32.shl - (get_local $u) (get_local $o) + (set_local $s + (i32.and + (i32.shr_u + (i32.add + (get_local $o) + (i32.const 1048320) + ) + (i32.const 16) + ) + (i32.const 8) + ) + ) ) ) - (i32.const 245760) + (i32.const 520192) ) (i32.const 16) ) - (i32.const 2) + (i32.const 4) ) ) + (get_local $s) ) - ) - (i32.shr_u - (i32.shl - (get_local $j) - (get_local $u) + (set_local $u + (i32.and + (i32.shr_u + (i32.add + (set_local $j + (i32.shl + (get_local $u) + (get_local $o) + ) + ) + (i32.const 245760) + ) + (i32.const 16) + ) + (i32.const 2) + ) ) - (i32.const 15) ) ) + (i32.shr_u + (i32.shl + (get_local $j) + (get_local $u) + ) + (i32.const 15) + ) ) - (i32.const 7) ) + (i32.const 7) ) - (i32.const 1) - ) - (i32.shl - (get_local $t) - (i32.const 1) ) + (i32.const 1) + ) + (i32.shl + (get_local $t) + (i32.const 1) ) ) ) @@ -1706,16 +1697,15 @@ ) ) ) - (set_local $l - (i32.load offset=20 - (get_local $o) - ) - ) (set_local $m (if (i32.or (i32.eq - (get_local $l) + (set_local $l + (i32.load offset=20 + (get_local $o) + ) + ) (i32.const 0) ) (i32.eq @@ -1873,48 +1863,6 @@ (i32.const 16) ) ) - (set_local $t - (i32.and - (i32.shr_u - (set_local $d - (i32.shr_u - (get_local $t) - (get_local $f) - ) - ) - (i32.const 5) - ) - (i32.const 8) - ) - ) - (set_local $d - (i32.and - (i32.shr_u - (set_local $g - (i32.shr_u - (get_local $d) - (get_local $t) - ) - ) - (i32.const 2) - ) - (i32.const 4) - ) - ) - (set_local $g - (i32.and - (i32.shr_u - (set_local $i - (i32.shr_u - (get_local $g) - (get_local $d) - ) - ) - (i32.const 1) - ) - (i32.const 2) - ) - ) (set_local $T (i32.load (i32.add @@ -1924,12 +1872,51 @@ (i32.or (i32.or (i32.or - (get_local $t) + (set_local $t + (i32.and + (i32.shr_u + (set_local $d + (i32.shr_u + (get_local $t) + (get_local $f) + ) + ) + (i32.const 5) + ) + (i32.const 8) + ) + ) (get_local $f) ) - (get_local $d) + (set_local $d + (i32.and + (i32.shr_u + (set_local $g + (i32.shr_u + (get_local $d) + (get_local $t) + ) + ) + (i32.const 2) + ) + (i32.const 4) + ) + ) + ) + (set_local $g + (i32.and + (i32.shr_u + (set_local $i + (i32.shr_u + (get_local $g) + (get_local $d) + ) + ) + (i32.const 1) + ) + (i32.const 2) + ) ) - (get_local $g) ) (set_local $i (i32.and @@ -2643,87 +2630,84 @@ (set_local $ba (i32.const 31) ) - (block - (set_local $g + (set_local $ba + (i32.or (i32.and (i32.shr_u + (get_local $U) (i32.add - (set_local $d - (i32.shl - (get_local $g) - (set_local $s - (i32.and - (i32.shr_u - (i32.add - (get_local $g) - (i32.const 1048320) - ) - (i32.const 16) - ) - (i32.const 8) - ) - ) - ) - ) - (i32.const 520192) - ) - (i32.const 16) - ) - (i32.const 4) - ) - ) - (set_local $ba - (i32.or - (i32.and - (i32.shr_u - (get_local $U) - (i32.add - (set_local $t - (i32.add - (i32.sub - (i32.const 14) + (set_local $t + (i32.add + (i32.sub + (i32.const 14) + (i32.or (i32.or - (i32.or - (get_local $g) - (get_local $s) - ) - (set_local $d + (set_local $g (i32.and (i32.shr_u (i32.add - (set_local $q + (set_local $d (i32.shl - (get_local $d) (get_local $g) + (set_local $s + (i32.and + (i32.shr_u + (i32.add + (get_local $g) + (i32.const 1048320) + ) + (i32.const 16) + ) + (i32.const 8) + ) + ) ) ) - (i32.const 245760) + (i32.const 520192) ) (i32.const 16) ) - (i32.const 2) + (i32.const 4) ) ) + (get_local $s) ) - ) - (i32.shr_u - (i32.shl - (get_local $q) - (get_local $d) + (set_local $d + (i32.and + (i32.shr_u + (i32.add + (set_local $q + (i32.shl + (get_local $d) + (get_local $g) + ) + ) + (i32.const 245760) + ) + (i32.const 16) + ) + (i32.const 2) + ) ) - (i32.const 15) ) ) + (i32.shr_u + (i32.shl + (get_local $q) + (get_local $d) + ) + (i32.const 15) + ) ) - (i32.const 7) ) + (i32.const 7) ) - (i32.const 1) - ) - (i32.shl - (get_local $t) - (i32.const 1) ) + (i32.const 1) + ) + (i32.shl + (get_local $t) + (i32.const 1) ) ) ) @@ -3233,26 +3217,25 @@ (i32.const 48) ) ) - (set_local $V - (i32.add - (set_local $c - (i32.load - (i32.const 1688) - ) - ) - (set_local $ca - (i32.add - (get_local $y) - (i32.const 47) - ) - ) - ) - ) (if (i32.le_u (set_local $c (i32.and - (get_local $V) + (set_local $V + (i32.add + (set_local $c + (i32.load + (i32.const 1688) + ) + ) + (set_local $ca + (i32.add + (get_local $y) + (i32.const 47) + ) + ) + ) + ) (set_local $da (i32.sub (i32.const 0) @@ -3720,56 +3703,53 @@ (get_local $c) (i32.const 2147483647) ) - (block - (set_local $ma - (call_import $ta - (get_local $c) + (if + (i32.and + (i32.lt_u + (set_local $ma + (call_import $ta + (get_local $c) + ) + ) + (set_local $c + (call_import $ta + (i32.const 0) + ) + ) ) - ) - (if (i32.and - (i32.lt_u + (i32.ne (get_local $ma) - (set_local $c - (call_import $ta - (i32.const 0) - ) - ) + (i32.const -1) ) - (i32.and - (i32.ne - (get_local $ma) - (i32.const -1) - ) - (i32.ne + (i32.ne + (get_local $c) + (i32.const -1) + ) + ) + ) + (if + (i32.gt_u + (set_local $ja + (i32.sub (get_local $c) - (i32.const -1) + (get_local $ma) ) ) + (i32.add + (get_local $y) + (i32.const 40) + ) ) - (if - (i32.gt_u - (set_local $ja - (i32.sub - (get_local $c) - (get_local $ma) - ) - ) - (i32.add - (get_local $y) - (i32.const 40) - ) + (block + (set_local $ha + (get_local $ma) ) - (block - (set_local $ha - (get_local $ma) - ) - (set_local $ia - (get_local $ja) - ) - (set_local $N - (i32.const 191) - ) + (set_local $ia + (get_local $ja) + ) + (set_local $N + (i32.const 191) ) ) ) @@ -4915,34 +4895,6 @@ (br $do-once$67) ) ) - (set_local $$ - (i32.and - (i32.shr_u - (i32.add - (set_local $ga - (i32.shl - (get_local $e) - (set_local $V - (i32.and - (i32.shr_u - (i32.add - (get_local $e) - (i32.const 1048320) - ) - (i32.const 16) - ) - (i32.const 8) - ) - ) - ) - ) - (i32.const 520192) - ) - (i32.const 16) - ) - (i32.const 4) - ) - ) (set_local $Ha (i32.or (i32.and @@ -4955,7 +4907,34 @@ (i32.const 14) (i32.or (i32.or - (get_local $$) + (set_local $$ + (i32.and + (i32.shr_u + (i32.add + (set_local $ga + (i32.shl + (get_local $e) + (set_local $V + (i32.and + (i32.shr_u + (i32.add + (get_local $e) + (i32.const 1048320) + ) + (i32.const 16) + ) + (i32.const 8) + ) + ) + ) + ) + (i32.const 520192) + ) + (i32.const 16) + ) + (i32.const 4) + ) + ) (get_local $V) ) (set_local $ga @@ -5318,32 +5297,31 @@ ) (set_local $ka (i32.add - (get_local $ca) - (if - (i32.eq - (i32.and - (get_local $ea) - (i32.const 7) - ) - (i32.const 0) - ) - (i32.const 0) - (i32.and - (i32.sub - (i32.const 0) - (get_local $ea) - ) - (i32.const 7) - ) - ) - ) - ) - (set_local $ka - (i32.add (set_local $ca (if (i32.lt_u - (get_local $ka) + (set_local $ka + (i32.add + (get_local $ca) + (if + (i32.eq + (i32.and + (get_local $ea) + (i32.const 7) + ) + (i32.const 0) + ) + (i32.const 0) + (i32.and + (i32.sub + (i32.const 0) + (get_local $ea) + ) + (i32.const 7) + ) + ) + ) + ) (set_local $ea (i32.add (get_local $ja) @@ -5646,87 +5624,84 @@ (set_local $Oa (i32.const 31) ) - (block - (set_local $c + (set_local $Oa + (i32.or (i32.and (i32.shr_u + (get_local $ka) (i32.add - (set_local $ga - (i32.shl - (get_local $c) - (set_local $la - (i32.and - (i32.shr_u - (i32.add - (get_local $c) - (i32.const 1048320) - ) - (i32.const 16) - ) - (i32.const 8) - ) - ) - ) - ) - (i32.const 520192) - ) - (i32.const 16) - ) - (i32.const 4) - ) - ) - (set_local $Oa - (i32.or - (i32.and - (i32.shr_u - (get_local $ka) - (i32.add - (set_local $e - (i32.add - (i32.sub - (i32.const 14) + (set_local $e + (i32.add + (i32.sub + (i32.const 14) + (i32.or (i32.or - (i32.or - (get_local $c) - (get_local $la) - ) - (set_local $ga + (set_local $c (i32.and (i32.shr_u (i32.add - (set_local $ma + (set_local $ga (i32.shl - (get_local $ga) (get_local $c) + (set_local $la + (i32.and + (i32.shr_u + (i32.add + (get_local $c) + (i32.const 1048320) + ) + (i32.const 16) + ) + (i32.const 8) + ) + ) ) ) - (i32.const 245760) + (i32.const 520192) ) (i32.const 16) ) - (i32.const 2) + (i32.const 4) ) ) + (get_local $la) ) - ) - (i32.shr_u - (i32.shl - (get_local $ma) - (get_local $ga) + (set_local $ga + (i32.and + (i32.shr_u + (i32.add + (set_local $ma + (i32.shl + (get_local $ga) + (get_local $c) + ) + ) + (i32.const 245760) + ) + (i32.const 16) + ) + (i32.const 2) + ) ) - (i32.const 15) ) ) + (i32.shr_u + (i32.shl + (get_local $ma) + (get_local $ga) + ) + (i32.const 15) + ) ) - (i32.const 7) ) + (i32.const 7) ) - (i32.const 1) - ) - (i32.shl - (get_local $e) - (i32.const 1) ) + (i32.const 1) + ) + (i32.shl + (get_local $e) + (i32.const 1) ) ) ) @@ -7739,87 +7714,84 @@ (set_local $G (i32.const 31) ) - (block - (set_local $b + (set_local $G + (i32.or (i32.and (i32.shr_u + (get_local $D) (i32.add - (set_local $E - (i32.shl - (get_local $b) - (set_local $F - (i32.and - (i32.shr_u - (i32.add - (get_local $b) - (i32.const 1048320) - ) - (i32.const 16) - ) - (i32.const 8) - ) - ) - ) - ) - (i32.const 520192) - ) - (i32.const 16) - ) - (i32.const 4) - ) - ) - (set_local $G - (i32.or - (i32.and - (i32.shr_u - (get_local $D) - (i32.add - (set_local $s - (i32.add - (i32.sub - (i32.const 14) + (set_local $s + (i32.add + (i32.sub + (i32.const 14) + (i32.or (i32.or - (i32.or - (get_local $b) - (get_local $F) - ) - (set_local $E + (set_local $b (i32.and (i32.shr_u (i32.add - (set_local $e + (set_local $E (i32.shl - (get_local $E) (get_local $b) + (set_local $F + (i32.and + (i32.shr_u + (i32.add + (get_local $b) + (i32.const 1048320) + ) + (i32.const 16) + ) + (i32.const 8) + ) + ) ) ) - (i32.const 245760) + (i32.const 520192) ) (i32.const 16) ) - (i32.const 2) + (i32.const 4) ) ) + (get_local $F) ) - ) - (i32.shr_u - (i32.shl - (get_local $e) - (get_local $E) + (set_local $E + (i32.and + (i32.shr_u + (i32.add + (set_local $e + (i32.shl + (get_local $E) + (get_local $b) + ) + ) + (i32.const 245760) + ) + (i32.const 16) + ) + (i32.const 2) + ) ) - (i32.const 15) ) ) + (i32.shr_u + (i32.shl + (get_local $e) + (get_local $E) + ) + (i32.const 15) + ) ) - (i32.const 7) ) + (i32.const 7) ) - (i32.const 1) - ) - (i32.shl - (get_local $s) - (i32.const 1) ) + (i32.const 1) + ) + (i32.shl + (get_local $s) + (i32.const 1) ) ) ) diff --git a/test/passes/simplify-locals.txt b/test/passes/simplify-locals.txt index e77dc4780..0b7026928 100644 --- a/test/passes/simplify-locals.txt +++ b/test/passes/simplify-locals.txt @@ -387,7 +387,9 @@ ) ) ) - (set_local $$4$0 + (nop) + (nop) + (call_import $___udivmoddi4 (call_import $_i64Subtract (i32.xor (get_local $$1$0) @@ -400,10 +402,6 @@ (get_local $$1$0) (get_local $$1$1) ) - ) - (nop) - (call_import $___udivmoddi4 - (get_local $$4$0) (i32.load (i32.const 168) ) |