1*795d594fSAndroid Build Coastguard Worker /* 2*795d594fSAndroid Build Coastguard Worker * Copyright (C) 2015 The Android Open Source Project 3*795d594fSAndroid Build Coastguard Worker * 4*795d594fSAndroid Build Coastguard Worker * Licensed under the Apache License, Version 2.0 (the "License"); 5*795d594fSAndroid Build Coastguard Worker * you may not use this file except in compliance with the License. 6*795d594fSAndroid Build Coastguard Worker * You may obtain a copy of the License at 7*795d594fSAndroid Build Coastguard Worker * 8*795d594fSAndroid Build Coastguard Worker * http://www.apache.org/licenses/LICENSE-2.0 9*795d594fSAndroid Build Coastguard Worker * 10*795d594fSAndroid Build Coastguard Worker * Unless required by applicable law or agreed to in writing, software 11*795d594fSAndroid Build Coastguard Worker * distributed under the License is distributed on an "AS IS" BASIS, 12*795d594fSAndroid Build Coastguard Worker * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13*795d594fSAndroid Build Coastguard Worker * See the License for the specific language governing permissions and 14*795d594fSAndroid Build Coastguard Worker * limitations under the License. 15*795d594fSAndroid Build Coastguard Worker */ 16*795d594fSAndroid Build Coastguard Worker 17*795d594fSAndroid Build Coastguard Worker public class Main { 18*795d594fSAndroid Build Coastguard Worker assertIntEquals(int expected, int actual)19*795d594fSAndroid Build Coastguard Worker public static void assertIntEquals(int expected, int actual) { 20*795d594fSAndroid Build Coastguard Worker if (expected != actual) { 21*795d594fSAndroid Build Coastguard Worker throw new Error("Expected: " + expected + ", found: " + actual); 22*795d594fSAndroid Build Coastguard Worker } 23*795d594fSAndroid Build Coastguard Worker } 24*795d594fSAndroid Build Coastguard Worker assertLongEquals(long expected, long actual)25*795d594fSAndroid Build Coastguard Worker public static void assertLongEquals(long expected, long actual) { 26*795d594fSAndroid Build Coastguard Worker if (expected != actual) { 27*795d594fSAndroid Build Coastguard Worker throw new Error("Expected: " + expected + ", found: " + actual); 28*795d594fSAndroid Build Coastguard Worker } 29*795d594fSAndroid Build Coastguard Worker } 30*795d594fSAndroid Build Coastguard Worker main(String args[])31*795d594fSAndroid Build Coastguard Worker public static void main(String args[]) throws Exception { 32*795d594fSAndroid Build Coastguard Worker test_Integer_right_v_csubv(); 33*795d594fSAndroid Build Coastguard Worker test_Long_right_v_csubv(); 34*795d594fSAndroid Build Coastguard Worker 35*795d594fSAndroid Build Coastguard Worker test_Integer_right_constant_v(); 36*795d594fSAndroid Build Coastguard Worker test_Long_right_constant_v(); 37*795d594fSAndroid Build Coastguard Worker 38*795d594fSAndroid Build Coastguard Worker test_Integer_left_csubv_v(); 39*795d594fSAndroid Build Coastguard Worker test_Long_left_csubv_v(); 40*795d594fSAndroid Build Coastguard Worker 41*795d594fSAndroid Build Coastguard Worker test_Integer_right_v_negv(); 42*795d594fSAndroid Build Coastguard Worker test_Long_right_v_negv(); 43*795d594fSAndroid Build Coastguard Worker 44*795d594fSAndroid Build Coastguard Worker test_Integer_left_negv_v(); 45*795d594fSAndroid Build Coastguard Worker test_Long_left_negv_v(); 46*795d594fSAndroid Build Coastguard Worker 47*795d594fSAndroid Build Coastguard Worker test_Integer_left_constant_v(); 48*795d594fSAndroid Build Coastguard Worker test_Long_left_constant_v(); 49*795d594fSAndroid Build Coastguard Worker } 50*795d594fSAndroid Build Coastguard Worker $noinline$rotate_int_right_reg_v_csubv(int value, int distance)51*795d594fSAndroid Build Coastguard Worker public static int $noinline$rotate_int_right_reg_v_csubv(int value, int distance) { 52*795d594fSAndroid Build Coastguard Worker return (value >>> distance) | (value << (32 - distance)); 53*795d594fSAndroid Build Coastguard Worker } 54*795d594fSAndroid Build Coastguard Worker test_Integer_right_v_csubv()55*795d594fSAndroid Build Coastguard Worker public static void test_Integer_right_v_csubv() throws Exception { 56*795d594fSAndroid Build Coastguard Worker assertIntEquals($noinline$rotate_int_right_reg_v_csubv(0x11, 0), 0x11); 57*795d594fSAndroid Build Coastguard Worker 58*795d594fSAndroid Build Coastguard Worker assertIntEquals($noinline$rotate_int_right_reg_v_csubv(0x11, 1), 0x80000008); 59*795d594fSAndroid Build Coastguard Worker assertIntEquals($noinline$rotate_int_right_reg_v_csubv(0x11, Integer.SIZE - 1), 0x22); 60*795d594fSAndroid Build Coastguard Worker assertIntEquals($noinline$rotate_int_right_reg_v_csubv(0x11, Integer.SIZE), 0x11); 61*795d594fSAndroid Build Coastguard Worker assertIntEquals($noinline$rotate_int_right_reg_v_csubv(0x11, Integer.SIZE + 1), 0x80000008); 62*795d594fSAndroid Build Coastguard Worker 63*795d594fSAndroid Build Coastguard Worker assertIntEquals($noinline$rotate_int_right_reg_v_csubv(0x11, -1), 0x22); 64*795d594fSAndroid Build Coastguard Worker assertIntEquals($noinline$rotate_int_right_reg_v_csubv(0x11, -(Integer.SIZE - 1)), 0x80000008); 65*795d594fSAndroid Build Coastguard Worker assertIntEquals($noinline$rotate_int_right_reg_v_csubv(0x11, -Integer.SIZE), 0x11); 66*795d594fSAndroid Build Coastguard Worker assertIntEquals($noinline$rotate_int_right_reg_v_csubv(0x11, -(Integer.SIZE + 1)), 0x22); 67*795d594fSAndroid Build Coastguard Worker 68*795d594fSAndroid Build Coastguard Worker assertIntEquals($noinline$rotate_int_right_reg_v_csubv(0x80000000, 1), 0x40000000); 69*795d594fSAndroid Build Coastguard Worker } 70*795d594fSAndroid Build Coastguard Worker $noinline$rotate_long_right_reg_v_csubv(long value, int distance)71*795d594fSAndroid Build Coastguard Worker public static long $noinline$rotate_long_right_reg_v_csubv(long value, int distance) { 72*795d594fSAndroid Build Coastguard Worker return (value >>> distance) | (value << (64 - distance)); 73*795d594fSAndroid Build Coastguard Worker } 74*795d594fSAndroid Build Coastguard Worker test_Long_right_v_csubv()75*795d594fSAndroid Build Coastguard Worker public static void test_Long_right_v_csubv() throws Exception { 76*795d594fSAndroid Build Coastguard Worker assertLongEquals($noinline$rotate_long_right_reg_v_csubv(0x11, 0), 0x11); 77*795d594fSAndroid Build Coastguard Worker 78*795d594fSAndroid Build Coastguard Worker assertLongEquals($noinline$rotate_long_right_reg_v_csubv(0x11, 1), 0x8000000000000008L); 79*795d594fSAndroid Build Coastguard Worker assertLongEquals($noinline$rotate_long_right_reg_v_csubv(0x11, Long.SIZE - 1), 0x22); 80*795d594fSAndroid Build Coastguard Worker assertLongEquals($noinline$rotate_long_right_reg_v_csubv(0x11, Long.SIZE), 0x11); 81*795d594fSAndroid Build Coastguard Worker assertLongEquals($noinline$rotate_long_right_reg_v_csubv(0x11, Long.SIZE + 1), 0x8000000000000008L); 82*795d594fSAndroid Build Coastguard Worker 83*795d594fSAndroid Build Coastguard Worker assertLongEquals($noinline$rotate_long_right_reg_v_csubv(0x11, -1), 0x22); 84*795d594fSAndroid Build Coastguard Worker assertLongEquals($noinline$rotate_long_right_reg_v_csubv(0x11, -(Long.SIZE - 1)), 0x8000000000000008L); 85*795d594fSAndroid Build Coastguard Worker assertLongEquals($noinline$rotate_long_right_reg_v_csubv(0x11, -Long.SIZE), 0x11); 86*795d594fSAndroid Build Coastguard Worker assertLongEquals($noinline$rotate_long_right_reg_v_csubv(0x11, -(Long.SIZE + 1)), 0x22); 87*795d594fSAndroid Build Coastguard Worker 88*795d594fSAndroid Build Coastguard Worker assertLongEquals($noinline$rotate_long_right_reg_v_csubv(0x8000000000000000L, 1), 0x4000000000000000L); 89*795d594fSAndroid Build Coastguard Worker } 90*795d594fSAndroid Build Coastguard Worker $noinline$rotate_int_left_reg_csubv_v(int value, int distance)91*795d594fSAndroid Build Coastguard Worker public static int $noinline$rotate_int_left_reg_csubv_v(int value, int distance) { 92*795d594fSAndroid Build Coastguard Worker return (value >>> (32 - distance)) | (value << distance); 93*795d594fSAndroid Build Coastguard Worker } 94*795d594fSAndroid Build Coastguard Worker test_Integer_left_csubv_v()95*795d594fSAndroid Build Coastguard Worker public static void test_Integer_left_csubv_v() throws Exception { 96*795d594fSAndroid Build Coastguard Worker assertIntEquals($noinline$rotate_int_left_reg_csubv_v(0x11, 0), 0x11); 97*795d594fSAndroid Build Coastguard Worker 98*795d594fSAndroid Build Coastguard Worker assertIntEquals($noinline$rotate_int_left_reg_csubv_v(0x11, 1), 0x22); 99*795d594fSAndroid Build Coastguard Worker assertIntEquals($noinline$rotate_int_left_reg_csubv_v(0x11, Integer.SIZE - 1), 0x80000008); 100*795d594fSAndroid Build Coastguard Worker assertIntEquals($noinline$rotate_int_left_reg_csubv_v(0x11, Integer.SIZE), 0x11); 101*795d594fSAndroid Build Coastguard Worker assertIntEquals($noinline$rotate_int_left_reg_csubv_v(0x11, Integer.SIZE + 1), 0x22); 102*795d594fSAndroid Build Coastguard Worker 103*795d594fSAndroid Build Coastguard Worker assertIntEquals($noinline$rotate_int_left_reg_csubv_v(0x11, -1), 0x80000008); 104*795d594fSAndroid Build Coastguard Worker assertIntEquals($noinline$rotate_int_left_reg_csubv_v(0x11, -(Integer.SIZE - 1)), 0x22); 105*795d594fSAndroid Build Coastguard Worker assertIntEquals($noinline$rotate_int_left_reg_csubv_v(0x11, -Integer.SIZE), 0x11); 106*795d594fSAndroid Build Coastguard Worker assertIntEquals($noinline$rotate_int_left_reg_csubv_v(0x11, -(Integer.SIZE + 1)), 0x80000008); 107*795d594fSAndroid Build Coastguard Worker 108*795d594fSAndroid Build Coastguard Worker assertIntEquals($noinline$rotate_int_left_reg_csubv_v(0xC0000000, 1), 0x80000001); 109*795d594fSAndroid Build Coastguard Worker } 110*795d594fSAndroid Build Coastguard Worker $noinline$rotate_long_left_reg_csubv_v(long value, int distance)111*795d594fSAndroid Build Coastguard Worker public static long $noinline$rotate_long_left_reg_csubv_v(long value, int distance) { 112*795d594fSAndroid Build Coastguard Worker return (value >>> (64 - distance)) | (value << distance); 113*795d594fSAndroid Build Coastguard Worker } 114*795d594fSAndroid Build Coastguard Worker test_Long_left_csubv_v()115*795d594fSAndroid Build Coastguard Worker public static void test_Long_left_csubv_v() throws Exception { 116*795d594fSAndroid Build Coastguard Worker assertLongEquals($noinline$rotate_long_left_reg_csubv_v(0x11, 0), 0x11); 117*795d594fSAndroid Build Coastguard Worker 118*795d594fSAndroid Build Coastguard Worker assertLongEquals($noinline$rotate_long_left_reg_csubv_v(0x11, 1), 0x22); 119*795d594fSAndroid Build Coastguard Worker assertLongEquals($noinline$rotate_long_left_reg_csubv_v(0x11, Long.SIZE - 1), 0x8000000000000008L); 120*795d594fSAndroid Build Coastguard Worker assertLongEquals($noinline$rotate_long_left_reg_csubv_v(0x11, Long.SIZE), 0x11); 121*795d594fSAndroid Build Coastguard Worker assertLongEquals($noinline$rotate_long_left_reg_csubv_v(0x11, Long.SIZE + 1), 0x22); 122*795d594fSAndroid Build Coastguard Worker 123*795d594fSAndroid Build Coastguard Worker assertLongEquals($noinline$rotate_long_left_reg_csubv_v(0x11, -1), 0x8000000000000008L); 124*795d594fSAndroid Build Coastguard Worker assertLongEquals($noinline$rotate_long_left_reg_csubv_v(0x11, -(Long.SIZE - 1)), 0x22); 125*795d594fSAndroid Build Coastguard Worker assertLongEquals($noinline$rotate_long_left_reg_csubv_v(0x11, -Long.SIZE), 0x11); 126*795d594fSAndroid Build Coastguard Worker assertLongEquals($noinline$rotate_long_left_reg_csubv_v(0x11, -(Long.SIZE + 1)), 0x8000000000000008L); 127*795d594fSAndroid Build Coastguard Worker 128*795d594fSAndroid Build Coastguard Worker assertLongEquals($noinline$rotate_long_left_reg_csubv_v(0xC000000000000000L, 1), 0x8000000000000001L); 129*795d594fSAndroid Build Coastguard Worker } 130*795d594fSAndroid Build Coastguard Worker $noinline$rotate_int_right_reg_v_negv(int value, int distance)131*795d594fSAndroid Build Coastguard Worker public static int $noinline$rotate_int_right_reg_v_negv(int value, int distance) { 132*795d594fSAndroid Build Coastguard Worker return (value >>> distance) | (value << -distance); 133*795d594fSAndroid Build Coastguard Worker } 134*795d594fSAndroid Build Coastguard Worker test_Integer_right_v_negv()135*795d594fSAndroid Build Coastguard Worker public static void test_Integer_right_v_negv() throws Exception { 136*795d594fSAndroid Build Coastguard Worker assertIntEquals($noinline$rotate_int_right_reg_v_negv(0x11, 0), 0x11); 137*795d594fSAndroid Build Coastguard Worker 138*795d594fSAndroid Build Coastguard Worker assertIntEquals($noinline$rotate_int_right_reg_v_negv(0x11, 1), 0x80000008); 139*795d594fSAndroid Build Coastguard Worker assertIntEquals($noinline$rotate_int_right_reg_v_negv(0x11, Integer.SIZE - 1), 0x22); 140*795d594fSAndroid Build Coastguard Worker assertIntEquals($noinline$rotate_int_right_reg_v_negv(0x11, Integer.SIZE), 0x11); 141*795d594fSAndroid Build Coastguard Worker assertIntEquals($noinline$rotate_int_right_reg_v_negv(0x11, Integer.SIZE + 1), 0x80000008); 142*795d594fSAndroid Build Coastguard Worker 143*795d594fSAndroid Build Coastguard Worker assertIntEquals($noinline$rotate_int_right_reg_v_negv(0x11, -1), 0x22); 144*795d594fSAndroid Build Coastguard Worker assertIntEquals($noinline$rotate_int_right_reg_v_negv(0x11, -(Integer.SIZE - 1)), 0x80000008); 145*795d594fSAndroid Build Coastguard Worker assertIntEquals($noinline$rotate_int_right_reg_v_negv(0x11, -Integer.SIZE), 0x11); 146*795d594fSAndroid Build Coastguard Worker assertIntEquals($noinline$rotate_int_right_reg_v_negv(0x11, -(Integer.SIZE + 1)), 0x22); 147*795d594fSAndroid Build Coastguard Worker 148*795d594fSAndroid Build Coastguard Worker assertIntEquals($noinline$rotate_int_right_reg_v_negv(0x80000000, 1), 0x40000000); 149*795d594fSAndroid Build Coastguard Worker } 150*795d594fSAndroid Build Coastguard Worker $noinline$rotate_long_right_reg_v_negv(long value, int distance)151*795d594fSAndroid Build Coastguard Worker public static long $noinline$rotate_long_right_reg_v_negv(long value, int distance) { 152*795d594fSAndroid Build Coastguard Worker return (value >>> distance) | (value << -distance); 153*795d594fSAndroid Build Coastguard Worker } 154*795d594fSAndroid Build Coastguard Worker test_Long_right_v_negv()155*795d594fSAndroid Build Coastguard Worker public static void test_Long_right_v_negv() throws Exception { 156*795d594fSAndroid Build Coastguard Worker assertLongEquals($noinline$rotate_long_right_reg_v_negv(0x11, 0), 0x11); 157*795d594fSAndroid Build Coastguard Worker 158*795d594fSAndroid Build Coastguard Worker assertLongEquals($noinline$rotate_long_right_reg_v_negv(0x11, 1), 0x8000000000000008L); 159*795d594fSAndroid Build Coastguard Worker assertLongEquals($noinline$rotate_long_right_reg_v_negv(0x11, Long.SIZE - 1), 0x22); 160*795d594fSAndroid Build Coastguard Worker assertLongEquals($noinline$rotate_long_right_reg_v_negv(0x11, Long.SIZE), 0x11); 161*795d594fSAndroid Build Coastguard Worker assertLongEquals($noinline$rotate_long_right_reg_v_negv(0x11, Long.SIZE + 1), 0x8000000000000008L); 162*795d594fSAndroid Build Coastguard Worker 163*795d594fSAndroid Build Coastguard Worker assertLongEquals($noinline$rotate_long_right_reg_v_negv(0x11, -1), 0x22); 164*795d594fSAndroid Build Coastguard Worker assertLongEquals($noinline$rotate_long_right_reg_v_negv(0x11, -(Long.SIZE - 1)), 0x8000000000000008L); 165*795d594fSAndroid Build Coastguard Worker assertLongEquals($noinline$rotate_long_right_reg_v_negv(0x11, -Long.SIZE), 0x11); 166*795d594fSAndroid Build Coastguard Worker assertLongEquals($noinline$rotate_long_right_reg_v_negv(0x11, -(Long.SIZE + 1)), 0x22); 167*795d594fSAndroid Build Coastguard Worker 168*795d594fSAndroid Build Coastguard Worker assertLongEquals($noinline$rotate_long_right_reg_v_negv(0x8000000000000000L, 1), 0x4000000000000000L); 169*795d594fSAndroid Build Coastguard Worker } 170*795d594fSAndroid Build Coastguard Worker $noinline$rotate_int_left_reg_negv_v(int value, int distance)171*795d594fSAndroid Build Coastguard Worker public static int $noinline$rotate_int_left_reg_negv_v(int value, int distance) { 172*795d594fSAndroid Build Coastguard Worker return (value >>> -distance) | (value << distance); 173*795d594fSAndroid Build Coastguard Worker } 174*795d594fSAndroid Build Coastguard Worker test_Integer_left_negv_v()175*795d594fSAndroid Build Coastguard Worker public static void test_Integer_left_negv_v() throws Exception { 176*795d594fSAndroid Build Coastguard Worker assertIntEquals($noinline$rotate_int_left_reg_negv_v(0x11, 0), 0x11); 177*795d594fSAndroid Build Coastguard Worker 178*795d594fSAndroid Build Coastguard Worker assertIntEquals($noinline$rotate_int_left_reg_negv_v(0x11, 1), 0x22); 179*795d594fSAndroid Build Coastguard Worker assertIntEquals($noinline$rotate_int_left_reg_negv_v(0x11, Integer.SIZE - 1), 0x80000008); 180*795d594fSAndroid Build Coastguard Worker assertIntEquals($noinline$rotate_int_left_reg_negv_v(0x11, Integer.SIZE), 0x11); 181*795d594fSAndroid Build Coastguard Worker assertIntEquals($noinline$rotate_int_left_reg_negv_v(0x11, Integer.SIZE + 1), 0x22); 182*795d594fSAndroid Build Coastguard Worker 183*795d594fSAndroid Build Coastguard Worker assertIntEquals($noinline$rotate_int_left_reg_negv_v(0x11, -1), 0x80000008); 184*795d594fSAndroid Build Coastguard Worker assertIntEquals($noinline$rotate_int_left_reg_negv_v(0x11, -(Integer.SIZE - 1)), 0x22); 185*795d594fSAndroid Build Coastguard Worker assertIntEquals($noinline$rotate_int_left_reg_negv_v(0x11, -Integer.SIZE), 0x11); 186*795d594fSAndroid Build Coastguard Worker assertIntEquals($noinline$rotate_int_left_reg_negv_v(0x11, -(Integer.SIZE + 1)), 0x80000008); 187*795d594fSAndroid Build Coastguard Worker 188*795d594fSAndroid Build Coastguard Worker assertIntEquals($noinline$rotate_int_left_reg_negv_v(0xC0000000, 1), 0x80000001); 189*795d594fSAndroid Build Coastguard Worker } 190*795d594fSAndroid Build Coastguard Worker $noinline$rotate_long_left_reg_negv_v(long value, int distance)191*795d594fSAndroid Build Coastguard Worker public static long $noinline$rotate_long_left_reg_negv_v(long value, int distance) { 192*795d594fSAndroid Build Coastguard Worker return (value >>> -distance) | (value << distance); 193*795d594fSAndroid Build Coastguard Worker } 194*795d594fSAndroid Build Coastguard Worker test_Long_left_negv_v()195*795d594fSAndroid Build Coastguard Worker public static void test_Long_left_negv_v() throws Exception { 196*795d594fSAndroid Build Coastguard Worker assertLongEquals($noinline$rotate_long_left_reg_negv_v(0x11, 0), 0x11); 197*795d594fSAndroid Build Coastguard Worker 198*795d594fSAndroid Build Coastguard Worker assertLongEquals($noinline$rotate_long_left_reg_negv_v(0x11, 1), 0x22); 199*795d594fSAndroid Build Coastguard Worker assertLongEquals($noinline$rotate_long_left_reg_negv_v(0x11, Long.SIZE - 1), 0x8000000000000008L); 200*795d594fSAndroid Build Coastguard Worker assertLongEquals($noinline$rotate_long_left_reg_negv_v(0x11, Long.SIZE), 0x11); 201*795d594fSAndroid Build Coastguard Worker assertLongEquals($noinline$rotate_long_left_reg_negv_v(0x11, Long.SIZE + 1), 0x22); 202*795d594fSAndroid Build Coastguard Worker 203*795d594fSAndroid Build Coastguard Worker assertLongEquals($noinline$rotate_long_left_reg_negv_v(0x11, -1), 0x8000000000000008L); 204*795d594fSAndroid Build Coastguard Worker assertLongEquals($noinline$rotate_long_left_reg_negv_v(0x11, -(Long.SIZE - 1)), 0x22); 205*795d594fSAndroid Build Coastguard Worker assertLongEquals($noinline$rotate_long_left_reg_negv_v(0x11, -Long.SIZE), 0x11); 206*795d594fSAndroid Build Coastguard Worker assertLongEquals($noinline$rotate_long_left_reg_negv_v(0x11, -(Long.SIZE + 1)), 0x8000000000000008L); 207*795d594fSAndroid Build Coastguard Worker 208*795d594fSAndroid Build Coastguard Worker assertLongEquals($noinline$rotate_long_left_reg_negv_v(0xC000000000000000L, 1), 0x8000000000000001L); 209*795d594fSAndroid Build Coastguard Worker } 210*795d594fSAndroid Build Coastguard Worker $noinline$rotate_int_right_constant_0(int value)211*795d594fSAndroid Build Coastguard Worker public static int $noinline$rotate_int_right_constant_0(int value) { 212*795d594fSAndroid Build Coastguard Worker return (value >>> 0) | (value << 0); 213*795d594fSAndroid Build Coastguard Worker } 214*795d594fSAndroid Build Coastguard Worker $noinline$rotate_int_right_constant_1(int value)215*795d594fSAndroid Build Coastguard Worker public static int $noinline$rotate_int_right_constant_1(int value) { 216*795d594fSAndroid Build Coastguard Worker return (value >>> 1) | (value << -1); 217*795d594fSAndroid Build Coastguard Worker } 218*795d594fSAndroid Build Coastguard Worker $noinline$rotate_int_right_constant_m1(int value)219*795d594fSAndroid Build Coastguard Worker public static int $noinline$rotate_int_right_constant_m1(int value) { 220*795d594fSAndroid Build Coastguard Worker return (value >>> -1) | (value << 1); 221*795d594fSAndroid Build Coastguard Worker } 222*795d594fSAndroid Build Coastguard Worker $noinline$rotate_int_right_constant_16(int value)223*795d594fSAndroid Build Coastguard Worker public static int $noinline$rotate_int_right_constant_16(int value) { 224*795d594fSAndroid Build Coastguard Worker return (value >>> 16) | (value << -16); 225*795d594fSAndroid Build Coastguard Worker } 226*795d594fSAndroid Build Coastguard Worker test_Integer_right_constant_v()227*795d594fSAndroid Build Coastguard Worker public static void test_Integer_right_constant_v() throws Exception { 228*795d594fSAndroid Build Coastguard Worker assertIntEquals($noinline$rotate_int_right_constant_0(0x11), 0x11); 229*795d594fSAndroid Build Coastguard Worker assertIntEquals($noinline$rotate_int_right_constant_1(0x11), 0x80000008); 230*795d594fSAndroid Build Coastguard Worker assertIntEquals($noinline$rotate_int_right_constant_m1(0x11), 0x22); 231*795d594fSAndroid Build Coastguard Worker assertIntEquals($noinline$rotate_int_right_constant_16(0x11), 0x110000); 232*795d594fSAndroid Build Coastguard Worker } 233*795d594fSAndroid Build Coastguard Worker $noinline$rotate_long_right_constant_0(long value)234*795d594fSAndroid Build Coastguard Worker public static long $noinline$rotate_long_right_constant_0(long value) { 235*795d594fSAndroid Build Coastguard Worker return (value >>> 0) | (value << 0); 236*795d594fSAndroid Build Coastguard Worker } 237*795d594fSAndroid Build Coastguard Worker $noinline$rotate_long_right_constant_1(long value)238*795d594fSAndroid Build Coastguard Worker public static long $noinline$rotate_long_right_constant_1(long value) { 239*795d594fSAndroid Build Coastguard Worker return (value >>> 1) | (value << -1); 240*795d594fSAndroid Build Coastguard Worker } 241*795d594fSAndroid Build Coastguard Worker $noinline$rotate_long_right_constant_m1(long value)242*795d594fSAndroid Build Coastguard Worker public static long $noinline$rotate_long_right_constant_m1(long value) { 243*795d594fSAndroid Build Coastguard Worker return (value >>> -1) | (value << 1); 244*795d594fSAndroid Build Coastguard Worker } 245*795d594fSAndroid Build Coastguard Worker $noinline$rotate_long_right_constant_16(long value)246*795d594fSAndroid Build Coastguard Worker public static long $noinline$rotate_long_right_constant_16(long value) { 247*795d594fSAndroid Build Coastguard Worker return (value >>> 16) | (value << -16); 248*795d594fSAndroid Build Coastguard Worker } 249*795d594fSAndroid Build Coastguard Worker $noinline$rotate_long_right_constant_32(long value)250*795d594fSAndroid Build Coastguard Worker public static long $noinline$rotate_long_right_constant_32(long value) { 251*795d594fSAndroid Build Coastguard Worker return (value >>> 32) | (value << -32); 252*795d594fSAndroid Build Coastguard Worker } 253*795d594fSAndroid Build Coastguard Worker $noinline$rotate_long_right_constant_48(long value)254*795d594fSAndroid Build Coastguard Worker public static long $noinline$rotate_long_right_constant_48(long value) { 255*795d594fSAndroid Build Coastguard Worker return (value >>> 48) | (value << -48); 256*795d594fSAndroid Build Coastguard Worker } 257*795d594fSAndroid Build Coastguard Worker $noinline$rotate_long_right_constant_64(long value)258*795d594fSAndroid Build Coastguard Worker public static long $noinline$rotate_long_right_constant_64(long value) { 259*795d594fSAndroid Build Coastguard Worker return (value >>> 64) | (value << -64); 260*795d594fSAndroid Build Coastguard Worker } 261*795d594fSAndroid Build Coastguard Worker test_Long_right_constant_v()262*795d594fSAndroid Build Coastguard Worker public static void test_Long_right_constant_v() throws Exception { 263*795d594fSAndroid Build Coastguard Worker assertLongEquals($noinline$rotate_long_right_constant_0(0x11), 0x11); 264*795d594fSAndroid Build Coastguard Worker assertLongEquals($noinline$rotate_long_right_constant_1(0x11), 0x8000000000000008L); 265*795d594fSAndroid Build Coastguard Worker assertLongEquals($noinline$rotate_long_right_constant_m1(0x11), 0x22); 266*795d594fSAndroid Build Coastguard Worker assertLongEquals($noinline$rotate_long_right_constant_16(0x11), 0x11000000000000L); 267*795d594fSAndroid Build Coastguard Worker assertLongEquals($noinline$rotate_long_right_constant_32(0x11), 0x1100000000L); 268*795d594fSAndroid Build Coastguard Worker assertLongEquals($noinline$rotate_long_right_constant_48(0x11), 0x110000L); 269*795d594fSAndroid Build Coastguard Worker } 270*795d594fSAndroid Build Coastguard Worker $noinline$rotate_int_left_constant_0(int value)271*795d594fSAndroid Build Coastguard Worker public static int $noinline$rotate_int_left_constant_0(int value) { 272*795d594fSAndroid Build Coastguard Worker return (value << 0) | (value >>> 0); 273*795d594fSAndroid Build Coastguard Worker } 274*795d594fSAndroid Build Coastguard Worker $noinline$rotate_int_left_constant_1(int value)275*795d594fSAndroid Build Coastguard Worker public static int $noinline$rotate_int_left_constant_1(int value) { 276*795d594fSAndroid Build Coastguard Worker return (value << 1) | (value >>> -1); 277*795d594fSAndroid Build Coastguard Worker } 278*795d594fSAndroid Build Coastguard Worker $noinline$rotate_int_left_constant_m1(int value)279*795d594fSAndroid Build Coastguard Worker public static int $noinline$rotate_int_left_constant_m1(int value) { 280*795d594fSAndroid Build Coastguard Worker return (value << -1) | (value >>> 1); 281*795d594fSAndroid Build Coastguard Worker } 282*795d594fSAndroid Build Coastguard Worker $noinline$rotate_int_left_constant_16(int value)283*795d594fSAndroid Build Coastguard Worker public static int $noinline$rotate_int_left_constant_16(int value) { 284*795d594fSAndroid Build Coastguard Worker return (value << 16) | (value >>> -16); 285*795d594fSAndroid Build Coastguard Worker } 286*795d594fSAndroid Build Coastguard Worker test_Integer_left_constant_v()287*795d594fSAndroid Build Coastguard Worker public static void test_Integer_left_constant_v() throws Exception { 288*795d594fSAndroid Build Coastguard Worker assertIntEquals($noinline$rotate_int_left_constant_0(0x11), 0x11); 289*795d594fSAndroid Build Coastguard Worker assertIntEquals($noinline$rotate_int_left_constant_1(0x11), 0x22); 290*795d594fSAndroid Build Coastguard Worker assertIntEquals($noinline$rotate_int_left_constant_m1(0x11), 0x80000008); 291*795d594fSAndroid Build Coastguard Worker assertIntEquals($noinline$rotate_int_left_constant_16(0x11), 0x110000); 292*795d594fSAndroid Build Coastguard Worker } 293*795d594fSAndroid Build Coastguard Worker $noinline$rotate_long_left_constant_0(long value)294*795d594fSAndroid Build Coastguard Worker public static long $noinline$rotate_long_left_constant_0(long value) { 295*795d594fSAndroid Build Coastguard Worker return (value << 0) | (value >>> 0); 296*795d594fSAndroid Build Coastguard Worker } 297*795d594fSAndroid Build Coastguard Worker $noinline$rotate_long_left_constant_1(long value)298*795d594fSAndroid Build Coastguard Worker public static long $noinline$rotate_long_left_constant_1(long value) { 299*795d594fSAndroid Build Coastguard Worker return (value << 1) | (value >>> -1); 300*795d594fSAndroid Build Coastguard Worker } 301*795d594fSAndroid Build Coastguard Worker $noinline$rotate_long_left_constant_m1(long value)302*795d594fSAndroid Build Coastguard Worker public static long $noinline$rotate_long_left_constant_m1(long value) { 303*795d594fSAndroid Build Coastguard Worker return (value << -1) | (value >>> 1); 304*795d594fSAndroid Build Coastguard Worker } 305*795d594fSAndroid Build Coastguard Worker $noinline$rotate_long_left_constant_16(long value)306*795d594fSAndroid Build Coastguard Worker public static long $noinline$rotate_long_left_constant_16(long value) { 307*795d594fSAndroid Build Coastguard Worker return (value << 16) | (value >>> -16); 308*795d594fSAndroid Build Coastguard Worker } 309*795d594fSAndroid Build Coastguard Worker $noinline$rotate_long_left_constant_32(long value)310*795d594fSAndroid Build Coastguard Worker public static long $noinline$rotate_long_left_constant_32(long value) { 311*795d594fSAndroid Build Coastguard Worker return (value << 32) | (value >>> -32); 312*795d594fSAndroid Build Coastguard Worker } 313*795d594fSAndroid Build Coastguard Worker $noinline$rotate_long_left_constant_48(long value)314*795d594fSAndroid Build Coastguard Worker public static long $noinline$rotate_long_left_constant_48(long value) { 315*795d594fSAndroid Build Coastguard Worker return (value << 48) | (value >>> -48); 316*795d594fSAndroid Build Coastguard Worker } 317*795d594fSAndroid Build Coastguard Worker $noinline$rotate_long_left_constant_64(long value)318*795d594fSAndroid Build Coastguard Worker public static long $noinline$rotate_long_left_constant_64(long value) { 319*795d594fSAndroid Build Coastguard Worker return (value << 64) | (value >>> -64); 320*795d594fSAndroid Build Coastguard Worker } 321*795d594fSAndroid Build Coastguard Worker test_Long_left_constant_v()322*795d594fSAndroid Build Coastguard Worker public static void test_Long_left_constant_v() throws Exception { 323*795d594fSAndroid Build Coastguard Worker assertLongEquals($noinline$rotate_long_left_constant_0(0x11), 0x11); 324*795d594fSAndroid Build Coastguard Worker assertLongEquals($noinline$rotate_long_left_constant_1(0x11), 0x22); 325*795d594fSAndroid Build Coastguard Worker assertLongEquals($noinline$rotate_long_left_constant_m1(0x11), 0x8000000000000008L); 326*795d594fSAndroid Build Coastguard Worker assertLongEquals($noinline$rotate_long_left_constant_16(0x11), 0x110000L); 327*795d594fSAndroid Build Coastguard Worker assertLongEquals($noinline$rotate_long_left_constant_32(0x11), 0x1100000000L); 328*795d594fSAndroid Build Coastguard Worker assertLongEquals($noinline$rotate_long_left_constant_48(0x11), 0x11000000000000L); 329*795d594fSAndroid Build Coastguard Worker } 330*795d594fSAndroid Build Coastguard Worker 331*795d594fSAndroid Build Coastguard Worker } 332