Thu, 22 Jan 2015 13:21:57 +0100
Incorporate requested changes from Mozilla in review:
https://bugzilla.mozilla.org/show_bug.cgi?id=1123480#c6
1 // |jit-test|
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 }
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 }
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 }
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 }