1e2a8937454723a720c81acc3f9e4162b18999b43machenbach@chromium.org// Copyright 2014 the V8 project authors. All rights reserved. 2e2a8937454723a720c81acc3f9e4162b18999b43machenbach@chromium.org// Use of this source code is governed by a BSD-style license that can be 3e2a8937454723a720c81acc3f9e4162b18999b43machenbach@chromium.org// found in the LICENSE file. 4e2a8937454723a720c81acc3f9e4162b18999b43machenbach@chromium.org 5e2a8937454723a720c81acc3f9e4162b18999b43machenbach@chromium.org// Flags: --allow-natives-syntax --noopt-safe-uint32-operations 6e2a8937454723a720c81acc3f9e4162b18999b43machenbach@chromium.org 7e2a8937454723a720c81acc3f9e4162b18999b43machenbach@chromium.org// Check the results of `left >>> right`. The result is always unsigned (and 8e2a8937454723a720c81acc3f9e4162b18999b43machenbach@chromium.org// therefore positive). 9e2a8937454723a720c81acc3f9e4162b18999b43machenbach@chromium.orgfunction test_shr(left) { 10e2a8937454723a720c81acc3f9e4162b18999b43machenbach@chromium.org var errors = 0; 11e2a8937454723a720c81acc3f9e4162b18999b43machenbach@chromium.org 12e2a8937454723a720c81acc3f9e4162b18999b43machenbach@chromium.org for (var i = 1; i < 1024; i++) { 13e2a8937454723a720c81acc3f9e4162b18999b43machenbach@chromium.org var temp = left >>> i; 14e2a8937454723a720c81acc3f9e4162b18999b43machenbach@chromium.org if (temp < 0) { 15e2a8937454723a720c81acc3f9e4162b18999b43machenbach@chromium.org errors++; 16e2a8937454723a720c81acc3f9e4162b18999b43machenbach@chromium.org } 17e2a8937454723a720c81acc3f9e4162b18999b43machenbach@chromium.org } 18e2a8937454723a720c81acc3f9e4162b18999b43machenbach@chromium.org 19e2a8937454723a720c81acc3f9e4162b18999b43machenbach@chromium.org return errors; 20e2a8937454723a720c81acc3f9e4162b18999b43machenbach@chromium.org} 21e2a8937454723a720c81acc3f9e4162b18999b43machenbach@chromium.org 22e2a8937454723a720c81acc3f9e4162b18999b43machenbach@chromium.orgassertEquals(0, test_shr(1)); 23e2a8937454723a720c81acc3f9e4162b18999b43machenbach@chromium.org%OptimizeFunctionOnNextCall(test_shr); 24e2a8937454723a720c81acc3f9e4162b18999b43machenbach@chromium.orgfor (var i = 5; i >= -5; i--) { 25e2a8937454723a720c81acc3f9e4162b18999b43machenbach@chromium.org assertEquals(0, test_shr(i)); 26e2a8937454723a720c81acc3f9e4162b18999b43machenbach@chromium.org} 27