summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/passes/SimplifyLocals.cpp60
-rw-r--r--test/emcc_O2_hello_world.fromasm888
-rw-r--r--test/emcc_O2_hello_world.fromasm.imprecise888
-rw-r--r--test/emcc_hello_world.fromasm1729
-rw-r--r--test/emcc_hello_world.fromasm.imprecise1729
-rw-r--r--test/memorygrowth.fromasm940
-rw-r--r--test/memorygrowth.fromasm.imprecise940
-rw-r--r--test/passes/simplify-locals.txt8
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)
)