js/src/jit-test/tests/ion/range-analysis.js

changeset 0
6474c204b198
equal deleted inserted replaced
-1:000000000000 0:01fc6e4c64c4
1 // |jit-test|
2
3 // Only fails with Ion.
4 function add_xors_1() {
5 var res = 0;
6 var step = 4;
7 for (var i = 0x7fffffff | 0; i >= (1 << step); i -= (i >> step)) {
8 var x = i ^ (i << 1);
9 res += (((x + x) + res + res) | 0);
10 }
11 return res;
12 }
13
14 var r1 = add_xors_1();
15 for (var i = 0; i < 100; i++) {
16 var r2 = add_xors_1();
17 assertEq(r2, r1);
18 }
19
20 // Only fails with JM
21 function add_xors_2() {
22 var res = 0;
23 var step = 4;
24 for (var i = 0x7fffffff | 0; i >= (1 << step); i -= (i >> step)) {
25 var x = i ^ (i << 1);
26 res += ((x + x) + res + res) | 0;
27 }
28 return res;
29 }
30
31 var r1 = add_xors_2();
32 for (var i = 0; i < 100; i++) {
33 var r2 = add_xors_2();
34 assertEq(r1, r2);
35 }

mercurial