xref: /aosp_15_r20/art/test/567-checker-builder-intrinsics/src/TestCompare.java (revision 795d594fd825385562da6b089ea9b2033f3abf5a)
1*795d594fSAndroid Build Coastguard Worker /*
2*795d594fSAndroid Build Coastguard Worker  * Copyright (C) 2016 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 TestCompare {
18*795d594fSAndroid Build Coastguard Worker 
19*795d594fSAndroid Build Coastguard Worker   /// CHECK-START: void TestCompare.$opt$noinline$testReplaceInputWithItself(int) builder (after)
20*795d594fSAndroid Build Coastguard Worker   /// CHECK-DAG:     <<ArgX:i\d+>>   ParameterValue
21*795d594fSAndroid Build Coastguard Worker   /// CHECK-DAG:     <<Zero:i\d+>>   IntConstant 0
22*795d594fSAndroid Build Coastguard Worker   /// CHECK-DAG:     <<Cmp:i\d+>>    Compare [<<ArgX>>,<<Zero>>]
23*795d594fSAndroid Build Coastguard Worker   /// CHECK-DAG:                     GreaterThanOrEqual [<<Cmp>>,<<Zero>>]
24*795d594fSAndroid Build Coastguard Worker 
25*795d594fSAndroid Build Coastguard Worker   /// CHECK-START: void TestCompare.$opt$noinline$testReplaceInputWithItself(int) instruction_simplifier (after)
26*795d594fSAndroid Build Coastguard Worker   /// CHECK-DAG:     <<ArgX:i\d+>>   ParameterValue
27*795d594fSAndroid Build Coastguard Worker   /// CHECK-DAG:     <<Zero:i\d+>>   IntConstant 0
28*795d594fSAndroid Build Coastguard Worker   /// CHECK-DAG:                     GreaterThanOrEqual [<<ArgX>>,<<Zero>>]
29*795d594fSAndroid Build Coastguard Worker 
$opt$noinline$testReplaceInputWithItself(int x)30*795d594fSAndroid Build Coastguard Worker   public static void $opt$noinline$testReplaceInputWithItself(int x) {
31*795d594fSAndroid Build Coastguard Worker     // The instruction builder first replaces Integer.compare(x, 0) with Compare HIR
32*795d594fSAndroid Build Coastguard Worker     // and then the instruction simplifier merges the Compare into the GreaterThanOrEqual.
33*795d594fSAndroid Build Coastguard Worker     // This is a regression test to check that it is allowed to replace the second
34*795d594fSAndroid Build Coastguard Worker     // input of the GreaterThanOrEqual, i.e. <<Zero>>, with the very same instruction.
35*795d594fSAndroid Build Coastguard Worker     if (Integer.compare(x, 0) < 0) {
36*795d594fSAndroid Build Coastguard Worker       System.out.println("OOOPS");
37*795d594fSAndroid Build Coastguard Worker     }
38*795d594fSAndroid Build Coastguard Worker   }
39*795d594fSAndroid Build Coastguard Worker 
40*795d594fSAndroid Build Coastguard Worker   /// CHECK-START: int TestCompare.compareBooleans(boolean, boolean) select_generator (after)
41*795d594fSAndroid Build Coastguard Worker   /// CHECK-NOT:                     Phi
42*795d594fSAndroid Build Coastguard Worker 
43*795d594fSAndroid Build Coastguard Worker   /// CHECK-START: int TestCompare.compareBooleans(boolean, boolean) instruction_simplifier$before_codegen (after)
44*795d594fSAndroid Build Coastguard Worker   /// CHECK:         <<ArgX:z\d+>>   ParameterValue
45*795d594fSAndroid Build Coastguard Worker   /// CHECK:         <<ArgY:z\d+>>   ParameterValue
46*795d594fSAndroid Build Coastguard Worker   /// CHECK-DAG:     <<Result:i\d+>> Compare [<<ArgX>>,<<ArgY>>]
47*795d594fSAndroid Build Coastguard Worker   /// CHECK-DAG:                     Return [<<Result>>]
48*795d594fSAndroid Build Coastguard Worker 
49*795d594fSAndroid Build Coastguard Worker   /// CHECK-START: int TestCompare.compareBooleans(boolean, boolean) instruction_simplifier$before_codegen (after)
50*795d594fSAndroid Build Coastguard Worker   /// CHECK-NOT:                     Select
51*795d594fSAndroid Build Coastguard Worker 
compareBooleans(boolean x, boolean y)52*795d594fSAndroid Build Coastguard Worker   private static int compareBooleans(boolean x, boolean y) {
53*795d594fSAndroid Build Coastguard Worker     return Integer.compare((x ? 1 : 0), (y ? 1 : 0));
54*795d594fSAndroid Build Coastguard Worker   }
55*795d594fSAndroid Build Coastguard Worker 
56*795d594fSAndroid Build Coastguard Worker   ///  CHECK-START: int TestCompare.compareBooleans2(boolean, boolean) builder (after)
57*795d594fSAndroid Build Coastguard Worker   ///  CHECK-DAG:     <<Zero:i\d+>>   IntConstant 0
58*795d594fSAndroid Build Coastguard Worker   ///  CHECK-DAG:     <<One:i\d+>>    IntConstant 1
59*795d594fSAndroid Build Coastguard Worker   ///  CHECK-DAG:     <<PhiX:i\d+>>   Phi [<<One>>,<<Zero>>]
60*795d594fSAndroid Build Coastguard Worker   ///  CHECK-DAG:     <<PhiY:i\d+>>   Phi [<<One>>,<<Zero>>]
61*795d594fSAndroid Build Coastguard Worker   ///  CHECK-DAG:     <<Result:i\d+>> Compare [<<PhiX>>,<<PhiY>>]
62*795d594fSAndroid Build Coastguard Worker   ///  CHECK-DAG:                     Return [<<Result>>]
63*795d594fSAndroid Build Coastguard Worker 
64*795d594fSAndroid Build Coastguard Worker   ///  CHECK-START: int TestCompare.compareBooleans2(boolean, boolean) builder (after)
65*795d594fSAndroid Build Coastguard Worker   ///  CHECK-NOT:                     InvokeStaticOrDirect
66*795d594fSAndroid Build Coastguard Worker 
67*795d594fSAndroid Build Coastguard Worker   ///  CHECK-START: int TestCompare.compareBooleans2(boolean, boolean) select_generator (after)
68*795d594fSAndroid Build Coastguard Worker   ///  CHECK:         <<ArgX:z\d+>>   ParameterValue
69*795d594fSAndroid Build Coastguard Worker   ///  CHECK:         <<ArgY:z\d+>>   ParameterValue
70*795d594fSAndroid Build Coastguard Worker   ///  CHECK-DAG:     <<Zero:i\d+>>   IntConstant 0
71*795d594fSAndroid Build Coastguard Worker   ///  CHECK-DAG:     <<One:i\d+>>    IntConstant 1
72*795d594fSAndroid Build Coastguard Worker   ///  CHECK-DAG:     <<SelX:i\d+>>   Select [<<Zero>>,<<One>>,<<ArgX>>]
73*795d594fSAndroid Build Coastguard Worker   ///  CHECK-DAG:     <<SelY:i\d+>>   Select [<<Zero>>,<<One>>,<<ArgY>>]
74*795d594fSAndroid Build Coastguard Worker   ///  CHECK-DAG:     <<Result:i\d+>> Compare [<<SelX>>,<<SelY>>]
75*795d594fSAndroid Build Coastguard Worker   ///  CHECK-DAG:                     Return [<<Result>>]
76*795d594fSAndroid Build Coastguard Worker 
77*795d594fSAndroid Build Coastguard Worker   ///  CHECK-START: int TestCompare.compareBooleans2(boolean, boolean) select_generator (after)
78*795d594fSAndroid Build Coastguard Worker   ///  CHECK-NOT:                     Phi
79*795d594fSAndroid Build Coastguard Worker 
80*795d594fSAndroid Build Coastguard Worker   ///  CHECK-START: int TestCompare.compareBooleans2(boolean, boolean) instruction_simplifier$before_codegen (after)
81*795d594fSAndroid Build Coastguard Worker   ///  CHECK:         <<ArgX:z\d+>>   ParameterValue
82*795d594fSAndroid Build Coastguard Worker   ///  CHECK:         <<ArgY:z\d+>>   ParameterValue
83*795d594fSAndroid Build Coastguard Worker   ///  CHECK-DAG:     <<Result:i\d+>> Compare [<<ArgX>>,<<ArgY>>]
84*795d594fSAndroid Build Coastguard Worker   ///  CHECK-DAG:                     Return [<<Result>>]
85*795d594fSAndroid Build Coastguard Worker 
86*795d594fSAndroid Build Coastguard Worker   ///  CHECK-START: int TestCompare.compareBooleans2(boolean, boolean) instruction_simplifier$before_codegen (after)
87*795d594fSAndroid Build Coastguard Worker   ///  CHECK-NOT:                     Select
88*795d594fSAndroid Build Coastguard Worker 
compareBooleans2(boolean x, boolean y)89*795d594fSAndroid Build Coastguard Worker   private static int compareBooleans2(boolean x, boolean y) {
90*795d594fSAndroid Build Coastguard Worker     // Note: D8 would replace the ternary expression `x ? 1 : 0` with `x`
91*795d594fSAndroid Build Coastguard Worker     // but explicit `if` is preserved.
92*795d594fSAndroid Build Coastguard Worker     int src_x;
93*795d594fSAndroid Build Coastguard Worker     if (x) {
94*795d594fSAndroid Build Coastguard Worker       src_x = 1;
95*795d594fSAndroid Build Coastguard Worker     } else {
96*795d594fSAndroid Build Coastguard Worker       src_x = 0;
97*795d594fSAndroid Build Coastguard Worker     }
98*795d594fSAndroid Build Coastguard Worker     int src_y;
99*795d594fSAndroid Build Coastguard Worker     if (y) {
100*795d594fSAndroid Build Coastguard Worker       src_y = 1;
101*795d594fSAndroid Build Coastguard Worker     } else {
102*795d594fSAndroid Build Coastguard Worker       src_y = 0;
103*795d594fSAndroid Build Coastguard Worker     }
104*795d594fSAndroid Build Coastguard Worker     return Integer.compare(src_x, src_y);
105*795d594fSAndroid Build Coastguard Worker   }
106*795d594fSAndroid Build Coastguard Worker 
107*795d594fSAndroid Build Coastguard Worker   /// CHECK-START: int TestCompare.compareBytes(byte, byte) builder (after)
108*795d594fSAndroid Build Coastguard Worker   /// CHECK-DAG:     <<Result:i\d+>> Compare
109*795d594fSAndroid Build Coastguard Worker   /// CHECK-DAG:                     Return [<<Result>>]
110*795d594fSAndroid Build Coastguard Worker 
111*795d594fSAndroid Build Coastguard Worker   /// CHECK-START: int TestCompare.compareBytes(byte, byte) builder (after)
112*795d594fSAndroid Build Coastguard Worker   /// CHECK-NOT:                     InvokeStaticOrDirect
113*795d594fSAndroid Build Coastguard Worker 
compareBytes(byte x, byte y)114*795d594fSAndroid Build Coastguard Worker   private static int compareBytes(byte x, byte y) {
115*795d594fSAndroid Build Coastguard Worker     return Integer.compare(x, y);
116*795d594fSAndroid Build Coastguard Worker   }
117*795d594fSAndroid Build Coastguard Worker 
118*795d594fSAndroid Build Coastguard Worker   /// CHECK-START: int TestCompare.compareShorts(short, short) builder (after)
119*795d594fSAndroid Build Coastguard Worker   /// CHECK-DAG:     <<Result:i\d+>> Compare
120*795d594fSAndroid Build Coastguard Worker   /// CHECK-DAG:                     Return [<<Result>>]
121*795d594fSAndroid Build Coastguard Worker 
122*795d594fSAndroid Build Coastguard Worker   /// CHECK-START: int TestCompare.compareShorts(short, short) builder (after)
123*795d594fSAndroid Build Coastguard Worker   /// CHECK-NOT:                     InvokeStaticOrDirect
124*795d594fSAndroid Build Coastguard Worker 
compareShorts(short x, short y)125*795d594fSAndroid Build Coastguard Worker   private static int compareShorts(short x, short y) {
126*795d594fSAndroid Build Coastguard Worker     return Integer.compare(x, y);
127*795d594fSAndroid Build Coastguard Worker   }
128*795d594fSAndroid Build Coastguard Worker 
129*795d594fSAndroid Build Coastguard Worker   /// CHECK-START: int TestCompare.compareChars(char, char) builder (after)
130*795d594fSAndroid Build Coastguard Worker   /// CHECK-DAG:     <<Result:i\d+>> Compare
131*795d594fSAndroid Build Coastguard Worker   /// CHECK-DAG:                     Return [<<Result>>]
132*795d594fSAndroid Build Coastguard Worker 
133*795d594fSAndroid Build Coastguard Worker   /// CHECK-START: int TestCompare.compareChars(char, char) builder (after)
134*795d594fSAndroid Build Coastguard Worker   /// CHECK-NOT:                     InvokeStaticOrDirect
135*795d594fSAndroid Build Coastguard Worker 
compareChars(char x, char y)136*795d594fSAndroid Build Coastguard Worker   private static int compareChars(char x, char y) {
137*795d594fSAndroid Build Coastguard Worker     return Integer.compare(x, y);
138*795d594fSAndroid Build Coastguard Worker   }
139*795d594fSAndroid Build Coastguard Worker 
140*795d594fSAndroid Build Coastguard Worker   /// CHECK-START: int TestCompare.compareInts(int, int) builder (after)
141*795d594fSAndroid Build Coastguard Worker   /// CHECK-DAG:     <<Result:i\d+>> Compare
142*795d594fSAndroid Build Coastguard Worker   /// CHECK-DAG:                     Return [<<Result>>]
143*795d594fSAndroid Build Coastguard Worker 
144*795d594fSAndroid Build Coastguard Worker   /// CHECK-START: int TestCompare.compareInts(int, int) builder (after)
145*795d594fSAndroid Build Coastguard Worker   /// CHECK-NOT:                     InvokeStaticOrDirect
146*795d594fSAndroid Build Coastguard Worker 
compareInts(int x, int y)147*795d594fSAndroid Build Coastguard Worker   private static int compareInts(int x, int y) {
148*795d594fSAndroid Build Coastguard Worker     return Integer.compare(x, y);
149*795d594fSAndroid Build Coastguard Worker   }
150*795d594fSAndroid Build Coastguard Worker 
151*795d594fSAndroid Build Coastguard Worker   /// CHECK-START: int TestCompare.compareLongs(long, long) builder (after)
152*795d594fSAndroid Build Coastguard Worker   /// CHECK-DAG:     <<Result:i\d+>> Compare
153*795d594fSAndroid Build Coastguard Worker   /// CHECK-DAG:                     Return [<<Result>>]
154*795d594fSAndroid Build Coastguard Worker 
155*795d594fSAndroid Build Coastguard Worker   /// CHECK-START: int TestCompare.compareLongs(long, long) builder (after)
156*795d594fSAndroid Build Coastguard Worker   /// CHECK-NOT:                     InvokeStaticOrDirect
157*795d594fSAndroid Build Coastguard Worker 
compareLongs(long x, long y)158*795d594fSAndroid Build Coastguard Worker   private static int compareLongs(long x, long y) {
159*795d594fSAndroid Build Coastguard Worker     return Long.compare(x, y);
160*795d594fSAndroid Build Coastguard Worker   }
161*795d594fSAndroid Build Coastguard Worker 
162*795d594fSAndroid Build Coastguard Worker 
163*795d594fSAndroid Build Coastguard Worker   /// CHECK-START: int TestCompare.compareByteShort(byte, short) builder (after)
164*795d594fSAndroid Build Coastguard Worker   /// CHECK-DAG:     <<Result:i\d+>> Compare
165*795d594fSAndroid Build Coastguard Worker   /// CHECK-DAG:                     Return [<<Result>>]
166*795d594fSAndroid Build Coastguard Worker 
167*795d594fSAndroid Build Coastguard Worker   /// CHECK-START: int TestCompare.compareByteShort(byte, short) builder (after)
168*795d594fSAndroid Build Coastguard Worker   /// CHECK-NOT:                     InvokeStaticOrDirect
169*795d594fSAndroid Build Coastguard Worker 
compareByteShort(byte x, short y)170*795d594fSAndroid Build Coastguard Worker   public static int compareByteShort(byte x, short y) {
171*795d594fSAndroid Build Coastguard Worker     return Integer.compare(x, y);
172*795d594fSAndroid Build Coastguard Worker   }
173*795d594fSAndroid Build Coastguard Worker 
174*795d594fSAndroid Build Coastguard Worker   /// CHECK-START: int TestCompare.compareByteChar(byte, char) builder (after)
175*795d594fSAndroid Build Coastguard Worker   /// CHECK-DAG:     <<Result:i\d+>> Compare
176*795d594fSAndroid Build Coastguard Worker   /// CHECK-DAG:                     Return [<<Result>>]
177*795d594fSAndroid Build Coastguard Worker 
178*795d594fSAndroid Build Coastguard Worker   /// CHECK-START: int TestCompare.compareByteChar(byte, char) builder (after)
179*795d594fSAndroid Build Coastguard Worker   /// CHECK-NOT:                     InvokeStaticOrDirect
180*795d594fSAndroid Build Coastguard Worker 
compareByteChar(byte x, char y)181*795d594fSAndroid Build Coastguard Worker   public static int compareByteChar(byte x, char y) {
182*795d594fSAndroid Build Coastguard Worker     return Integer.compare(x, y);
183*795d594fSAndroid Build Coastguard Worker   }
184*795d594fSAndroid Build Coastguard Worker 
185*795d594fSAndroid Build Coastguard Worker   /// CHECK-START: int TestCompare.compareByteInt(byte, int) builder (after)
186*795d594fSAndroid Build Coastguard Worker   /// CHECK-DAG:     <<Result:i\d+>> Compare
187*795d594fSAndroid Build Coastguard Worker   /// CHECK-DAG:                     Return [<<Result>>]
188*795d594fSAndroid Build Coastguard Worker 
189*795d594fSAndroid Build Coastguard Worker   /// CHECK-START: int TestCompare.compareByteInt(byte, int) builder (after)
190*795d594fSAndroid Build Coastguard Worker   /// CHECK-NOT:                     InvokeStaticOrDirect
191*795d594fSAndroid Build Coastguard Worker 
compareByteInt(byte x, int y)192*795d594fSAndroid Build Coastguard Worker   public static int compareByteInt(byte x, int y) {
193*795d594fSAndroid Build Coastguard Worker     return Integer.compare(x, y);
194*795d594fSAndroid Build Coastguard Worker   }
195*795d594fSAndroid Build Coastguard Worker 
196*795d594fSAndroid Build Coastguard Worker 
197*795d594fSAndroid Build Coastguard Worker   /// CHECK-START: int TestCompare.compareShortByte(short, byte) builder (after)
198*795d594fSAndroid Build Coastguard Worker   /// CHECK-DAG:     <<Result:i\d+>> Compare
199*795d594fSAndroid Build Coastguard Worker   /// CHECK-DAG:                     Return [<<Result>>]
200*795d594fSAndroid Build Coastguard Worker 
201*795d594fSAndroid Build Coastguard Worker   /// CHECK-START: int TestCompare.compareShortByte(short, byte) builder (after)
202*795d594fSAndroid Build Coastguard Worker   /// CHECK-NOT:                     InvokeStaticOrDirect
203*795d594fSAndroid Build Coastguard Worker 
compareShortByte(short x, byte y)204*795d594fSAndroid Build Coastguard Worker   public static int compareShortByte(short x, byte y) {
205*795d594fSAndroid Build Coastguard Worker     return Integer.compare(x, y);
206*795d594fSAndroid Build Coastguard Worker   }
207*795d594fSAndroid Build Coastguard Worker 
208*795d594fSAndroid Build Coastguard Worker   /// CHECK-START: int TestCompare.compareShortChar(short, char) builder (after)
209*795d594fSAndroid Build Coastguard Worker   /// CHECK-DAG:     <<Result:i\d+>> Compare
210*795d594fSAndroid Build Coastguard Worker   /// CHECK-DAG:                     Return [<<Result>>]
211*795d594fSAndroid Build Coastguard Worker 
212*795d594fSAndroid Build Coastguard Worker   /// CHECK-START: int TestCompare.compareShortChar(short, char) builder (after)
213*795d594fSAndroid Build Coastguard Worker   /// CHECK-NOT:                     InvokeStaticOrDirect
214*795d594fSAndroid Build Coastguard Worker 
compareShortChar(short x, char y)215*795d594fSAndroid Build Coastguard Worker   public static int compareShortChar(short x, char y) {
216*795d594fSAndroid Build Coastguard Worker     return Integer.compare(x, y);
217*795d594fSAndroid Build Coastguard Worker   }
218*795d594fSAndroid Build Coastguard Worker 
219*795d594fSAndroid Build Coastguard Worker   /// CHECK-START: int TestCompare.compareShortInt(short, int) builder (after)
220*795d594fSAndroid Build Coastguard Worker   /// CHECK-DAG:     <<Result:i\d+>> Compare
221*795d594fSAndroid Build Coastguard Worker   /// CHECK-DAG:                     Return [<<Result>>]
222*795d594fSAndroid Build Coastguard Worker 
223*795d594fSAndroid Build Coastguard Worker   /// CHECK-START: int TestCompare.compareShortInt(short, int) builder (after)
224*795d594fSAndroid Build Coastguard Worker   /// CHECK-NOT:                     InvokeStaticOrDirect
225*795d594fSAndroid Build Coastguard Worker 
compareShortInt(short x, int y)226*795d594fSAndroid Build Coastguard Worker   public static int compareShortInt(short x, int y) {
227*795d594fSAndroid Build Coastguard Worker     return Integer.compare(x, y);
228*795d594fSAndroid Build Coastguard Worker   }
229*795d594fSAndroid Build Coastguard Worker 
230*795d594fSAndroid Build Coastguard Worker 
231*795d594fSAndroid Build Coastguard Worker   /// CHECK-START: int TestCompare.compareCharByte(char, byte) builder (after)
232*795d594fSAndroid Build Coastguard Worker   /// CHECK-DAG:     <<Result:i\d+>> Compare
233*795d594fSAndroid Build Coastguard Worker   /// CHECK-DAG:                     Return [<<Result>>]
234*795d594fSAndroid Build Coastguard Worker 
235*795d594fSAndroid Build Coastguard Worker   /// CHECK-START: int TestCompare.compareCharByte(char, byte) builder (after)
236*795d594fSAndroid Build Coastguard Worker   /// CHECK-NOT:                     InvokeStaticOrDirect
237*795d594fSAndroid Build Coastguard Worker 
compareCharByte(char x, byte y)238*795d594fSAndroid Build Coastguard Worker   public static int compareCharByte(char x, byte y) {
239*795d594fSAndroid Build Coastguard Worker     return Integer.compare(x, y);
240*795d594fSAndroid Build Coastguard Worker   }
241*795d594fSAndroid Build Coastguard Worker 
242*795d594fSAndroid Build Coastguard Worker   /// CHECK-START: int TestCompare.compareCharShort(char, short) builder (after)
243*795d594fSAndroid Build Coastguard Worker   /// CHECK-DAG:     <<Result:i\d+>> Compare
244*795d594fSAndroid Build Coastguard Worker   /// CHECK-DAG:                     Return [<<Result>>]
245*795d594fSAndroid Build Coastguard Worker 
246*795d594fSAndroid Build Coastguard Worker   /// CHECK-START: int TestCompare.compareCharShort(char, short) builder (after)
247*795d594fSAndroid Build Coastguard Worker   /// CHECK-NOT:                     InvokeStaticOrDirect
248*795d594fSAndroid Build Coastguard Worker 
compareCharShort(char x, short y)249*795d594fSAndroid Build Coastguard Worker   public static int compareCharShort(char x, short y) {
250*795d594fSAndroid Build Coastguard Worker     return Integer.compare(x, y);
251*795d594fSAndroid Build Coastguard Worker   }
252*795d594fSAndroid Build Coastguard Worker 
253*795d594fSAndroid Build Coastguard Worker   /// CHECK-START: int TestCompare.compareCharInt(char, int) builder (after)
254*795d594fSAndroid Build Coastguard Worker   /// CHECK-DAG:     <<Result:i\d+>> Compare
255*795d594fSAndroid Build Coastguard Worker   /// CHECK-DAG:                     Return [<<Result>>]
256*795d594fSAndroid Build Coastguard Worker 
257*795d594fSAndroid Build Coastguard Worker   /// CHECK-START: int TestCompare.compareCharInt(char, int) builder (after)
258*795d594fSAndroid Build Coastguard Worker   /// CHECK-NOT:                     InvokeStaticOrDirect
259*795d594fSAndroid Build Coastguard Worker 
compareCharInt(char x, int y)260*795d594fSAndroid Build Coastguard Worker   public static int compareCharInt(char x, int y) {
261*795d594fSAndroid Build Coastguard Worker     return Integer.compare(x, y);
262*795d594fSAndroid Build Coastguard Worker   }
263*795d594fSAndroid Build Coastguard Worker 
264*795d594fSAndroid Build Coastguard Worker 
265*795d594fSAndroid Build Coastguard Worker   /// CHECK-START: int TestCompare.compareIntByte(int, byte) builder (after)
266*795d594fSAndroid Build Coastguard Worker   /// CHECK-DAG:     <<Result:i\d+>> Compare
267*795d594fSAndroid Build Coastguard Worker   /// CHECK-DAG:                     Return [<<Result>>]
268*795d594fSAndroid Build Coastguard Worker 
269*795d594fSAndroid Build Coastguard Worker   /// CHECK-START: int TestCompare.compareIntByte(int, byte) builder (after)
270*795d594fSAndroid Build Coastguard Worker   /// CHECK-NOT:                     InvokeStaticOrDirect
271*795d594fSAndroid Build Coastguard Worker 
compareIntByte(int x, byte y)272*795d594fSAndroid Build Coastguard Worker   public static int compareIntByte(int x, byte y) {
273*795d594fSAndroid Build Coastguard Worker     return Integer.compare(x, y);
274*795d594fSAndroid Build Coastguard Worker   }
275*795d594fSAndroid Build Coastguard Worker 
276*795d594fSAndroid Build Coastguard Worker   /// CHECK-START: int TestCompare.compareIntShort(int, short) builder (after)
277*795d594fSAndroid Build Coastguard Worker   /// CHECK-DAG:     <<Result:i\d+>> Compare
278*795d594fSAndroid Build Coastguard Worker   /// CHECK-DAG:                     Return [<<Result>>]
279*795d594fSAndroid Build Coastguard Worker 
280*795d594fSAndroid Build Coastguard Worker   /// CHECK-START: int TestCompare.compareIntShort(int, short) builder (after)
281*795d594fSAndroid Build Coastguard Worker   /// CHECK-NOT:                     InvokeStaticOrDirect
282*795d594fSAndroid Build Coastguard Worker 
compareIntShort(int x, short y)283*795d594fSAndroid Build Coastguard Worker   public static int compareIntShort(int x, short y) {
284*795d594fSAndroid Build Coastguard Worker     return Integer.compare(x, y);
285*795d594fSAndroid Build Coastguard Worker   }
286*795d594fSAndroid Build Coastguard Worker 
287*795d594fSAndroid Build Coastguard Worker   /// CHECK-START: int TestCompare.compareIntChar(int, char) builder (after)
288*795d594fSAndroid Build Coastguard Worker   /// CHECK-DAG:     <<Result:i\d+>> Compare
289*795d594fSAndroid Build Coastguard Worker   /// CHECK-DAG:                     Return [<<Result>>]
290*795d594fSAndroid Build Coastguard Worker 
291*795d594fSAndroid Build Coastguard Worker   /// CHECK-START: int TestCompare.compareIntChar(int, char) builder (after)
292*795d594fSAndroid Build Coastguard Worker   /// CHECK-NOT:                     InvokeStaticOrDirect
293*795d594fSAndroid Build Coastguard Worker 
compareIntChar(int x, char y)294*795d594fSAndroid Build Coastguard Worker   public static int compareIntChar(int x, char y) {
295*795d594fSAndroid Build Coastguard Worker     return Integer.compare(x, y);
296*795d594fSAndroid Build Coastguard Worker   }
297*795d594fSAndroid Build Coastguard Worker 
298*795d594fSAndroid Build Coastguard Worker 
testCompareBooleans()299*795d594fSAndroid Build Coastguard Worker   public static void testCompareBooleans() {
300*795d594fSAndroid Build Coastguard Worker     expectEquals(-1, compareBooleans(false, true));
301*795d594fSAndroid Build Coastguard Worker     expectEquals(-1, compareBooleans2(false, true));
302*795d594fSAndroid Build Coastguard Worker 
303*795d594fSAndroid Build Coastguard Worker     expectEquals(0, compareBooleans(false, false));
304*795d594fSAndroid Build Coastguard Worker     expectEquals(0, compareBooleans(true, true));
305*795d594fSAndroid Build Coastguard Worker     expectEquals(0, compareBooleans2(false, false));
306*795d594fSAndroid Build Coastguard Worker     expectEquals(0, compareBooleans2(true, true));
307*795d594fSAndroid Build Coastguard Worker 
308*795d594fSAndroid Build Coastguard Worker     expectEquals(1, compareBooleans(true, false));
309*795d594fSAndroid Build Coastguard Worker     expectEquals(1, compareBooleans2(true, false));
310*795d594fSAndroid Build Coastguard Worker   }
311*795d594fSAndroid Build Coastguard Worker 
testCompareBytes()312*795d594fSAndroid Build Coastguard Worker   public static void testCompareBytes() {
313*795d594fSAndroid Build Coastguard Worker     expectEquals(-1, compareBytes(Byte.MIN_VALUE, (byte)(Byte.MIN_VALUE + 1)));
314*795d594fSAndroid Build Coastguard Worker     expectEquals(-1, compareBytes(Byte.MIN_VALUE, (byte)-1));
315*795d594fSAndroid Build Coastguard Worker     expectEquals(-1, compareBytes(Byte.MIN_VALUE, (byte)0));
316*795d594fSAndroid Build Coastguard Worker     expectEquals(-1, compareBytes(Byte.MIN_VALUE, (byte)1));
317*795d594fSAndroid Build Coastguard Worker     expectEquals(-1, compareBytes(Byte.MIN_VALUE, Byte.MAX_VALUE));
318*795d594fSAndroid Build Coastguard Worker     expectEquals(-1, compareBytes((byte)-1, (byte)0));
319*795d594fSAndroid Build Coastguard Worker     expectEquals(-1, compareBytes((byte)-1, (byte)1));
320*795d594fSAndroid Build Coastguard Worker     expectEquals(-1, compareBytes((byte)0, (byte)1));
321*795d594fSAndroid Build Coastguard Worker 
322*795d594fSAndroid Build Coastguard Worker     expectEquals(0, compareBytes(Byte.MIN_VALUE, Byte.MIN_VALUE));
323*795d594fSAndroid Build Coastguard Worker     expectEquals(0, compareBytes((byte)-1, (byte)-1));
324*795d594fSAndroid Build Coastguard Worker     expectEquals(0, compareBytes((byte)0, (byte)0));
325*795d594fSAndroid Build Coastguard Worker     expectEquals(0, compareBytes((byte)1, (byte)1));
326*795d594fSAndroid Build Coastguard Worker     expectEquals(0, compareBytes(Byte.MAX_VALUE, Byte.MAX_VALUE));
327*795d594fSAndroid Build Coastguard Worker 
328*795d594fSAndroid Build Coastguard Worker     expectEquals(1, compareBytes((byte)0, (byte)-1));
329*795d594fSAndroid Build Coastguard Worker     expectEquals(1, compareBytes((byte)1, (byte)-1));
330*795d594fSAndroid Build Coastguard Worker     expectEquals(1, compareBytes((byte)1, (byte)0));
331*795d594fSAndroid Build Coastguard Worker     expectEquals(1, compareBytes(Byte.MAX_VALUE, Byte.MIN_VALUE));
332*795d594fSAndroid Build Coastguard Worker     expectEquals(1, compareBytes(Byte.MAX_VALUE, (byte)-1));
333*795d594fSAndroid Build Coastguard Worker     expectEquals(1, compareBytes(Byte.MAX_VALUE, (byte)0));
334*795d594fSAndroid Build Coastguard Worker     expectEquals(1, compareBytes(Byte.MAX_VALUE, (byte)1));
335*795d594fSAndroid Build Coastguard Worker     expectEquals(1, compareBytes(Byte.MAX_VALUE, (byte)(Byte.MAX_VALUE - 1)));
336*795d594fSAndroid Build Coastguard Worker 
337*795d594fSAndroid Build Coastguard Worker     for (byte i = -11; i <= 11; i++) {
338*795d594fSAndroid Build Coastguard Worker       for (byte j = -11; j <= 11; j++) {
339*795d594fSAndroid Build Coastguard Worker         int expected = 0;
340*795d594fSAndroid Build Coastguard Worker         if (i < j) expected = -1;
341*795d594fSAndroid Build Coastguard Worker         else if (i > j) expected = 1;
342*795d594fSAndroid Build Coastguard Worker         expectEquals(expected, compareBytes(i, j));
343*795d594fSAndroid Build Coastguard Worker       }
344*795d594fSAndroid Build Coastguard Worker     }
345*795d594fSAndroid Build Coastguard Worker   }
346*795d594fSAndroid Build Coastguard Worker 
testCompareShorts()347*795d594fSAndroid Build Coastguard Worker   public static void testCompareShorts() {
348*795d594fSAndroid Build Coastguard Worker     expectEquals(-1, compareShorts(Short.MIN_VALUE, (short)(Short.MIN_VALUE + 1)));
349*795d594fSAndroid Build Coastguard Worker     expectEquals(-1, compareShorts(Short.MIN_VALUE, (short)-1));
350*795d594fSAndroid Build Coastguard Worker     expectEquals(-1, compareShorts(Short.MIN_VALUE, (short)0));
351*795d594fSAndroid Build Coastguard Worker     expectEquals(-1, compareShorts(Short.MIN_VALUE, (short)1));
352*795d594fSAndroid Build Coastguard Worker     expectEquals(-1, compareShorts(Short.MIN_VALUE, (short)Short.MAX_VALUE));
353*795d594fSAndroid Build Coastguard Worker     expectEquals(-1, compareShorts((short)-1, (short)0));
354*795d594fSAndroid Build Coastguard Worker     expectEquals(-1, compareShorts((short)-1, (short)1));
355*795d594fSAndroid Build Coastguard Worker     expectEquals(-1, compareShorts((short)0, (short)1));
356*795d594fSAndroid Build Coastguard Worker 
357*795d594fSAndroid Build Coastguard Worker     expectEquals(0, compareShorts(Short.MIN_VALUE, Short.MIN_VALUE));
358*795d594fSAndroid Build Coastguard Worker     expectEquals(0, compareShorts((short)-1, (short)-1));
359*795d594fSAndroid Build Coastguard Worker     expectEquals(0, compareShorts((short)0, (short)0));
360*795d594fSAndroid Build Coastguard Worker     expectEquals(0, compareShorts((short)1, (short)1));
361*795d594fSAndroid Build Coastguard Worker     expectEquals(0, compareShorts(Short.MAX_VALUE, Short.MAX_VALUE));
362*795d594fSAndroid Build Coastguard Worker 
363*795d594fSAndroid Build Coastguard Worker     expectEquals(1, compareShorts((short)0, (short)-1));
364*795d594fSAndroid Build Coastguard Worker     expectEquals(1, compareShorts((short)1, (short)-1));
365*795d594fSAndroid Build Coastguard Worker     expectEquals(1, compareShorts((short)1, (short)0));
366*795d594fSAndroid Build Coastguard Worker     expectEquals(1, compareShorts(Short.MAX_VALUE, Short.MIN_VALUE));
367*795d594fSAndroid Build Coastguard Worker     expectEquals(1, compareShorts(Short.MAX_VALUE, (short)-1));
368*795d594fSAndroid Build Coastguard Worker     expectEquals(1, compareShorts(Short.MAX_VALUE, (short)0));
369*795d594fSAndroid Build Coastguard Worker     expectEquals(1, compareShorts(Short.MAX_VALUE, (short)1));
370*795d594fSAndroid Build Coastguard Worker     expectEquals(1, compareShorts(Short.MAX_VALUE, (short)(Short.MAX_VALUE - 1)));
371*795d594fSAndroid Build Coastguard Worker 
372*795d594fSAndroid Build Coastguard Worker     for (short i = -11; i <= 11; i++) {
373*795d594fSAndroid Build Coastguard Worker       for (short j = -11; j <= 11; j++) {
374*795d594fSAndroid Build Coastguard Worker         int expected = 0;
375*795d594fSAndroid Build Coastguard Worker         if (i < j) expected = -1;
376*795d594fSAndroid Build Coastguard Worker         else if (i > j) expected = 1;
377*795d594fSAndroid Build Coastguard Worker         expectEquals(expected, compareShorts(i, j));
378*795d594fSAndroid Build Coastguard Worker       }
379*795d594fSAndroid Build Coastguard Worker     }
380*795d594fSAndroid Build Coastguard Worker   }
381*795d594fSAndroid Build Coastguard Worker 
testCompareChars()382*795d594fSAndroid Build Coastguard Worker   public static void testCompareChars() {
383*795d594fSAndroid Build Coastguard Worker     expectEquals(-1, compareChars((char)0, Character.MAX_VALUE));
384*795d594fSAndroid Build Coastguard Worker     expectEquals(-1, compareChars((char)0, (char)1));
385*795d594fSAndroid Build Coastguard Worker 
386*795d594fSAndroid Build Coastguard Worker     expectEquals(0, compareChars((char)0, (char)0));
387*795d594fSAndroid Build Coastguard Worker     expectEquals(0, compareChars((char)1, (char)1));
388*795d594fSAndroid Build Coastguard Worker     expectEquals(0, compareChars(Character.MAX_VALUE, Character.MAX_VALUE));
389*795d594fSAndroid Build Coastguard Worker 
390*795d594fSAndroid Build Coastguard Worker     expectEquals(1, compareChars((char)1, (char)0));
391*795d594fSAndroid Build Coastguard Worker     expectEquals(1, compareChars(Character.MAX_VALUE, (char)0));
392*795d594fSAndroid Build Coastguard Worker     expectEquals(1, compareChars(Character.MAX_VALUE, (char)1));
393*795d594fSAndroid Build Coastguard Worker     expectEquals(1, compareChars(Character.MAX_VALUE, (char)(Character.MAX_VALUE - 1)));
394*795d594fSAndroid Build Coastguard Worker 
395*795d594fSAndroid Build Coastguard Worker     for (char i = 0; i <= 11; i++) {
396*795d594fSAndroid Build Coastguard Worker       for (char j = 0; j <= 11; j++) {
397*795d594fSAndroid Build Coastguard Worker         int expected = 0;
398*795d594fSAndroid Build Coastguard Worker         if (i < j) expected = -1;
399*795d594fSAndroid Build Coastguard Worker         else if (i > j) expected = 1;
400*795d594fSAndroid Build Coastguard Worker         expectEquals(expected, compareChars(i, j));
401*795d594fSAndroid Build Coastguard Worker       }
402*795d594fSAndroid Build Coastguard Worker     }
403*795d594fSAndroid Build Coastguard Worker   }
404*795d594fSAndroid Build Coastguard Worker 
testCompareInts()405*795d594fSAndroid Build Coastguard Worker   public static void testCompareInts() {
406*795d594fSAndroid Build Coastguard Worker     expectEquals(-1, compareInts(Integer.MIN_VALUE, Integer.MIN_VALUE + 1));
407*795d594fSAndroid Build Coastguard Worker     expectEquals(-1, compareInts(Integer.MIN_VALUE, -1));
408*795d594fSAndroid Build Coastguard Worker     expectEquals(-1, compareInts(Integer.MIN_VALUE, 0));
409*795d594fSAndroid Build Coastguard Worker     expectEquals(-1, compareInts(Integer.MIN_VALUE, 1));
410*795d594fSAndroid Build Coastguard Worker     expectEquals(-1, compareInts(Integer.MIN_VALUE, Integer.MAX_VALUE));
411*795d594fSAndroid Build Coastguard Worker     expectEquals(-1, compareInts(-1, 0));
412*795d594fSAndroid Build Coastguard Worker     expectEquals(-1, compareInts(-1, 1));
413*795d594fSAndroid Build Coastguard Worker     expectEquals(-1, compareInts(0, 1));
414*795d594fSAndroid Build Coastguard Worker 
415*795d594fSAndroid Build Coastguard Worker     expectEquals(0, compareInts(Integer.MIN_VALUE, Integer.MIN_VALUE));
416*795d594fSAndroid Build Coastguard Worker     expectEquals(0, compareInts(-1, -1));
417*795d594fSAndroid Build Coastguard Worker     expectEquals(0, compareInts(0, 0));
418*795d594fSAndroid Build Coastguard Worker     expectEquals(0, compareInts(1, 1));
419*795d594fSAndroid Build Coastguard Worker     expectEquals(0, compareInts(Integer.MAX_VALUE, Integer.MAX_VALUE));
420*795d594fSAndroid Build Coastguard Worker 
421*795d594fSAndroid Build Coastguard Worker     expectEquals(1, compareInts(0, -1));
422*795d594fSAndroid Build Coastguard Worker     expectEquals(1, compareInts(1, -1));
423*795d594fSAndroid Build Coastguard Worker     expectEquals(1, compareInts(1, 0));
424*795d594fSAndroid Build Coastguard Worker     expectEquals(1, compareInts(Integer.MAX_VALUE, Integer.MIN_VALUE));
425*795d594fSAndroid Build Coastguard Worker     expectEquals(1, compareInts(Integer.MAX_VALUE, -1));
426*795d594fSAndroid Build Coastguard Worker     expectEquals(1, compareInts(Integer.MAX_VALUE, 0));
427*795d594fSAndroid Build Coastguard Worker     expectEquals(1, compareInts(Integer.MAX_VALUE, 1));
428*795d594fSAndroid Build Coastguard Worker     expectEquals(1, compareInts(Integer.MAX_VALUE, Integer.MAX_VALUE - 1));
429*795d594fSAndroid Build Coastguard Worker 
430*795d594fSAndroid Build Coastguard Worker     for (int i = -11; i <= 11; i++) {
431*795d594fSAndroid Build Coastguard Worker       for (int j = -11; j <= 11; j++) {
432*795d594fSAndroid Build Coastguard Worker         int expected = 0;
433*795d594fSAndroid Build Coastguard Worker         if (i < j) expected = -1;
434*795d594fSAndroid Build Coastguard Worker         else if (i > j) expected = 1;
435*795d594fSAndroid Build Coastguard Worker         expectEquals(expected, compareInts(i, j));
436*795d594fSAndroid Build Coastguard Worker       }
437*795d594fSAndroid Build Coastguard Worker     }
438*795d594fSAndroid Build Coastguard Worker   }
439*795d594fSAndroid Build Coastguard Worker 
testCompareLongs()440*795d594fSAndroid Build Coastguard Worker   public static void testCompareLongs() {
441*795d594fSAndroid Build Coastguard Worker     expectEquals(-1, compareLongs(Long.MIN_VALUE, Long.MIN_VALUE + 1L));
442*795d594fSAndroid Build Coastguard Worker     expectEquals(-1, compareLongs(Long.MIN_VALUE, -1L));
443*795d594fSAndroid Build Coastguard Worker     expectEquals(-1, compareLongs(Long.MIN_VALUE, 0L));
444*795d594fSAndroid Build Coastguard Worker     expectEquals(-1, compareLongs(Long.MIN_VALUE, 1L));
445*795d594fSAndroid Build Coastguard Worker     expectEquals(-1, compareLongs(Long.MIN_VALUE, Long.MAX_VALUE));
446*795d594fSAndroid Build Coastguard Worker     expectEquals(-1, compareLongs(-1L, 0L));
447*795d594fSAndroid Build Coastguard Worker     expectEquals(-1, compareLongs(-1L, 1L));
448*795d594fSAndroid Build Coastguard Worker     expectEquals(-1, compareLongs(0L, 1L));
449*795d594fSAndroid Build Coastguard Worker 
450*795d594fSAndroid Build Coastguard Worker     expectEquals(0, compareLongs(Long.MIN_VALUE, Long.MIN_VALUE));
451*795d594fSAndroid Build Coastguard Worker     expectEquals(0, compareLongs(-1L, -1L));
452*795d594fSAndroid Build Coastguard Worker     expectEquals(0, compareLongs(0L, 0L));
453*795d594fSAndroid Build Coastguard Worker     expectEquals(0, compareLongs(1L, 1L));
454*795d594fSAndroid Build Coastguard Worker     expectEquals(0, compareLongs(Long.MAX_VALUE, Long.MAX_VALUE));
455*795d594fSAndroid Build Coastguard Worker 
456*795d594fSAndroid Build Coastguard Worker     expectEquals(1, compareLongs(0L, -1L));
457*795d594fSAndroid Build Coastguard Worker     expectEquals(1, compareLongs(1L, -1L));
458*795d594fSAndroid Build Coastguard Worker     expectEquals(1, compareLongs(1L, 0L));
459*795d594fSAndroid Build Coastguard Worker     expectEquals(1, compareLongs(Long.MAX_VALUE, Long.MIN_VALUE));
460*795d594fSAndroid Build Coastguard Worker     expectEquals(1, compareLongs(Long.MAX_VALUE, -1L));
461*795d594fSAndroid Build Coastguard Worker     expectEquals(1, compareLongs(Long.MAX_VALUE, 0L));
462*795d594fSAndroid Build Coastguard Worker     expectEquals(1, compareLongs(Long.MAX_VALUE, 1L));
463*795d594fSAndroid Build Coastguard Worker     expectEquals(1, compareLongs(Long.MAX_VALUE, Long.MAX_VALUE - 1L));
464*795d594fSAndroid Build Coastguard Worker 
465*795d594fSAndroid Build Coastguard Worker     expectEquals(-1, compareLongs(0x111111117FFFFFFFL, 0x11111111FFFFFFFFL));
466*795d594fSAndroid Build Coastguard Worker     expectEquals(0, compareLongs(0x111111117FFFFFFFL, 0x111111117FFFFFFFL));
467*795d594fSAndroid Build Coastguard Worker     expectEquals(1, compareLongs(0x11111111FFFFFFFFL, 0x111111117FFFFFFFL));
468*795d594fSAndroid Build Coastguard Worker 
469*795d594fSAndroid Build Coastguard Worker     for (long i = -11L; i <= 11L; i++) {
470*795d594fSAndroid Build Coastguard Worker       for (long j = -11L; j <= 11L; j++) {
471*795d594fSAndroid Build Coastguard Worker         int expected = 0;
472*795d594fSAndroid Build Coastguard Worker         if (i < j) expected = -1;
473*795d594fSAndroid Build Coastguard Worker         else if (i > j) expected = 1;
474*795d594fSAndroid Build Coastguard Worker         expectEquals(expected, compareLongs(i, j));
475*795d594fSAndroid Build Coastguard Worker       }
476*795d594fSAndroid Build Coastguard Worker     }
477*795d594fSAndroid Build Coastguard Worker 
478*795d594fSAndroid Build Coastguard Worker     for (long i = Long.MIN_VALUE; i <= Long.MIN_VALUE + 11L; i++) {
479*795d594fSAndroid Build Coastguard Worker       expectEquals(-1, compareLongs(i, 0));
480*795d594fSAndroid Build Coastguard Worker     }
481*795d594fSAndroid Build Coastguard Worker 
482*795d594fSAndroid Build Coastguard Worker     for (long i = Long.MAX_VALUE; i >= Long.MAX_VALUE - 11L; i--) {
483*795d594fSAndroid Build Coastguard Worker       expectEquals(1, compareLongs(i, 0));
484*795d594fSAndroid Build Coastguard Worker     }
485*795d594fSAndroid Build Coastguard Worker   }
486*795d594fSAndroid Build Coastguard Worker 
487*795d594fSAndroid Build Coastguard Worker 
testCompareByteShort()488*795d594fSAndroid Build Coastguard Worker   public static void testCompareByteShort() {
489*795d594fSAndroid Build Coastguard Worker     expectEquals(-1, compareByteShort(Byte.MIN_VALUE, (short)-1));
490*795d594fSAndroid Build Coastguard Worker     expectEquals(-1, compareByteShort(Byte.MIN_VALUE, (short)0));
491*795d594fSAndroid Build Coastguard Worker     expectEquals(-1, compareByteShort(Byte.MIN_VALUE, (short)1));
492*795d594fSAndroid Build Coastguard Worker     expectEquals(-1, compareByteShort(Byte.MIN_VALUE, Short.MAX_VALUE));
493*795d594fSAndroid Build Coastguard Worker     expectEquals(-1, compareByteShort((byte)-1, (short)0));
494*795d594fSAndroid Build Coastguard Worker     expectEquals(-1, compareByteShort((byte)-1, (short)1));
495*795d594fSAndroid Build Coastguard Worker     expectEquals(-1, compareByteShort((byte)0, (short)1));
496*795d594fSAndroid Build Coastguard Worker     expectEquals(-1, compareByteShort(Byte.MAX_VALUE, (short)(Short.MAX_VALUE - 1)));
497*795d594fSAndroid Build Coastguard Worker     expectEquals(-1, compareByteShort(Byte.MAX_VALUE, Short.MAX_VALUE));
498*795d594fSAndroid Build Coastguard Worker 
499*795d594fSAndroid Build Coastguard Worker     expectEquals(0, compareByteShort((byte)-1, (short)-1));
500*795d594fSAndroid Build Coastguard Worker     expectEquals(0, compareByteShort((byte)0, (short)0));
501*795d594fSAndroid Build Coastguard Worker     expectEquals(0, compareByteShort((byte)1, (short)1));
502*795d594fSAndroid Build Coastguard Worker 
503*795d594fSAndroid Build Coastguard Worker     expectEquals(1, compareByteShort(Byte.MIN_VALUE, Short.MIN_VALUE));
504*795d594fSAndroid Build Coastguard Worker     expectEquals(1, compareByteShort(Byte.MIN_VALUE, (short)(Short.MIN_VALUE + 1)));
505*795d594fSAndroid Build Coastguard Worker     expectEquals(1, compareByteShort((byte)0, (short)-1));
506*795d594fSAndroid Build Coastguard Worker     expectEquals(1, compareByteShort((byte)1, (short)-1));
507*795d594fSAndroid Build Coastguard Worker     expectEquals(1, compareByteShort((byte)1, (short)0));
508*795d594fSAndroid Build Coastguard Worker     expectEquals(1, compareByteShort(Byte.MAX_VALUE, Short.MIN_VALUE));
509*795d594fSAndroid Build Coastguard Worker     expectEquals(1, compareByteShort(Byte.MAX_VALUE, (short)-1));
510*795d594fSAndroid Build Coastguard Worker     expectEquals(1, compareByteShort(Byte.MAX_VALUE, (short)0));
511*795d594fSAndroid Build Coastguard Worker     expectEquals(1, compareByteShort(Byte.MAX_VALUE, (short)1));
512*795d594fSAndroid Build Coastguard Worker 
513*795d594fSAndroid Build Coastguard Worker     for (byte i = -11; i <= 11; i++) {
514*795d594fSAndroid Build Coastguard Worker       for (short j = -11; j <= 11; j++) {
515*795d594fSAndroid Build Coastguard Worker         int expected = 0;
516*795d594fSAndroid Build Coastguard Worker         if (i < j) expected = -1;
517*795d594fSAndroid Build Coastguard Worker         else if (i > j) expected = 1;
518*795d594fSAndroid Build Coastguard Worker         expectEquals(expected, compareByteShort(i, j));
519*795d594fSAndroid Build Coastguard Worker       }
520*795d594fSAndroid Build Coastguard Worker     }
521*795d594fSAndroid Build Coastguard Worker   }
522*795d594fSAndroid Build Coastguard Worker 
testCompareByteChar()523*795d594fSAndroid Build Coastguard Worker   public static void testCompareByteChar() {
524*795d594fSAndroid Build Coastguard Worker     expectEquals(-1, compareByteChar(Byte.MIN_VALUE, (char)0));
525*795d594fSAndroid Build Coastguard Worker     expectEquals(-1, compareByteChar(Byte.MIN_VALUE, (char)1));
526*795d594fSAndroid Build Coastguard Worker     expectEquals(-1, compareByteChar(Byte.MIN_VALUE, Character.MAX_VALUE));
527*795d594fSAndroid Build Coastguard Worker     expectEquals(-1, compareByteChar((byte)-1, (char)0));
528*795d594fSAndroid Build Coastguard Worker     expectEquals(-1, compareByteChar((byte)-1, (char)1));
529*795d594fSAndroid Build Coastguard Worker     expectEquals(-1, compareByteChar((byte)0, (char)1));
530*795d594fSAndroid Build Coastguard Worker     expectEquals(-1, compareByteChar(Byte.MAX_VALUE, (char)(Character.MAX_VALUE - 1)));
531*795d594fSAndroid Build Coastguard Worker     expectEquals(-1, compareByteChar(Byte.MAX_VALUE, Character.MAX_VALUE));
532*795d594fSAndroid Build Coastguard Worker 
533*795d594fSAndroid Build Coastguard Worker     expectEquals(0, compareByteChar((byte)0, (char)0));
534*795d594fSAndroid Build Coastguard Worker     expectEquals(0, compareByteChar((byte)1, (char)1));
535*795d594fSAndroid Build Coastguard Worker 
536*795d594fSAndroid Build Coastguard Worker     expectEquals(1, compareByteChar((byte)1, (char)0));
537*795d594fSAndroid Build Coastguard Worker     expectEquals(1, compareByteChar(Byte.MAX_VALUE, (char)0));
538*795d594fSAndroid Build Coastguard Worker     expectEquals(1, compareByteChar(Byte.MAX_VALUE, (char)1));
539*795d594fSAndroid Build Coastguard Worker 
540*795d594fSAndroid Build Coastguard Worker     for (byte i = -11; i <= 11; i++) {
541*795d594fSAndroid Build Coastguard Worker       for (char j = 0; j <= 11; j++) {
542*795d594fSAndroid Build Coastguard Worker         int expected = 0;
543*795d594fSAndroid Build Coastguard Worker         if (i < j) expected = -1;
544*795d594fSAndroid Build Coastguard Worker         else if (i > j) expected = 1;
545*795d594fSAndroid Build Coastguard Worker         expectEquals(expected, compareByteChar(i, j));
546*795d594fSAndroid Build Coastguard Worker       }
547*795d594fSAndroid Build Coastguard Worker     }
548*795d594fSAndroid Build Coastguard Worker   }
549*795d594fSAndroid Build Coastguard Worker 
testCompareByteInt()550*795d594fSAndroid Build Coastguard Worker   public static void testCompareByteInt() {
551*795d594fSAndroid Build Coastguard Worker     expectEquals(-1, compareByteInt(Byte.MIN_VALUE, -1));
552*795d594fSAndroid Build Coastguard Worker     expectEquals(-1, compareByteInt(Byte.MIN_VALUE, 0));
553*795d594fSAndroid Build Coastguard Worker     expectEquals(-1, compareByteInt(Byte.MIN_VALUE, 1));
554*795d594fSAndroid Build Coastguard Worker     expectEquals(-1, compareByteInt(Byte.MIN_VALUE, Integer.MAX_VALUE));
555*795d594fSAndroid Build Coastguard Worker     expectEquals(-1, compareByteInt((byte)-1, 0));
556*795d594fSAndroid Build Coastguard Worker     expectEquals(-1, compareByteInt((byte)-1, 1));
557*795d594fSAndroid Build Coastguard Worker     expectEquals(-1, compareByteInt((byte)0, 1));
558*795d594fSAndroid Build Coastguard Worker     expectEquals(-1, compareByteInt(Byte.MAX_VALUE, Integer.MAX_VALUE - 1));
559*795d594fSAndroid Build Coastguard Worker     expectEquals(-1, compareByteInt(Byte.MAX_VALUE, Integer.MAX_VALUE));
560*795d594fSAndroid Build Coastguard Worker 
561*795d594fSAndroid Build Coastguard Worker     expectEquals(0, compareByteInt((byte)-1, -1));
562*795d594fSAndroid Build Coastguard Worker     expectEquals(0, compareByteInt((byte)0, 0));
563*795d594fSAndroid Build Coastguard Worker     expectEquals(0, compareByteInt((byte)1, 1));
564*795d594fSAndroid Build Coastguard Worker 
565*795d594fSAndroid Build Coastguard Worker     expectEquals(1, compareByteInt(Byte.MIN_VALUE, Integer.MIN_VALUE));
566*795d594fSAndroid Build Coastguard Worker     expectEquals(1, compareByteInt(Byte.MIN_VALUE, Integer.MIN_VALUE + 1));
567*795d594fSAndroid Build Coastguard Worker     expectEquals(1, compareByteInt((byte)0, -1));
568*795d594fSAndroid Build Coastguard Worker     expectEquals(1, compareByteInt((byte)1, -1));
569*795d594fSAndroid Build Coastguard Worker     expectEquals(1, compareByteInt((byte)1, 0));
570*795d594fSAndroid Build Coastguard Worker     expectEquals(1, compareByteInt(Byte.MAX_VALUE, Integer.MIN_VALUE));
571*795d594fSAndroid Build Coastguard Worker     expectEquals(1, compareByteInt(Byte.MAX_VALUE, -1));
572*795d594fSAndroid Build Coastguard Worker     expectEquals(1, compareByteInt(Byte.MAX_VALUE, 0));
573*795d594fSAndroid Build Coastguard Worker     expectEquals(1, compareByteInt(Byte.MAX_VALUE, 1));
574*795d594fSAndroid Build Coastguard Worker 
575*795d594fSAndroid Build Coastguard Worker     for (byte i = -11; i <= 11; i++) {
576*795d594fSAndroid Build Coastguard Worker       for (int j = -11; j <= 11; j++) {
577*795d594fSAndroid Build Coastguard Worker         int expected = 0;
578*795d594fSAndroid Build Coastguard Worker         if (i < j) expected = -1;
579*795d594fSAndroid Build Coastguard Worker         else if (i > j) expected = 1;
580*795d594fSAndroid Build Coastguard Worker         expectEquals(expected, compareByteInt(i, j));
581*795d594fSAndroid Build Coastguard Worker       }
582*795d594fSAndroid Build Coastguard Worker     }
583*795d594fSAndroid Build Coastguard Worker   }
584*795d594fSAndroid Build Coastguard Worker 
585*795d594fSAndroid Build Coastguard Worker 
testCompareShortByte()586*795d594fSAndroid Build Coastguard Worker   public static void testCompareShortByte() {
587*795d594fSAndroid Build Coastguard Worker     expectEquals(-1, compareShortByte(Short.MIN_VALUE, Byte.MIN_VALUE));
588*795d594fSAndroid Build Coastguard Worker     expectEquals(-1, compareShortByte(Short.MIN_VALUE, (byte)(Byte.MIN_VALUE + 1)));
589*795d594fSAndroid Build Coastguard Worker     expectEquals(-1, compareShortByte(Short.MIN_VALUE, (byte)-1));
590*795d594fSAndroid Build Coastguard Worker     expectEquals(-1, compareShortByte(Short.MIN_VALUE, (byte)0));
591*795d594fSAndroid Build Coastguard Worker     expectEquals(-1, compareShortByte(Short.MIN_VALUE, (byte)1));
592*795d594fSAndroid Build Coastguard Worker     expectEquals(-1, compareShortByte(Short.MIN_VALUE, Byte.MAX_VALUE));
593*795d594fSAndroid Build Coastguard Worker     expectEquals(-1, compareShortByte((short)-1, (byte)0));
594*795d594fSAndroid Build Coastguard Worker     expectEquals(-1, compareShortByte((short)-1, (byte)1));
595*795d594fSAndroid Build Coastguard Worker     expectEquals(-1, compareShortByte((short)0, (byte)1));
596*795d594fSAndroid Build Coastguard Worker 
597*795d594fSAndroid Build Coastguard Worker     expectEquals(0, compareShortByte((short)-1, (byte)-1));
598*795d594fSAndroid Build Coastguard Worker     expectEquals(0, compareShortByte((short)0, (byte)0));
599*795d594fSAndroid Build Coastguard Worker     expectEquals(0, compareShortByte((short)1, (byte)1));
600*795d594fSAndroid Build Coastguard Worker 
601*795d594fSAndroid Build Coastguard Worker     expectEquals(1, compareShortByte((short)0, (byte)-1));
602*795d594fSAndroid Build Coastguard Worker     expectEquals(1, compareShortByte((short)1, (byte)-1));
603*795d594fSAndroid Build Coastguard Worker     expectEquals(1, compareShortByte((short)1, (byte)0));
604*795d594fSAndroid Build Coastguard Worker     expectEquals(1, compareShortByte(Short.MAX_VALUE, Byte.MIN_VALUE));
605*795d594fSAndroid Build Coastguard Worker     expectEquals(1, compareShortByte(Short.MAX_VALUE, (byte)-1));
606*795d594fSAndroid Build Coastguard Worker     expectEquals(1, compareShortByte(Short.MAX_VALUE, (byte)0));
607*795d594fSAndroid Build Coastguard Worker     expectEquals(1, compareShortByte(Short.MAX_VALUE, (byte)1));
608*795d594fSAndroid Build Coastguard Worker     expectEquals(1, compareShortByte(Short.MAX_VALUE, (byte)(Byte.MAX_VALUE - 1)));
609*795d594fSAndroid Build Coastguard Worker     expectEquals(1, compareShortByte(Short.MAX_VALUE, Byte.MAX_VALUE));
610*795d594fSAndroid Build Coastguard Worker 
611*795d594fSAndroid Build Coastguard Worker     for (short i = -11; i <= 11; i++) {
612*795d594fSAndroid Build Coastguard Worker       for (byte j = -11; j <= 11; j++) {
613*795d594fSAndroid Build Coastguard Worker         int expected = 0;
614*795d594fSAndroid Build Coastguard Worker         if (i < j) expected = -1;
615*795d594fSAndroid Build Coastguard Worker         else if (i > j) expected = 1;
616*795d594fSAndroid Build Coastguard Worker         expectEquals(expected, compareShortByte(i, j));
617*795d594fSAndroid Build Coastguard Worker       }
618*795d594fSAndroid Build Coastguard Worker     }
619*795d594fSAndroid Build Coastguard Worker   }
620*795d594fSAndroid Build Coastguard Worker 
testCompareShortChar()621*795d594fSAndroid Build Coastguard Worker   public static void testCompareShortChar() {
622*795d594fSAndroid Build Coastguard Worker     expectEquals(-1, compareShortChar(Short.MIN_VALUE, (char)0));
623*795d594fSAndroid Build Coastguard Worker     expectEquals(-1, compareShortChar(Short.MIN_VALUE, (char)1));
624*795d594fSAndroid Build Coastguard Worker     expectEquals(-1, compareShortChar(Short.MIN_VALUE, Character.MAX_VALUE));
625*795d594fSAndroid Build Coastguard Worker     expectEquals(-1, compareShortChar((short)-1, (char)0));
626*795d594fSAndroid Build Coastguard Worker     expectEquals(-1, compareShortChar((short)-1, (char)1));
627*795d594fSAndroid Build Coastguard Worker     expectEquals(-1, compareShortChar((short)0, (char)1));
628*795d594fSAndroid Build Coastguard Worker     expectEquals(-1, compareShortChar(Short.MAX_VALUE, (char)(Character.MAX_VALUE - 1)));
629*795d594fSAndroid Build Coastguard Worker     expectEquals(-1, compareShortChar(Short.MAX_VALUE, Character.MAX_VALUE));
630*795d594fSAndroid Build Coastguard Worker 
631*795d594fSAndroid Build Coastguard Worker     expectEquals(0, compareShortChar((short)0, (char)0));
632*795d594fSAndroid Build Coastguard Worker     expectEquals(0, compareShortChar((short)1, (char)1));
633*795d594fSAndroid Build Coastguard Worker 
634*795d594fSAndroid Build Coastguard Worker     expectEquals(1, compareShortChar((short)1, (char)0));
635*795d594fSAndroid Build Coastguard Worker     expectEquals(1, compareShortChar(Short.MAX_VALUE, (char)0));
636*795d594fSAndroid Build Coastguard Worker     expectEquals(1, compareShortChar(Short.MAX_VALUE, (char)1));
637*795d594fSAndroid Build Coastguard Worker 
638*795d594fSAndroid Build Coastguard Worker     for (short i = -11; i <= 11; i++) {
639*795d594fSAndroid Build Coastguard Worker       for (char j = 0; j <= 11; j++) {
640*795d594fSAndroid Build Coastguard Worker         int expected = 0;
641*795d594fSAndroid Build Coastguard Worker         if (i < j) expected = -1;
642*795d594fSAndroid Build Coastguard Worker         else if (i > j) expected = 1;
643*795d594fSAndroid Build Coastguard Worker         expectEquals(expected, compareShortChar(i, j));
644*795d594fSAndroid Build Coastguard Worker       }
645*795d594fSAndroid Build Coastguard Worker     }
646*795d594fSAndroid Build Coastguard Worker   }
647*795d594fSAndroid Build Coastguard Worker 
testCompareShortInt()648*795d594fSAndroid Build Coastguard Worker   public static void testCompareShortInt() {
649*795d594fSAndroid Build Coastguard Worker     expectEquals(-1, compareShortInt(Short.MIN_VALUE, -1));
650*795d594fSAndroid Build Coastguard Worker     expectEquals(-1, compareShortInt(Short.MIN_VALUE, 0));
651*795d594fSAndroid Build Coastguard Worker     expectEquals(-1, compareShortInt(Short.MIN_VALUE, 1));
652*795d594fSAndroid Build Coastguard Worker     expectEquals(-1, compareShortInt(Short.MIN_VALUE, Integer.MAX_VALUE));
653*795d594fSAndroid Build Coastguard Worker     expectEquals(-1, compareShortInt((short)-1, 0));
654*795d594fSAndroid Build Coastguard Worker     expectEquals(-1, compareShortInt((short)-1, 1));
655*795d594fSAndroid Build Coastguard Worker     expectEquals(-1, compareShortInt((short)0, 1));
656*795d594fSAndroid Build Coastguard Worker     expectEquals(-1, compareShortInt(Short.MAX_VALUE, Integer.MAX_VALUE - 1));
657*795d594fSAndroid Build Coastguard Worker     expectEquals(-1, compareShortInt(Short.MAX_VALUE, Integer.MAX_VALUE));
658*795d594fSAndroid Build Coastguard Worker 
659*795d594fSAndroid Build Coastguard Worker     expectEquals(0, compareShortInt((short)-1, -1));
660*795d594fSAndroid Build Coastguard Worker     expectEquals(0, compareShortInt((short)0, 0));
661*795d594fSAndroid Build Coastguard Worker     expectEquals(0, compareShortInt((short)1, 1));
662*795d594fSAndroid Build Coastguard Worker 
663*795d594fSAndroid Build Coastguard Worker     expectEquals(1, compareShortInt(Short.MIN_VALUE, Integer.MIN_VALUE));
664*795d594fSAndroid Build Coastguard Worker     expectEquals(1, compareShortInt(Short.MIN_VALUE, Integer.MIN_VALUE + 1));
665*795d594fSAndroid Build Coastguard Worker     expectEquals(1, compareShortInt((short)0, -1));
666*795d594fSAndroid Build Coastguard Worker     expectEquals(1, compareShortInt((short)1, -1));
667*795d594fSAndroid Build Coastguard Worker     expectEquals(1, compareShortInt((short)1, 0));
668*795d594fSAndroid Build Coastguard Worker     expectEquals(1, compareShortInt(Short.MAX_VALUE, Integer.MIN_VALUE));
669*795d594fSAndroid Build Coastguard Worker     expectEquals(1, compareShortInt(Short.MAX_VALUE, -1));
670*795d594fSAndroid Build Coastguard Worker     expectEquals(1, compareShortInt(Short.MAX_VALUE, 0));
671*795d594fSAndroid Build Coastguard Worker     expectEquals(1, compareShortInt(Short.MAX_VALUE, 1));
672*795d594fSAndroid Build Coastguard Worker 
673*795d594fSAndroid Build Coastguard Worker     for (short i = -11; i <= 11; i++) {
674*795d594fSAndroid Build Coastguard Worker       for (int j = -11; j <= 11; j++) {
675*795d594fSAndroid Build Coastguard Worker         int expected = 0;
676*795d594fSAndroid Build Coastguard Worker         if (i < j) expected = -1;
677*795d594fSAndroid Build Coastguard Worker         else if (i > j) expected = 1;
678*795d594fSAndroid Build Coastguard Worker         expectEquals(expected, compareShortInt(i, j));
679*795d594fSAndroid Build Coastguard Worker       }
680*795d594fSAndroid Build Coastguard Worker     }
681*795d594fSAndroid Build Coastguard Worker   }
682*795d594fSAndroid Build Coastguard Worker 
683*795d594fSAndroid Build Coastguard Worker 
testCompareCharByte()684*795d594fSAndroid Build Coastguard Worker   public static void testCompareCharByte() {
685*795d594fSAndroid Build Coastguard Worker     expectEquals(-1, compareCharByte((char)0, (byte)1));
686*795d594fSAndroid Build Coastguard Worker     expectEquals(-1, compareCharByte((char)0, Byte.MAX_VALUE));
687*795d594fSAndroid Build Coastguard Worker 
688*795d594fSAndroid Build Coastguard Worker     expectEquals(0, compareCharByte((char)0, (byte)0));
689*795d594fSAndroid Build Coastguard Worker     expectEquals(0, compareCharByte((char)1, (byte)1));
690*795d594fSAndroid Build Coastguard Worker 
691*795d594fSAndroid Build Coastguard Worker     expectEquals(1, compareCharByte((char)0, Byte.MIN_VALUE));
692*795d594fSAndroid Build Coastguard Worker     expectEquals(1, compareCharByte((char)0, (byte)(Byte.MIN_VALUE + 1)));
693*795d594fSAndroid Build Coastguard Worker     expectEquals(1, compareCharByte((char)0, (byte)-1));
694*795d594fSAndroid Build Coastguard Worker     expectEquals(1, compareCharByte((char)1, (byte)-1));
695*795d594fSAndroid Build Coastguard Worker     expectEquals(1, compareCharByte((char)1, (byte)0));
696*795d594fSAndroid Build Coastguard Worker     expectEquals(1, compareCharByte(Character.MAX_VALUE, Byte.MIN_VALUE));
697*795d594fSAndroid Build Coastguard Worker     expectEquals(1, compareCharByte(Character.MAX_VALUE, (byte)-1));
698*795d594fSAndroid Build Coastguard Worker     expectEquals(1, compareCharByte(Character.MAX_VALUE, (byte)0));
699*795d594fSAndroid Build Coastguard Worker     expectEquals(1, compareCharByte(Character.MAX_VALUE, (byte)1));
700*795d594fSAndroid Build Coastguard Worker     expectEquals(1, compareCharByte(Character.MAX_VALUE, (byte)(Byte.MAX_VALUE - 1)));
701*795d594fSAndroid Build Coastguard Worker     expectEquals(1, compareCharByte(Character.MAX_VALUE, Byte.MAX_VALUE));
702*795d594fSAndroid Build Coastguard Worker 
703*795d594fSAndroid Build Coastguard Worker     for (char i = 0; i <= 11; i++) {
704*795d594fSAndroid Build Coastguard Worker       for (byte j = -11; j <= 11; j++) {
705*795d594fSAndroid Build Coastguard Worker         int expected = 0;
706*795d594fSAndroid Build Coastguard Worker         if (i < j) expected = -1;
707*795d594fSAndroid Build Coastguard Worker         else if (i > j) expected = 1;
708*795d594fSAndroid Build Coastguard Worker         expectEquals(expected, compareCharByte(i, j));
709*795d594fSAndroid Build Coastguard Worker       }
710*795d594fSAndroid Build Coastguard Worker     }
711*795d594fSAndroid Build Coastguard Worker   }
712*795d594fSAndroid Build Coastguard Worker 
testCompareCharShort()713*795d594fSAndroid Build Coastguard Worker   public static void testCompareCharShort() {
714*795d594fSAndroid Build Coastguard Worker     expectEquals(-1, compareCharShort((char)0, (short)1));
715*795d594fSAndroid Build Coastguard Worker     expectEquals(-1, compareCharShort((char)0, Short.MAX_VALUE));
716*795d594fSAndroid Build Coastguard Worker 
717*795d594fSAndroid Build Coastguard Worker     expectEquals(0, compareCharShort((char)0, (short)0));
718*795d594fSAndroid Build Coastguard Worker     expectEquals(0, compareCharShort((char)1, (short)1));
719*795d594fSAndroid Build Coastguard Worker 
720*795d594fSAndroid Build Coastguard Worker     expectEquals(1, compareCharShort((char)0, Short.MIN_VALUE));
721*795d594fSAndroid Build Coastguard Worker     expectEquals(1, compareCharShort((char)0, (short)(Short.MIN_VALUE + 1)));
722*795d594fSAndroid Build Coastguard Worker     expectEquals(1, compareCharShort((char)0, (short)-1));
723*795d594fSAndroid Build Coastguard Worker     expectEquals(1, compareCharShort((char)1, (short)-1));
724*795d594fSAndroid Build Coastguard Worker     expectEquals(1, compareCharShort((char)1, (short)0));
725*795d594fSAndroid Build Coastguard Worker     expectEquals(1, compareCharShort(Character.MAX_VALUE, Short.MIN_VALUE));
726*795d594fSAndroid Build Coastguard Worker     expectEquals(1, compareCharShort(Character.MAX_VALUE, (short)-1));
727*795d594fSAndroid Build Coastguard Worker     expectEquals(1, compareCharShort(Character.MAX_VALUE, (short)0));
728*795d594fSAndroid Build Coastguard Worker     expectEquals(1, compareCharShort(Character.MAX_VALUE, (short)1));
729*795d594fSAndroid Build Coastguard Worker     expectEquals(1, compareCharShort(Character.MAX_VALUE, (short)(Short.MAX_VALUE - 1)));
730*795d594fSAndroid Build Coastguard Worker     expectEquals(1, compareCharShort(Character.MAX_VALUE, Short.MAX_VALUE));
731*795d594fSAndroid Build Coastguard Worker 
732*795d594fSAndroid Build Coastguard Worker     for (char i = 0; i <= 11; i++) {
733*795d594fSAndroid Build Coastguard Worker       for (short j = -11; j <= 11; j++) {
734*795d594fSAndroid Build Coastguard Worker         int expected = 0;
735*795d594fSAndroid Build Coastguard Worker         if (i < j) expected = -1;
736*795d594fSAndroid Build Coastguard Worker         else if (i > j) expected = 1;
737*795d594fSAndroid Build Coastguard Worker         expectEquals(expected, compareCharShort(i, j));
738*795d594fSAndroid Build Coastguard Worker       }
739*795d594fSAndroid Build Coastguard Worker     }
740*795d594fSAndroid Build Coastguard Worker   }
741*795d594fSAndroid Build Coastguard Worker 
testCompareCharInt()742*795d594fSAndroid Build Coastguard Worker   public static void testCompareCharInt() {
743*795d594fSAndroid Build Coastguard Worker     expectEquals(-1, compareCharInt((char)0, 1));
744*795d594fSAndroid Build Coastguard Worker     expectEquals(-1, compareCharInt((char)0, Integer.MAX_VALUE));
745*795d594fSAndroid Build Coastguard Worker     expectEquals(-1, compareCharInt(Character.MAX_VALUE, Integer.MAX_VALUE - 1));
746*795d594fSAndroid Build Coastguard Worker     expectEquals(-1, compareCharInt(Character.MAX_VALUE, Integer.MAX_VALUE));
747*795d594fSAndroid Build Coastguard Worker 
748*795d594fSAndroid Build Coastguard Worker     expectEquals(0, compareCharInt((char)0, 0));
749*795d594fSAndroid Build Coastguard Worker     expectEquals(0, compareCharInt((char)1, 1));
750*795d594fSAndroid Build Coastguard Worker 
751*795d594fSAndroid Build Coastguard Worker     expectEquals(1, compareCharInt((char)0, Integer.MIN_VALUE));
752*795d594fSAndroid Build Coastguard Worker     expectEquals(1, compareCharInt((char)0, Integer.MIN_VALUE + 1));
753*795d594fSAndroid Build Coastguard Worker     expectEquals(1, compareCharInt((char)0, -1));
754*795d594fSAndroid Build Coastguard Worker     expectEquals(1, compareCharInt((char)1, -1));
755*795d594fSAndroid Build Coastguard Worker     expectEquals(1, compareCharInt((char)1, 0));
756*795d594fSAndroid Build Coastguard Worker     expectEquals(1, compareCharInt(Character.MAX_VALUE, Integer.MIN_VALUE));
757*795d594fSAndroid Build Coastguard Worker     expectEquals(1, compareCharInt(Character.MAX_VALUE, -1));
758*795d594fSAndroid Build Coastguard Worker     expectEquals(1, compareCharInt(Character.MAX_VALUE, 0));
759*795d594fSAndroid Build Coastguard Worker     expectEquals(1, compareCharInt(Character.MAX_VALUE, 1));
760*795d594fSAndroid Build Coastguard Worker 
761*795d594fSAndroid Build Coastguard Worker     for (char i = 0; i <= 11; i++) {
762*795d594fSAndroid Build Coastguard Worker       for (int j = -11; j <= 11; j++) {
763*795d594fSAndroid Build Coastguard Worker         int expected = 0;
764*795d594fSAndroid Build Coastguard Worker         if (i < j) expected = -1;
765*795d594fSAndroid Build Coastguard Worker         else if (i > j) expected = 1;
766*795d594fSAndroid Build Coastguard Worker         expectEquals(expected, compareCharInt(i, j));
767*795d594fSAndroid Build Coastguard Worker       }
768*795d594fSAndroid Build Coastguard Worker     }
769*795d594fSAndroid Build Coastguard Worker   }
770*795d594fSAndroid Build Coastguard Worker 
771*795d594fSAndroid Build Coastguard Worker 
testCompareIntByte()772*795d594fSAndroid Build Coastguard Worker   public static void testCompareIntByte() {
773*795d594fSAndroid Build Coastguard Worker     expectEquals(-1, compareIntByte(Integer.MIN_VALUE, Byte.MIN_VALUE));
774*795d594fSAndroid Build Coastguard Worker     expectEquals(-1, compareIntByte(Integer.MIN_VALUE, (byte)(Byte.MIN_VALUE + 1)));
775*795d594fSAndroid Build Coastguard Worker     expectEquals(-1, compareIntByte(Integer.MIN_VALUE, (byte)-1));
776*795d594fSAndroid Build Coastguard Worker     expectEquals(-1, compareIntByte(Integer.MIN_VALUE, (byte)0));
777*795d594fSAndroid Build Coastguard Worker     expectEquals(-1, compareIntByte(Integer.MIN_VALUE, (byte)1));
778*795d594fSAndroid Build Coastguard Worker     expectEquals(-1, compareIntByte(Integer.MIN_VALUE, Byte.MAX_VALUE));
779*795d594fSAndroid Build Coastguard Worker     expectEquals(-1, compareIntByte(-1, (byte)0));
780*795d594fSAndroid Build Coastguard Worker     expectEquals(-1, compareIntByte(-1, (byte)1));
781*795d594fSAndroid Build Coastguard Worker     expectEquals(-1, compareIntByte(0, (byte)1));
782*795d594fSAndroid Build Coastguard Worker 
783*795d594fSAndroid Build Coastguard Worker     expectEquals(0, compareIntByte(-1, (byte)-1));
784*795d594fSAndroid Build Coastguard Worker     expectEquals(0, compareIntByte(0, (byte)0));
785*795d594fSAndroid Build Coastguard Worker     expectEquals(0, compareIntByte(1, (byte)1));
786*795d594fSAndroid Build Coastguard Worker 
787*795d594fSAndroid Build Coastguard Worker     expectEquals(1, compareIntByte(0, (byte)-1));
788*795d594fSAndroid Build Coastguard Worker     expectEquals(1, compareIntByte(1, (byte)-1));
789*795d594fSAndroid Build Coastguard Worker     expectEquals(1, compareIntByte(1, (byte)0));
790*795d594fSAndroid Build Coastguard Worker     expectEquals(1, compareIntByte(Integer.MAX_VALUE, Byte.MIN_VALUE));
791*795d594fSAndroid Build Coastguard Worker     expectEquals(1, compareIntByte(Integer.MAX_VALUE, (byte)-1));
792*795d594fSAndroid Build Coastguard Worker     expectEquals(1, compareIntByte(Integer.MAX_VALUE, (byte)0));
793*795d594fSAndroid Build Coastguard Worker     expectEquals(1, compareIntByte(Integer.MAX_VALUE, (byte)1));
794*795d594fSAndroid Build Coastguard Worker     expectEquals(1, compareIntByte(Integer.MAX_VALUE, (byte)(Byte.MAX_VALUE - 1)));
795*795d594fSAndroid Build Coastguard Worker     expectEquals(1, compareIntByte(Integer.MAX_VALUE, Byte.MAX_VALUE));
796*795d594fSAndroid Build Coastguard Worker 
797*795d594fSAndroid Build Coastguard Worker     for (int i = -11; i <= 11; i++) {
798*795d594fSAndroid Build Coastguard Worker       for (byte j = -11; j <= 11; j++) {
799*795d594fSAndroid Build Coastguard Worker         int expected = 0;
800*795d594fSAndroid Build Coastguard Worker         if (i < j) expected = -1;
801*795d594fSAndroid Build Coastguard Worker         else if (i > j) expected = 1;
802*795d594fSAndroid Build Coastguard Worker         expectEquals(expected, compareIntByte(i, j));
803*795d594fSAndroid Build Coastguard Worker       }
804*795d594fSAndroid Build Coastguard Worker     }
805*795d594fSAndroid Build Coastguard Worker   }
806*795d594fSAndroid Build Coastguard Worker 
testCompareIntShort()807*795d594fSAndroid Build Coastguard Worker   public static void testCompareIntShort() {
808*795d594fSAndroid Build Coastguard Worker     expectEquals(-1, compareIntShort(Integer.MIN_VALUE, Short.MIN_VALUE));
809*795d594fSAndroid Build Coastguard Worker     expectEquals(-1, compareIntShort(Integer.MIN_VALUE, (short)(Short.MIN_VALUE + 1)));
810*795d594fSAndroid Build Coastguard Worker     expectEquals(-1, compareIntShort(Integer.MIN_VALUE, (short)-1));
811*795d594fSAndroid Build Coastguard Worker     expectEquals(-1, compareIntShort(Integer.MIN_VALUE, (short)0));
812*795d594fSAndroid Build Coastguard Worker     expectEquals(-1, compareIntShort(Integer.MIN_VALUE, (short)1));
813*795d594fSAndroid Build Coastguard Worker     expectEquals(-1, compareIntShort(Integer.MIN_VALUE, Short.MAX_VALUE));
814*795d594fSAndroid Build Coastguard Worker     expectEquals(-1, compareIntShort(-1, (short)0));
815*795d594fSAndroid Build Coastguard Worker     expectEquals(-1, compareIntShort(-1, (short)1));
816*795d594fSAndroid Build Coastguard Worker     expectEquals(-1, compareIntShort(0, (short)1));
817*795d594fSAndroid Build Coastguard Worker 
818*795d594fSAndroid Build Coastguard Worker     expectEquals(0, compareIntShort(-1, (short)-1));
819*795d594fSAndroid Build Coastguard Worker     expectEquals(0, compareIntShort(0, (short)0));
820*795d594fSAndroid Build Coastguard Worker     expectEquals(0, compareIntShort(1, (short)1));
821*795d594fSAndroid Build Coastguard Worker 
822*795d594fSAndroid Build Coastguard Worker     expectEquals(1, compareIntShort(0, (short)-1));
823*795d594fSAndroid Build Coastguard Worker     expectEquals(1, compareIntShort(1, (short)-1));
824*795d594fSAndroid Build Coastguard Worker     expectEquals(1, compareIntShort(1, (short)0));
825*795d594fSAndroid Build Coastguard Worker     expectEquals(1, compareIntShort(Integer.MAX_VALUE, Short.MIN_VALUE));
826*795d594fSAndroid Build Coastguard Worker     expectEquals(1, compareIntShort(Integer.MAX_VALUE, (short)-1));
827*795d594fSAndroid Build Coastguard Worker     expectEquals(1, compareIntShort(Integer.MAX_VALUE, (short)0));
828*795d594fSAndroid Build Coastguard Worker     expectEquals(1, compareIntShort(Integer.MAX_VALUE, (short)1));
829*795d594fSAndroid Build Coastguard Worker     expectEquals(1, compareIntShort(Integer.MAX_VALUE, (short)(Short.MAX_VALUE - 1)));
830*795d594fSAndroid Build Coastguard Worker     expectEquals(1, compareIntShort(Integer.MAX_VALUE, Short.MAX_VALUE));
831*795d594fSAndroid Build Coastguard Worker 
832*795d594fSAndroid Build Coastguard Worker     for (int i = -11; i <= 11; i++) {
833*795d594fSAndroid Build Coastguard Worker       for (short j = -11; j <= 11; j++) {
834*795d594fSAndroid Build Coastguard Worker         int expected = 0;
835*795d594fSAndroid Build Coastguard Worker         if (i < j) expected = -1;
836*795d594fSAndroid Build Coastguard Worker         else if (i > j) expected = 1;
837*795d594fSAndroid Build Coastguard Worker         expectEquals(expected, compareIntShort(i, j));
838*795d594fSAndroid Build Coastguard Worker       }
839*795d594fSAndroid Build Coastguard Worker     }
840*795d594fSAndroid Build Coastguard Worker   }
841*795d594fSAndroid Build Coastguard Worker 
testCompareIntChar()842*795d594fSAndroid Build Coastguard Worker   public static void testCompareIntChar() {
843*795d594fSAndroid Build Coastguard Worker     expectEquals(-1, compareIntChar(Integer.MIN_VALUE, (char)0));
844*795d594fSAndroid Build Coastguard Worker     expectEquals(-1, compareIntChar(Integer.MIN_VALUE, (char)1));
845*795d594fSAndroid Build Coastguard Worker     expectEquals(-1, compareIntChar(Integer.MIN_VALUE, Character.MAX_VALUE));
846*795d594fSAndroid Build Coastguard Worker     expectEquals(-1, compareIntChar(-1, (char)0));
847*795d594fSAndroid Build Coastguard Worker     expectEquals(-1, compareIntChar(-1, (char)1));
848*795d594fSAndroid Build Coastguard Worker     expectEquals(-1, compareIntChar(0, (char)1));
849*795d594fSAndroid Build Coastguard Worker 
850*795d594fSAndroid Build Coastguard Worker     expectEquals(0, compareIntChar(0, (char)0));
851*795d594fSAndroid Build Coastguard Worker     expectEquals(0, compareIntChar(1, (char)1));
852*795d594fSAndroid Build Coastguard Worker 
853*795d594fSAndroid Build Coastguard Worker     expectEquals(1, compareIntChar(1, (char)0));
854*795d594fSAndroid Build Coastguard Worker     expectEquals(1, compareIntChar(Integer.MAX_VALUE, (char)0));
855*795d594fSAndroid Build Coastguard Worker     expectEquals(1, compareIntChar(Integer.MAX_VALUE, (char)1));
856*795d594fSAndroid Build Coastguard Worker     expectEquals(1, compareIntChar(Integer.MAX_VALUE, (char)(Character.MAX_VALUE - 1)));
857*795d594fSAndroid Build Coastguard Worker     expectEquals(1, compareIntChar(Integer.MAX_VALUE, Character.MAX_VALUE));
858*795d594fSAndroid Build Coastguard Worker 
859*795d594fSAndroid Build Coastguard Worker     for (int i = -11; i <= 11; i++) {
860*795d594fSAndroid Build Coastguard Worker       for (char j = 0; j <= 11; j++) {
861*795d594fSAndroid Build Coastguard Worker         int expected = 0;
862*795d594fSAndroid Build Coastguard Worker         if (i < j) expected = -1;
863*795d594fSAndroid Build Coastguard Worker         else if (i > j) expected = 1;
864*795d594fSAndroid Build Coastguard Worker         expectEquals(expected, compareIntChar(i, j));
865*795d594fSAndroid Build Coastguard Worker       }
866*795d594fSAndroid Build Coastguard Worker     }
867*795d594fSAndroid Build Coastguard Worker   }
868*795d594fSAndroid Build Coastguard Worker 
869*795d594fSAndroid Build Coastguard Worker 
main()870*795d594fSAndroid Build Coastguard Worker   public static void main() {
871*795d594fSAndroid Build Coastguard Worker     $opt$noinline$testReplaceInputWithItself(42);
872*795d594fSAndroid Build Coastguard Worker 
873*795d594fSAndroid Build Coastguard Worker     testCompareBooleans();
874*795d594fSAndroid Build Coastguard Worker     testCompareBytes();
875*795d594fSAndroid Build Coastguard Worker     testCompareShorts();
876*795d594fSAndroid Build Coastguard Worker     testCompareChars();
877*795d594fSAndroid Build Coastguard Worker     testCompareInts();
878*795d594fSAndroid Build Coastguard Worker     testCompareLongs();
879*795d594fSAndroid Build Coastguard Worker 
880*795d594fSAndroid Build Coastguard Worker     testCompareByteShort();
881*795d594fSAndroid Build Coastguard Worker     testCompareByteChar();
882*795d594fSAndroid Build Coastguard Worker     testCompareByteInt();
883*795d594fSAndroid Build Coastguard Worker 
884*795d594fSAndroid Build Coastguard Worker     testCompareShortByte();
885*795d594fSAndroid Build Coastguard Worker     testCompareShortChar();
886*795d594fSAndroid Build Coastguard Worker     testCompareShortInt();
887*795d594fSAndroid Build Coastguard Worker 
888*795d594fSAndroid Build Coastguard Worker     testCompareCharByte();
889*795d594fSAndroid Build Coastguard Worker     testCompareCharShort();
890*795d594fSAndroid Build Coastguard Worker     testCompareCharInt();
891*795d594fSAndroid Build Coastguard Worker 
892*795d594fSAndroid Build Coastguard Worker     testCompareIntByte();
893*795d594fSAndroid Build Coastguard Worker     testCompareIntShort();
894*795d594fSAndroid Build Coastguard Worker     testCompareIntChar();
895*795d594fSAndroid Build Coastguard Worker 
896*795d594fSAndroid Build Coastguard Worker     System.out.println("TestCompare passed");
897*795d594fSAndroid Build Coastguard Worker   }
898*795d594fSAndroid Build Coastguard Worker 
expectEquals(int expected, int result)899*795d594fSAndroid Build Coastguard Worker   private static void expectEquals(int expected, int result) {
900*795d594fSAndroid Build Coastguard Worker     if (expected != result) {
901*795d594fSAndroid Build Coastguard Worker       throw new Error("Expected: " + expected + ", found: " + result);
902*795d594fSAndroid Build Coastguard Worker     }
903*795d594fSAndroid Build Coastguard Worker   }
904*795d594fSAndroid Build Coastguard Worker }
905