140a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling/* 2351dddf4025f07477161209e374741f089d97cb4Vladimir Marko * Copyright (C) 2015 The Android Open Source Project 340a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling * 440a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling * Licensed under the Apache License, Version 2.0 (the "License"); 540a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling * you may not use this file except in compliance with the License. 640a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling * You may obtain a copy of the License at 740a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling * 840a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling * http://www.apache.org/licenses/LICENSE-2.0 940a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling * 1040a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling * Unless required by applicable law or agreed to in writing, software 1140a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling * distributed under the License is distributed on an "AS IS" BASIS, 1240a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1340a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling * See the License for the specific language governing permissions and 1440a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling * limitations under the License. 1540a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling */ 1640a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling 1740a04bf64e5837fa48aceaffe970c9984c94084aScott Wakelingpublic class Main { 1840a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling 1940a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling public static void assertIntEquals(int expected, int actual) { 2040a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling if (expected != actual) { 2140a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling throw new Error("Expected: " + expected + ", found: " + actual); 2240a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling } 2340a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling } 2440a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling 2540a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling public static void assertLongEquals(long expected, long actual) { 2640a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling if (expected != actual) { 2740a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling throw new Error("Expected: " + expected + ", found: " + actual); 2840a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling } 2940a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling } 3040a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling 3140a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling public static void main(String args[]) throws Exception { 3240a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling test_Integer_right_v_csubv(); 3340a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling test_Long_right_v_csubv(); 3440a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling 3540a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling test_Integer_right_constant_v(); 3640a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling test_Long_right_constant_v(); 3740a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling 3840a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling test_Integer_left_csubv_v(); 3940a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling test_Long_left_csubv_v(); 4040a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling 4140a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling test_Integer_right_v_negv(); 4240a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling test_Long_right_v_negv(); 4340a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling 4440a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling test_Integer_left_negv_v(); 4540a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling test_Long_left_negv_v(); 4640a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling 4740a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling test_Integer_left_constant_v(); 4840a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling test_Long_left_constant_v(); 4940a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling } 5040a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling 5140a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling public static boolean doThrow = false; 5240a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling 5340a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling public static int $noinline$rotate_int_right_reg_v_csubv(int value, int distance) { 5440a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling if (doThrow) { 5540a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling throw new Error(); 5640a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling } 5740a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling return (value >>> distance) | (value << (32 - distance)); 5840a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling } 5940a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling 6040a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling public static void test_Integer_right_v_csubv() throws Exception { 6140a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling assertIntEquals($noinline$rotate_int_right_reg_v_csubv(0x11, 0), 0x11); 6240a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling 6340a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling assertIntEquals($noinline$rotate_int_right_reg_v_csubv(0x11, 1), 0x80000008); 6440a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling assertIntEquals($noinline$rotate_int_right_reg_v_csubv(0x11, Integer.SIZE - 1), 0x22); 6540a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling assertIntEquals($noinline$rotate_int_right_reg_v_csubv(0x11, Integer.SIZE), 0x11); 6640a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling assertIntEquals($noinline$rotate_int_right_reg_v_csubv(0x11, Integer.SIZE + 1), 0x80000008); 6740a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling 6840a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling assertIntEquals($noinline$rotate_int_right_reg_v_csubv(0x11, -1), 0x22); 6940a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling assertIntEquals($noinline$rotate_int_right_reg_v_csubv(0x11, -(Integer.SIZE - 1)), 0x80000008); 7040a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling assertIntEquals($noinline$rotate_int_right_reg_v_csubv(0x11, -Integer.SIZE), 0x11); 7140a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling assertIntEquals($noinline$rotate_int_right_reg_v_csubv(0x11, -(Integer.SIZE + 1)), 0x22); 7240a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling 7340a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling assertIntEquals($noinline$rotate_int_right_reg_v_csubv(0x80000000, 1), 0x40000000); 7440a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling } 7540a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling 7640a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling public static long $noinline$rotate_long_right_reg_v_csubv(long value, int distance) { 7740a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling if (doThrow) { 7840a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling throw new Error(); 7940a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling } 8040a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling return (value >>> distance) | (value << (64 - distance)); 8140a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling } 8240a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling 8340a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling public static void test_Long_right_v_csubv() throws Exception { 8440a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling assertLongEquals($noinline$rotate_long_right_reg_v_csubv(0x11, 0), 0x11); 8540a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling 8640a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling assertLongEquals($noinline$rotate_long_right_reg_v_csubv(0x11, 1), 0x8000000000000008L); 8740a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling assertLongEquals($noinline$rotate_long_right_reg_v_csubv(0x11, Long.SIZE - 1), 0x22); 8840a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling assertLongEquals($noinline$rotate_long_right_reg_v_csubv(0x11, Long.SIZE), 0x11); 8940a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling assertLongEquals($noinline$rotate_long_right_reg_v_csubv(0x11, Long.SIZE + 1), 0x8000000000000008L); 9040a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling 9140a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling assertLongEquals($noinline$rotate_long_right_reg_v_csubv(0x11, -1), 0x22); 9240a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling assertLongEquals($noinline$rotate_long_right_reg_v_csubv(0x11, -(Long.SIZE - 1)), 0x8000000000000008L); 9340a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling assertLongEquals($noinline$rotate_long_right_reg_v_csubv(0x11, -Long.SIZE), 0x11); 9440a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling assertLongEquals($noinline$rotate_long_right_reg_v_csubv(0x11, -(Long.SIZE + 1)), 0x22); 9540a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling 9640a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling assertLongEquals($noinline$rotate_long_right_reg_v_csubv(0x8000000000000000L, 1), 0x4000000000000000L); 9740a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling } 9840a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling 9940a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling public static int $noinline$rotate_int_left_reg_csubv_v(int value, int distance) { 10040a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling if (doThrow) { 10140a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling throw new Error(); 10240a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling } 10340a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling return (value >>> (32 - distance)) | (value << distance); 10440a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling } 10540a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling 10640a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling public static void test_Integer_left_csubv_v() throws Exception { 10740a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling assertIntEquals($noinline$rotate_int_left_reg_csubv_v(0x11, 0), 0x11); 10840a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling 10940a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling assertIntEquals($noinline$rotate_int_left_reg_csubv_v(0x11, 1), 0x22); 11040a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling assertIntEquals($noinline$rotate_int_left_reg_csubv_v(0x11, Integer.SIZE - 1), 0x80000008); 11140a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling assertIntEquals($noinline$rotate_int_left_reg_csubv_v(0x11, Integer.SIZE), 0x11); 11240a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling assertIntEquals($noinline$rotate_int_left_reg_csubv_v(0x11, Integer.SIZE + 1), 0x22); 11340a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling 11440a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling assertIntEquals($noinline$rotate_int_left_reg_csubv_v(0x11, -1), 0x80000008); 11540a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling assertIntEquals($noinline$rotate_int_left_reg_csubv_v(0x11, -(Integer.SIZE - 1)), 0x22); 11640a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling assertIntEquals($noinline$rotate_int_left_reg_csubv_v(0x11, -Integer.SIZE), 0x11); 11740a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling assertIntEquals($noinline$rotate_int_left_reg_csubv_v(0x11, -(Integer.SIZE + 1)), 0x80000008); 11840a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling 11940a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling assertIntEquals($noinline$rotate_int_left_reg_csubv_v(0xC0000000, 1), 0x80000001); 12040a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling } 12140a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling 12240a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling public static long $noinline$rotate_long_left_reg_csubv_v(long value, int distance) { 12340a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling if (doThrow) { 12440a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling throw new Error(); 12540a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling } 12640a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling return (value >>> (64 - distance)) | (value << distance); 12740a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling } 12840a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling 12940a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling public static void test_Long_left_csubv_v() throws Exception { 13040a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling assertLongEquals($noinline$rotate_long_left_reg_csubv_v(0x11, 0), 0x11); 13140a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling 13240a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling assertLongEquals($noinline$rotate_long_left_reg_csubv_v(0x11, 1), 0x22); 13340a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling assertLongEquals($noinline$rotate_long_left_reg_csubv_v(0x11, Long.SIZE - 1), 0x8000000000000008L); 13440a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling assertLongEquals($noinline$rotate_long_left_reg_csubv_v(0x11, Long.SIZE), 0x11); 13540a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling assertLongEquals($noinline$rotate_long_left_reg_csubv_v(0x11, Long.SIZE + 1), 0x22); 13640a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling 13740a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling assertLongEquals($noinline$rotate_long_left_reg_csubv_v(0x11, -1), 0x8000000000000008L); 13840a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling assertLongEquals($noinline$rotate_long_left_reg_csubv_v(0x11, -(Long.SIZE - 1)), 0x22); 13940a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling assertLongEquals($noinline$rotate_long_left_reg_csubv_v(0x11, -Long.SIZE), 0x11); 14040a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling assertLongEquals($noinline$rotate_long_left_reg_csubv_v(0x11, -(Long.SIZE + 1)), 0x8000000000000008L); 14140a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling 14240a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling assertLongEquals($noinline$rotate_long_left_reg_csubv_v(0xC000000000000000L, 1), 0x8000000000000001L); 14340a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling } 14440a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling 14540a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling public static int $noinline$rotate_int_right_reg_v_negv(int value, int distance) { 14640a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling if (doThrow) { 14740a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling throw new Error(); 14840a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling } 14940a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling return (value >>> distance) | (value << -distance); 15040a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling } 15140a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling 15240a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling public static void test_Integer_right_v_negv() throws Exception { 15340a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling assertIntEquals($noinline$rotate_int_right_reg_v_negv(0x11, 0), 0x11); 15440a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling 15540a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling assertIntEquals($noinline$rotate_int_right_reg_v_negv(0x11, 1), 0x80000008); 15640a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling assertIntEquals($noinline$rotate_int_right_reg_v_negv(0x11, Integer.SIZE - 1), 0x22); 15740a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling assertIntEquals($noinline$rotate_int_right_reg_v_negv(0x11, Integer.SIZE), 0x11); 15840a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling assertIntEquals($noinline$rotate_int_right_reg_v_negv(0x11, Integer.SIZE + 1), 0x80000008); 15940a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling 16040a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling assertIntEquals($noinline$rotate_int_right_reg_v_negv(0x11, -1), 0x22); 16140a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling assertIntEquals($noinline$rotate_int_right_reg_v_negv(0x11, -(Integer.SIZE - 1)), 0x80000008); 16240a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling assertIntEquals($noinline$rotate_int_right_reg_v_negv(0x11, -Integer.SIZE), 0x11); 16340a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling assertIntEquals($noinline$rotate_int_right_reg_v_negv(0x11, -(Integer.SIZE + 1)), 0x22); 16440a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling 16540a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling assertIntEquals($noinline$rotate_int_right_reg_v_negv(0x80000000, 1), 0x40000000); 16640a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling } 16740a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling 16840a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling public static long $noinline$rotate_long_right_reg_v_negv(long value, int distance) { 16940a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling if (doThrow) { 17040a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling throw new Error(); 17140a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling } 17240a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling return (value >>> distance) | (value << -distance); 17340a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling } 17440a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling 17540a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling public static void test_Long_right_v_negv() throws Exception { 17640a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling assertLongEquals($noinline$rotate_long_right_reg_v_negv(0x11, 0), 0x11); 17740a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling 17840a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling assertLongEquals($noinline$rotate_long_right_reg_v_negv(0x11, 1), 0x8000000000000008L); 17940a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling assertLongEquals($noinline$rotate_long_right_reg_v_negv(0x11, Long.SIZE - 1), 0x22); 18040a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling assertLongEquals($noinline$rotate_long_right_reg_v_negv(0x11, Long.SIZE), 0x11); 18140a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling assertLongEquals($noinline$rotate_long_right_reg_v_negv(0x11, Long.SIZE + 1), 0x8000000000000008L); 18240a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling 18340a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling assertLongEquals($noinline$rotate_long_right_reg_v_negv(0x11, -1), 0x22); 18440a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling assertLongEquals($noinline$rotate_long_right_reg_v_negv(0x11, -(Long.SIZE - 1)), 0x8000000000000008L); 18540a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling assertLongEquals($noinline$rotate_long_right_reg_v_negv(0x11, -Long.SIZE), 0x11); 18640a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling assertLongEquals($noinline$rotate_long_right_reg_v_negv(0x11, -(Long.SIZE + 1)), 0x22); 18740a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling 18840a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling assertLongEquals($noinline$rotate_long_right_reg_v_negv(0x8000000000000000L, 1), 0x4000000000000000L); 18940a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling } 19040a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling 19140a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling public static int $noinline$rotate_int_left_reg_negv_v(int value, int distance) { 19240a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling if (doThrow) { 19340a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling throw new Error(); 19440a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling } 19540a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling return (value >>> -distance) | (value << distance); 19640a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling } 19740a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling 19840a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling public static void test_Integer_left_negv_v() throws Exception { 19940a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling assertIntEquals($noinline$rotate_int_left_reg_negv_v(0x11, 0), 0x11); 20040a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling 20140a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling assertIntEquals($noinline$rotate_int_left_reg_negv_v(0x11, 1), 0x22); 20240a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling assertIntEquals($noinline$rotate_int_left_reg_negv_v(0x11, Integer.SIZE - 1), 0x80000008); 20340a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling assertIntEquals($noinline$rotate_int_left_reg_negv_v(0x11, Integer.SIZE), 0x11); 20440a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling assertIntEquals($noinline$rotate_int_left_reg_negv_v(0x11, Integer.SIZE + 1), 0x22); 20540a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling 20640a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling assertIntEquals($noinline$rotate_int_left_reg_negv_v(0x11, -1), 0x80000008); 20740a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling assertIntEquals($noinline$rotate_int_left_reg_negv_v(0x11, -(Integer.SIZE - 1)), 0x22); 20840a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling assertIntEquals($noinline$rotate_int_left_reg_negv_v(0x11, -Integer.SIZE), 0x11); 20940a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling assertIntEquals($noinline$rotate_int_left_reg_negv_v(0x11, -(Integer.SIZE + 1)), 0x80000008); 21040a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling 21140a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling assertIntEquals($noinline$rotate_int_left_reg_negv_v(0xC0000000, 1), 0x80000001); 21240a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling } 21340a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling 21440a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling public static long $noinline$rotate_long_left_reg_negv_v(long value, int distance) { 21540a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling if (doThrow) { 21640a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling throw new Error(); 21740a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling } 21840a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling return (value >>> -distance) | (value << distance); 21940a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling } 22040a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling 22140a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling public static void test_Long_left_negv_v() throws Exception { 22240a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling assertLongEquals($noinline$rotate_long_left_reg_negv_v(0x11, 0), 0x11); 22340a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling 22440a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling assertLongEquals($noinline$rotate_long_left_reg_negv_v(0x11, 1), 0x22); 22540a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling assertLongEquals($noinline$rotate_long_left_reg_negv_v(0x11, Long.SIZE - 1), 0x8000000000000008L); 22640a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling assertLongEquals($noinline$rotate_long_left_reg_negv_v(0x11, Long.SIZE), 0x11); 22740a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling assertLongEquals($noinline$rotate_long_left_reg_negv_v(0x11, Long.SIZE + 1), 0x22); 22840a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling 22940a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling assertLongEquals($noinline$rotate_long_left_reg_negv_v(0x11, -1), 0x8000000000000008L); 23040a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling assertLongEquals($noinline$rotate_long_left_reg_negv_v(0x11, -(Long.SIZE - 1)), 0x22); 23140a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling assertLongEquals($noinline$rotate_long_left_reg_negv_v(0x11, -Long.SIZE), 0x11); 23240a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling assertLongEquals($noinline$rotate_long_left_reg_negv_v(0x11, -(Long.SIZE + 1)), 0x8000000000000008L); 23340a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling 23440a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling assertLongEquals($noinline$rotate_long_left_reg_negv_v(0xC000000000000000L, 1), 0x8000000000000001L); 23540a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling } 23640a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling 23740a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling public static int $noinline$rotate_int_right_constant_0(int value) { 23840a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling if (doThrow) { 23940a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling throw new Error(); 24040a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling } 24140a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling return (value >>> 0) | (value << 0); 24240a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling } 24340a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling 24440a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling public static int $noinline$rotate_int_right_constant_1(int value) { 24540a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling if (doThrow) { 24640a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling throw new Error(); 24740a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling } 24840a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling return (value >>> 1) | (value << -1); 24940a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling } 25040a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling 25140a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling public static int $noinline$rotate_int_right_constant_m1(int value) { 25240a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling if (doThrow) { 25340a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling throw new Error(); 25440a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling } 25540a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling return (value >>> -1) | (value << 1); 25640a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling } 25740a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling 25840a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling public static int $noinline$rotate_int_right_constant_16(int value) { 25940a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling if (doThrow) { 26040a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling throw new Error(); 26140a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling } 26240a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling return (value >>> 16) | (value << -16); 26340a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling } 26440a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling 26540a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling public static void test_Integer_right_constant_v() throws Exception { 26640a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling assertIntEquals($noinline$rotate_int_right_constant_0(0x11), 0x11); 26740a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling assertIntEquals($noinline$rotate_int_right_constant_1(0x11), 0x80000008); 26840a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling assertIntEquals($noinline$rotate_int_right_constant_m1(0x11), 0x22); 26940a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling assertIntEquals($noinline$rotate_int_right_constant_16(0x11), 0x110000); 27040a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling } 27140a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling 27240a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling public static long $noinline$rotate_long_right_constant_0(long value) { 27340a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling if (doThrow) { 27440a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling throw new Error(); 27540a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling } 27640a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling return (value >>> 0) | (value << 0); 27740a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling } 27840a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling 27940a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling public static long $noinline$rotate_long_right_constant_1(long value) { 28040a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling if (doThrow) { 28140a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling throw new Error(); 28240a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling } 28340a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling return (value >>> 1) | (value << -1); 28440a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling } 28540a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling 28640a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling public static long $noinline$rotate_long_right_constant_m1(long value) { 28740a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling if (doThrow) { 28840a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling throw new Error(); 28940a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling } 29040a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling return (value >>> -1) | (value << 1); 29140a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling } 29240a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling 29340a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling public static long $noinline$rotate_long_right_constant_16(long value) { 29440a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling if (doThrow) { 29540a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling throw new Error(); 29640a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling } 29740a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling return (value >>> 16) | (value << -16); 29840a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling } 29940a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling 30040a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling public static long $noinline$rotate_long_right_constant_32(long value) { 30140a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling if (doThrow) { 30240a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling throw new Error(); 30340a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling } 30440a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling return (value >>> 32) | (value << -32); 30540a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling } 30640a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling 30740a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling public static long $noinline$rotate_long_right_constant_48(long value) { 30840a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling if (doThrow) { 30940a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling throw new Error(); 31040a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling } 31140a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling return (value >>> 48) | (value << -48); 31240a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling } 31340a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling 31440a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling public static long $noinline$rotate_long_right_constant_64(long value) { 31540a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling if (doThrow) { 31640a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling throw new Error(); 31740a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling } 31840a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling return (value >>> 64) | (value << -64); 31940a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling } 32040a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling 32140a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling public static void test_Long_right_constant_v() throws Exception { 32240a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling assertLongEquals($noinline$rotate_long_right_constant_0(0x11), 0x11); 32340a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling assertLongEquals($noinline$rotate_long_right_constant_1(0x11), 0x8000000000000008L); 32440a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling assertLongEquals($noinline$rotate_long_right_constant_m1(0x11), 0x22); 32540a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling assertLongEquals($noinline$rotate_long_right_constant_16(0x11), 0x11000000000000L); 32640a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling assertLongEquals($noinline$rotate_long_right_constant_32(0x11), 0x1100000000L); 32740a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling assertLongEquals($noinline$rotate_long_right_constant_48(0x11), 0x110000L); 32840a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling } 32940a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling 33040a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling public static int $noinline$rotate_int_left_constant_0(int value) { 33140a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling if (doThrow) { 33240a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling throw new Error(); 33340a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling } 33440a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling return (value << 0) | (value >>> 0); 33540a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling } 33640a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling 33740a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling public static int $noinline$rotate_int_left_constant_1(int value) { 33840a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling if (doThrow) { 33940a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling throw new Error(); 34040a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling } 34140a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling return (value << 1) | (value >>> -1); 34240a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling } 34340a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling 34440a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling public static int $noinline$rotate_int_left_constant_m1(int value) { 34540a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling if (doThrow) { 34640a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling throw new Error(); 34740a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling } 34840a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling return (value << -1) | (value >>> 1); 34940a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling } 35040a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling 35140a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling public static int $noinline$rotate_int_left_constant_16(int value) { 35240a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling if (doThrow) { 35340a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling throw new Error(); 35440a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling } 35540a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling return (value << 16) | (value >>> -16); 35640a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling } 35740a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling 35840a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling public static void test_Integer_left_constant_v() throws Exception { 35940a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling assertIntEquals($noinline$rotate_int_left_constant_0(0x11), 0x11); 36040a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling assertIntEquals($noinline$rotate_int_left_constant_1(0x11), 0x22); 36140a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling assertIntEquals($noinline$rotate_int_left_constant_m1(0x11), 0x80000008); 36240a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling assertIntEquals($noinline$rotate_int_left_constant_16(0x11), 0x110000); 36340a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling } 36440a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling 36540a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling public static long $noinline$rotate_long_left_constant_0(long value) { 36640a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling if (doThrow) { 36740a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling throw new Error(); 36840a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling } 36940a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling return (value << 0) | (value >>> 0); 37040a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling } 37140a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling 37240a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling public static long $noinline$rotate_long_left_constant_1(long value) { 37340a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling if (doThrow) { 37440a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling throw new Error(); 37540a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling } 37640a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling return (value << 1) | (value >>> -1); 37740a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling } 37840a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling 37940a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling public static long $noinline$rotate_long_left_constant_m1(long value) { 38040a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling if (doThrow) { 38140a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling throw new Error(); 38240a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling } 38340a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling return (value << -1) | (value >>> 1); 38440a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling } 38540a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling 38640a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling public static long $noinline$rotate_long_left_constant_16(long value) { 38740a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling if (doThrow) { 38840a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling throw new Error(); 38940a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling } 39040a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling return (value << 16) | (value >>> -16); 39140a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling } 39240a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling 39340a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling public static long $noinline$rotate_long_left_constant_32(long value) { 39440a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling if (doThrow) { 39540a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling throw new Error(); 39640a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling } 39740a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling return (value << 32) | (value >>> -32); 39840a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling } 39940a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling 40040a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling public static long $noinline$rotate_long_left_constant_48(long value) { 40140a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling if (doThrow) { 40240a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling throw new Error(); 40340a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling } 40440a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling return (value << 48) | (value >>> -48); 40540a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling } 40640a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling 40740a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling public static long $noinline$rotate_long_left_constant_64(long value) { 40840a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling if (doThrow) { 40940a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling throw new Error(); 41040a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling } 41140a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling return (value << 64) | (value >>> -64); 41240a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling } 41340a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling 41440a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling public static void test_Long_left_constant_v() throws Exception { 41540a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling assertLongEquals($noinline$rotate_long_left_constant_0(0x11), 0x11); 41640a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling assertLongEquals($noinline$rotate_long_left_constant_1(0x11), 0x22); 41740a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling assertLongEquals($noinline$rotate_long_left_constant_m1(0x11), 0x8000000000000008L); 41840a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling assertLongEquals($noinline$rotate_long_left_constant_16(0x11), 0x110000L); 41940a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling assertLongEquals($noinline$rotate_long_left_constant_32(0x11), 0x1100000000L); 42040a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling assertLongEquals($noinline$rotate_long_left_constant_48(0x11), 0x11000000000000L); 42140a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling } 42240a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling 42340a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling} 424