testShiftLeft.js (1069B)
1 // |jit-test| valgrind 2 3 /* Test the proper operation of the left shift operator. This is especially 4 * important on ARM as an explicit mask is required at the native instruction 5 * level. */ 6 7 function testShiftLeft() 8 { 9 var r = []; 10 var i = 0; 11 var j = 0; 12 13 var shifts = [0,1,7,8,15,16,23,24,31]; 14 15 /* Samples from the simple shift range. */ 16 for (i = 0; i < shifts.length; i++) 17 r[j++] = 1 << shifts[i]; 18 19 /* Samples outside the normal shift range. */ 20 for (i = 0; i < shifts.length; i++) 21 r[j++] = 1 << (shifts[i] + 32); 22 23 /* Samples far outside the normal shift range. */ 24 for (i = 0; i < shifts.length; i++) 25 r[j++] = 1 << (shifts[i] + 224); 26 for (i = 0; i < shifts.length; i++) 27 r[j++] = 1 << (shifts[i] + 256); 28 29 return r.join(","); 30 } 31 32 assertEq(testShiftLeft(), 33 "1,2,128,256,32768,65536,8388608,16777216,-2147483648,"+ 34 "1,2,128,256,32768,65536,8388608,16777216,-2147483648,"+ 35 "1,2,128,256,32768,65536,8388608,16777216,-2147483648,"+ 36 "1,2,128,256,32768,65536,8388608,16777216,-2147483648");