aboutsummaryrefslogtreecommitdiff
path: root/tools/test-js-optimizer-t2.js
diff options
context:
space:
mode:
Diffstat (limited to 'tools/test-js-optimizer-t2.js')
-rw-r--r--tools/test-js-optimizer-t2.js47
1 files changed, 47 insertions, 0 deletions
diff --git a/tools/test-js-optimizer-t2.js b/tools/test-js-optimizer-t2.js
index f69e1aaf..e1abc092 100644
--- a/tools/test-js-optimizer-t2.js
+++ b/tools/test-js-optimizer-t2.js
@@ -17,5 +17,52 @@ function shifty($id) {
q(HEAP32[$id2 >> 1]);
q(HEAP32[($id2 + 40) >> 1]);
q(HEAP32[($id2 + 80 | 0) >> 1]);
+ var $id3 = get(74);
+ q(HEAP32[$id3 >> 3]);
+ q(HEAP32[($id3 + 40) >> 3]);
+ q(HEAP32[($id3 + 80 | 0) >> 3]);
+ pause(0);
+ // similar, but inside another HEAP
+ var _idents = get('abc');
+ q(HEAP32[(HEAP32[_idents >> 2] + 8 | 0) >> 2]);
+ q(HEAP32[(HEAP32[_idents >> 2] + 8 | 0) >> 2]);
+ q(HEAP32[(HEAP32[_idents >> 2] + 8 | 0) >> 2]);
+ pause(1);
+ // $a_addr is *not* ssa. $i's shifts should consolidate (the last should be 0..?
+ // since we may have had |0 in the middle!)
+ var $sn_addr = get(12), $a_addr = get(999);
+ var $i = get(112233);
+ q(HEAP32[($a_addr + ((($sn_addr - 1 << 1) + 1 | 0) << 2) | 0) >> 2]);
+ q(HEAP32[($a_addr + ((($i - 1 << 1) + 1 | 0) << 2) | 0) >> 2]);
+ $a_addr = $a_addr + 4;
+ q(HEAP32[($a_addr + (($i << 1 | 0) << 2) | 0) >> 2]);
+ q(HEAP32[($a_addr + ($i << 2)) >> 2]);
+ q($a_addr >> 2, z($a_addr >> 2));
+ pause(2);
+ var $level = HEAP[get(322) >> 2]; // ignore this
+ var _dwt_norms_real = get('a'), $orient = get('cheez');
+ q(HEAP32[(_dwt_norms_real + $orient * 80 + ($level << 3) | 0) >> 2]);
+ q(HEAP32[(_dwt_norms_real + $orient * 80 + ($level << 3) + 4 | 0) >> 2]);
+ q(HEAP32[(_dwt_norms_real + $orient * 80 + ($level << 3) + 8 | 0) >> 2]);
+ pause(3);
+ // reuse $a_addr here
+ var $wavelet38 = get(38);
+ $k = $a_addr;
+ q(HEAPF32[(HEAP32[$wavelet38 >> 2] + ($k << 4) + 8 | 0) >> 2]);
+ q(HEAPF32[(HEAP32[$wavelet38 >> 2] + ($k << 4) + 12 | 0) >> 2]);
+ q(HEAPF32[(HEAP32[$wavelet38 >> 2] + ($k << 4) + 400 | 0) >> 2]);
+ pause(4);
+ // reuse $k, which already reuses $a_addr
+ var $p = $k, $parameters_addr = get('burger')
+ q(HEAP32[($parameters_addr + 5624 + ($p << 2) | 0) >> 2]);
+ q(HEAP32[($parameters_addr + 5644 + ($p << 2) | 0) >> 2]);
+ q(HEAP32[($parameters_addr + 5664 + ($p << 2) | 0) >> 2]);
+ pause(5);
+ // loops count as more uses!
+ var $res_spec242 = get($real), $cp = get('b'), $tileno = arguments[2];
+ while (get(1)) {
+ q(HEAP32[($parameters_addr + 5624 + (($res_spec242 - 1 | 0) << 2) | 0) >> 2]);
+ q(HEAP32[(HEAP32[($cp + 108 | 0) >> 2] + $tileno * 5588 + 420 | 0) >> 2]);
+ }
}
// EMSCRIPTEN_GENERATED_FUNCTIONS: ["shifty"]