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

Thu, 22 Jan 2015 13:21:57 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Thu, 22 Jan 2015 13:21:57 +0100
branch
TOR_BUG_9701
changeset 15
b8a032363ba2
permissions
-rw-r--r--

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 }

mercurial