xref: /aosp_15_r20/external/llvm/test/Transforms/InstSimplify/maxmin.ll (revision 9880d6810fe72a1726cb53787c6711e909410d58)
1*9880d681SAndroid Build Coastguard Worker; NOTE: Assertions have been autogenerated by update_test_checks.py
2*9880d681SAndroid Build Coastguard Worker; RUN: opt < %s -instsimplify -S | FileCheck %s
3*9880d681SAndroid Build Coastguard Worker
4*9880d681SAndroid Build Coastguard Workerdefine i1 @max1(i32 %x, i32 %y) {
5*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: @max1(
6*9880d681SAndroid Build Coastguard Worker; CHECK:         ret i1 false
7*9880d681SAndroid Build Coastguard Worker;
8*9880d681SAndroid Build Coastguard Worker  %c = icmp sgt i32 %x, %y
9*9880d681SAndroid Build Coastguard Worker  %m = select i1 %c, i32 %x, i32 %y
10*9880d681SAndroid Build Coastguard Worker  %r = icmp slt i32 %m, %x
11*9880d681SAndroid Build Coastguard Worker  ret i1 %r
12*9880d681SAndroid Build Coastguard Worker}
13*9880d681SAndroid Build Coastguard Worker
14*9880d681SAndroid Build Coastguard Workerdefine i1 @max2(i32 %x, i32 %y) {
15*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: @max2(
16*9880d681SAndroid Build Coastguard Worker; CHECK:         ret i1 true
17*9880d681SAndroid Build Coastguard Worker;
18*9880d681SAndroid Build Coastguard Worker  %c = icmp sge i32 %x, %y
19*9880d681SAndroid Build Coastguard Worker  %m = select i1 %c, i32 %x, i32 %y
20*9880d681SAndroid Build Coastguard Worker  %r = icmp sge i32 %m, %x
21*9880d681SAndroid Build Coastguard Worker  ret i1 %r
22*9880d681SAndroid Build Coastguard Worker}
23*9880d681SAndroid Build Coastguard Worker
24*9880d681SAndroid Build Coastguard Workerdefine i1 @max3(i32 %x, i32 %y) {
25*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: @max3(
26*9880d681SAndroid Build Coastguard Worker; CHECK:         ret i1 false
27*9880d681SAndroid Build Coastguard Worker;
28*9880d681SAndroid Build Coastguard Worker  %c = icmp ugt i32 %x, %y
29*9880d681SAndroid Build Coastguard Worker  %m = select i1 %c, i32 %x, i32 %y
30*9880d681SAndroid Build Coastguard Worker  %r = icmp ult i32 %m, %x
31*9880d681SAndroid Build Coastguard Worker  ret i1 %r
32*9880d681SAndroid Build Coastguard Worker}
33*9880d681SAndroid Build Coastguard Worker
34*9880d681SAndroid Build Coastguard Workerdefine i1 @max4(i32 %x, i32 %y) {
35*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: @max4(
36*9880d681SAndroid Build Coastguard Worker; CHECK:         ret i1 true
37*9880d681SAndroid Build Coastguard Worker;
38*9880d681SAndroid Build Coastguard Worker  %c = icmp uge i32 %x, %y
39*9880d681SAndroid Build Coastguard Worker  %m = select i1 %c, i32 %x, i32 %y
40*9880d681SAndroid Build Coastguard Worker  %r = icmp uge i32 %m, %x
41*9880d681SAndroid Build Coastguard Worker  ret i1 %r
42*9880d681SAndroid Build Coastguard Worker}
43*9880d681SAndroid Build Coastguard Worker
44*9880d681SAndroid Build Coastguard Workerdefine i1 @max5(i32 %x, i32 %y) {
45*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: @max5(
46*9880d681SAndroid Build Coastguard Worker; CHECK:         ret i1 false
47*9880d681SAndroid Build Coastguard Worker;
48*9880d681SAndroid Build Coastguard Worker  %c = icmp sgt i32 %x, %y
49*9880d681SAndroid Build Coastguard Worker  %m = select i1 %c, i32 %x, i32 %y
50*9880d681SAndroid Build Coastguard Worker  %r = icmp sgt i32 %x, %m
51*9880d681SAndroid Build Coastguard Worker  ret i1 %r
52*9880d681SAndroid Build Coastguard Worker}
53*9880d681SAndroid Build Coastguard Worker
54*9880d681SAndroid Build Coastguard Workerdefine i1 @max6(i32 %x, i32 %y) {
55*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: @max6(
56*9880d681SAndroid Build Coastguard Worker; CHECK:         ret i1 true
57*9880d681SAndroid Build Coastguard Worker;
58*9880d681SAndroid Build Coastguard Worker  %c = icmp sge i32 %x, %y
59*9880d681SAndroid Build Coastguard Worker  %m = select i1 %c, i32 %x, i32 %y
60*9880d681SAndroid Build Coastguard Worker  %r = icmp sle i32 %x, %m
61*9880d681SAndroid Build Coastguard Worker  ret i1 %r
62*9880d681SAndroid Build Coastguard Worker}
63*9880d681SAndroid Build Coastguard Worker
64*9880d681SAndroid Build Coastguard Workerdefine i1 @max7(i32 %x, i32 %y) {
65*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: @max7(
66*9880d681SAndroid Build Coastguard Worker; CHECK:         ret i1 false
67*9880d681SAndroid Build Coastguard Worker;
68*9880d681SAndroid Build Coastguard Worker  %c = icmp ugt i32 %x, %y
69*9880d681SAndroid Build Coastguard Worker  %m = select i1 %c, i32 %x, i32 %y
70*9880d681SAndroid Build Coastguard Worker  %r = icmp ugt i32 %x, %m
71*9880d681SAndroid Build Coastguard Worker  ret i1 %r
72*9880d681SAndroid Build Coastguard Worker}
73*9880d681SAndroid Build Coastguard Worker
74*9880d681SAndroid Build Coastguard Workerdefine i1 @max8(i32 %x, i32 %y) {
75*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: @max8(
76*9880d681SAndroid Build Coastguard Worker; CHECK:         ret i1 true
77*9880d681SAndroid Build Coastguard Worker;
78*9880d681SAndroid Build Coastguard Worker  %c = icmp uge i32 %x, %y
79*9880d681SAndroid Build Coastguard Worker  %m = select i1 %c, i32 %x, i32 %y
80*9880d681SAndroid Build Coastguard Worker  %r = icmp ule i32 %x, %m
81*9880d681SAndroid Build Coastguard Worker  ret i1 %r
82*9880d681SAndroid Build Coastguard Worker}
83*9880d681SAndroid Build Coastguard Worker
84*9880d681SAndroid Build Coastguard Workerdefine i1 @min1(i32 %x, i32 %y) {
85*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: @min1(
86*9880d681SAndroid Build Coastguard Worker; CHECK:         ret i1 false
87*9880d681SAndroid Build Coastguard Worker;
88*9880d681SAndroid Build Coastguard Worker  %c = icmp sgt i32 %x, %y
89*9880d681SAndroid Build Coastguard Worker  %m = select i1 %c, i32 %y, i32 %x
90*9880d681SAndroid Build Coastguard Worker  %r = icmp sgt i32 %m, %x
91*9880d681SAndroid Build Coastguard Worker  ret i1 %r
92*9880d681SAndroid Build Coastguard Worker}
93*9880d681SAndroid Build Coastguard Worker
94*9880d681SAndroid Build Coastguard Workerdefine i1 @min2(i32 %x, i32 %y) {
95*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: @min2(
96*9880d681SAndroid Build Coastguard Worker; CHECK:         ret i1 true
97*9880d681SAndroid Build Coastguard Worker;
98*9880d681SAndroid Build Coastguard Worker  %c = icmp sge i32 %x, %y
99*9880d681SAndroid Build Coastguard Worker  %m = select i1 %c, i32 %y, i32 %x
100*9880d681SAndroid Build Coastguard Worker  %r = icmp sle i32 %m, %x
101*9880d681SAndroid Build Coastguard Worker  ret i1 %r
102*9880d681SAndroid Build Coastguard Worker}
103*9880d681SAndroid Build Coastguard Worker
104*9880d681SAndroid Build Coastguard Workerdefine i1 @min3(i32 %x, i32 %y) {
105*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: @min3(
106*9880d681SAndroid Build Coastguard Worker; CHECK:         ret i1 false
107*9880d681SAndroid Build Coastguard Worker;
108*9880d681SAndroid Build Coastguard Worker  %c = icmp ugt i32 %x, %y
109*9880d681SAndroid Build Coastguard Worker  %m = select i1 %c, i32 %y, i32 %x
110*9880d681SAndroid Build Coastguard Worker  %r = icmp ugt i32 %m, %x
111*9880d681SAndroid Build Coastguard Worker  ret i1 %r
112*9880d681SAndroid Build Coastguard Worker}
113*9880d681SAndroid Build Coastguard Worker
114*9880d681SAndroid Build Coastguard Workerdefine i1 @min4(i32 %x, i32 %y) {
115*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: @min4(
116*9880d681SAndroid Build Coastguard Worker; CHECK:         ret i1 true
117*9880d681SAndroid Build Coastguard Worker;
118*9880d681SAndroid Build Coastguard Worker  %c = icmp uge i32 %x, %y
119*9880d681SAndroid Build Coastguard Worker  %m = select i1 %c, i32 %y, i32 %x
120*9880d681SAndroid Build Coastguard Worker  %r = icmp ule i32 %m, %x
121*9880d681SAndroid Build Coastguard Worker  ret i1 %r
122*9880d681SAndroid Build Coastguard Worker}
123*9880d681SAndroid Build Coastguard Worker
124*9880d681SAndroid Build Coastguard Workerdefine i1 @min5(i32 %x, i32 %y) {
125*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: @min5(
126*9880d681SAndroid Build Coastguard Worker; CHECK:         ret i1 false
127*9880d681SAndroid Build Coastguard Worker;
128*9880d681SAndroid Build Coastguard Worker  %c = icmp sgt i32 %x, %y
129*9880d681SAndroid Build Coastguard Worker  %m = select i1 %c, i32 %y, i32 %x
130*9880d681SAndroid Build Coastguard Worker  %r = icmp slt i32 %x, %m
131*9880d681SAndroid Build Coastguard Worker  ret i1 %r
132*9880d681SAndroid Build Coastguard Worker}
133*9880d681SAndroid Build Coastguard Worker
134*9880d681SAndroid Build Coastguard Workerdefine i1 @min6(i32 %x, i32 %y) {
135*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: @min6(
136*9880d681SAndroid Build Coastguard Worker; CHECK:         ret i1 true
137*9880d681SAndroid Build Coastguard Worker;
138*9880d681SAndroid Build Coastguard Worker  %c = icmp sge i32 %x, %y
139*9880d681SAndroid Build Coastguard Worker  %m = select i1 %c, i32 %y, i32 %x
140*9880d681SAndroid Build Coastguard Worker  %r = icmp sge i32 %x, %m
141*9880d681SAndroid Build Coastguard Worker  ret i1 %r
142*9880d681SAndroid Build Coastguard Worker}
143*9880d681SAndroid Build Coastguard Worker
144*9880d681SAndroid Build Coastguard Workerdefine i1 @min7(i32 %x, i32 %y) {
145*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: @min7(
146*9880d681SAndroid Build Coastguard Worker; CHECK:         ret i1 false
147*9880d681SAndroid Build Coastguard Worker;
148*9880d681SAndroid Build Coastguard Worker  %c = icmp ugt i32 %x, %y
149*9880d681SAndroid Build Coastguard Worker  %m = select i1 %c, i32 %y, i32 %x
150*9880d681SAndroid Build Coastguard Worker  %r = icmp ult i32 %x, %m
151*9880d681SAndroid Build Coastguard Worker  ret i1 %r
152*9880d681SAndroid Build Coastguard Worker}
153*9880d681SAndroid Build Coastguard Worker
154*9880d681SAndroid Build Coastguard Workerdefine i1 @min8(i32 %x, i32 %y) {
155*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: @min8(
156*9880d681SAndroid Build Coastguard Worker; CHECK:         ret i1 true
157*9880d681SAndroid Build Coastguard Worker;
158*9880d681SAndroid Build Coastguard Worker  %c = icmp uge i32 %x, %y
159*9880d681SAndroid Build Coastguard Worker  %m = select i1 %c, i32 %y, i32 %x
160*9880d681SAndroid Build Coastguard Worker  %r = icmp uge i32 %x, %m
161*9880d681SAndroid Build Coastguard Worker  ret i1 %r
162*9880d681SAndroid Build Coastguard Worker}
163*9880d681SAndroid Build Coastguard Worker
164*9880d681SAndroid Build Coastguard Workerdefine i1 @maxmin1(i32 %x, i32 %y, i32 %z) {
165*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: @maxmin1(
166*9880d681SAndroid Build Coastguard Worker; CHECK:         ret i1 true
167*9880d681SAndroid Build Coastguard Worker;
168*9880d681SAndroid Build Coastguard Worker  %c1 = icmp sge i32 %x, %y
169*9880d681SAndroid Build Coastguard Worker  %max = select i1 %c1, i32 %x, i32 %y
170*9880d681SAndroid Build Coastguard Worker  %c2 = icmp sge i32 %x, %z
171*9880d681SAndroid Build Coastguard Worker  %min = select i1 %c2, i32 %z, i32 %x
172*9880d681SAndroid Build Coastguard Worker  %c = icmp sge i32 %max, %min
173*9880d681SAndroid Build Coastguard Worker  ret i1 %c
174*9880d681SAndroid Build Coastguard Worker}
175*9880d681SAndroid Build Coastguard Worker
176*9880d681SAndroid Build Coastguard Workerdefine i1 @maxmin2(i32 %x, i32 %y, i32 %z) {
177*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: @maxmin2(
178*9880d681SAndroid Build Coastguard Worker; CHECK:         ret i1 false
179*9880d681SAndroid Build Coastguard Worker;
180*9880d681SAndroid Build Coastguard Worker  %c1 = icmp sge i32 %x, %y
181*9880d681SAndroid Build Coastguard Worker  %max = select i1 %c1, i32 %x, i32 %y
182*9880d681SAndroid Build Coastguard Worker  %c2 = icmp sge i32 %x, %z
183*9880d681SAndroid Build Coastguard Worker  %min = select i1 %c2, i32 %z, i32 %x
184*9880d681SAndroid Build Coastguard Worker  %c = icmp sgt i32 %min, %max
185*9880d681SAndroid Build Coastguard Worker  ret i1 %c
186*9880d681SAndroid Build Coastguard Worker}
187*9880d681SAndroid Build Coastguard Worker
188*9880d681SAndroid Build Coastguard Workerdefine i1 @maxmin3(i32 %x, i32 %y, i32 %z) {
189*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: @maxmin3(
190*9880d681SAndroid Build Coastguard Worker; CHECK:         ret i1 true
191*9880d681SAndroid Build Coastguard Worker;
192*9880d681SAndroid Build Coastguard Worker  %c1 = icmp sge i32 %x, %y
193*9880d681SAndroid Build Coastguard Worker  %max = select i1 %c1, i32 %x, i32 %y
194*9880d681SAndroid Build Coastguard Worker  %c2 = icmp sge i32 %x, %z
195*9880d681SAndroid Build Coastguard Worker  %min = select i1 %c2, i32 %z, i32 %x
196*9880d681SAndroid Build Coastguard Worker  %c = icmp sle i32 %min, %max
197*9880d681SAndroid Build Coastguard Worker  ret i1 %c
198*9880d681SAndroid Build Coastguard Worker}
199*9880d681SAndroid Build Coastguard Worker
200*9880d681SAndroid Build Coastguard Workerdefine i1 @maxmin4(i32 %x, i32 %y, i32 %z) {
201*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: @maxmin4(
202*9880d681SAndroid Build Coastguard Worker; CHECK:         ret i1 false
203*9880d681SAndroid Build Coastguard Worker;
204*9880d681SAndroid Build Coastguard Worker  %c1 = icmp sge i32 %x, %y
205*9880d681SAndroid Build Coastguard Worker  %max = select i1 %c1, i32 %x, i32 %y
206*9880d681SAndroid Build Coastguard Worker  %c2 = icmp sge i32 %x, %z
207*9880d681SAndroid Build Coastguard Worker  %min = select i1 %c2, i32 %z, i32 %x
208*9880d681SAndroid Build Coastguard Worker  %c = icmp slt i32 %max, %min
209*9880d681SAndroid Build Coastguard Worker  ret i1 %c
210*9880d681SAndroid Build Coastguard Worker}
211*9880d681SAndroid Build Coastguard Worker
212*9880d681SAndroid Build Coastguard Workerdefine i1 @maxmin5(i32 %x, i32 %y, i32 %z) {
213*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: @maxmin5(
214*9880d681SAndroid Build Coastguard Worker; CHECK:         ret i1 true
215*9880d681SAndroid Build Coastguard Worker;
216*9880d681SAndroid Build Coastguard Worker  %c1 = icmp uge i32 %x, %y
217*9880d681SAndroid Build Coastguard Worker  %max = select i1 %c1, i32 %x, i32 %y
218*9880d681SAndroid Build Coastguard Worker  %c2 = icmp uge i32 %x, %z
219*9880d681SAndroid Build Coastguard Worker  %min = select i1 %c2, i32 %z, i32 %x
220*9880d681SAndroid Build Coastguard Worker  %c = icmp uge i32 %max, %min
221*9880d681SAndroid Build Coastguard Worker  ret i1 %c
222*9880d681SAndroid Build Coastguard Worker}
223*9880d681SAndroid Build Coastguard Worker
224*9880d681SAndroid Build Coastguard Workerdefine i1 @maxmin6(i32 %x, i32 %y, i32 %z) {
225*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: @maxmin6(
226*9880d681SAndroid Build Coastguard Worker; CHECK:         ret i1 false
227*9880d681SAndroid Build Coastguard Worker;
228*9880d681SAndroid Build Coastguard Worker  %c1 = icmp uge i32 %x, %y
229*9880d681SAndroid Build Coastguard Worker  %max = select i1 %c1, i32 %x, i32 %y
230*9880d681SAndroid Build Coastguard Worker  %c2 = icmp uge i32 %x, %z
231*9880d681SAndroid Build Coastguard Worker  %min = select i1 %c2, i32 %z, i32 %x
232*9880d681SAndroid Build Coastguard Worker  %c = icmp ugt i32 %min, %max
233*9880d681SAndroid Build Coastguard Worker  ret i1 %c
234*9880d681SAndroid Build Coastguard Worker}
235*9880d681SAndroid Build Coastguard Worker
236*9880d681SAndroid Build Coastguard Workerdefine i1 @maxmin7(i32 %x, i32 %y, i32 %z) {
237*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: @maxmin7(
238*9880d681SAndroid Build Coastguard Worker; CHECK:         ret i1 true
239*9880d681SAndroid Build Coastguard Worker;
240*9880d681SAndroid Build Coastguard Worker  %c1 = icmp uge i32 %x, %y
241*9880d681SAndroid Build Coastguard Worker  %max = select i1 %c1, i32 %x, i32 %y
242*9880d681SAndroid Build Coastguard Worker  %c2 = icmp uge i32 %x, %z
243*9880d681SAndroid Build Coastguard Worker  %min = select i1 %c2, i32 %z, i32 %x
244*9880d681SAndroid Build Coastguard Worker  %c = icmp ule i32 %min, %max
245*9880d681SAndroid Build Coastguard Worker  ret i1 %c
246*9880d681SAndroid Build Coastguard Worker}
247*9880d681SAndroid Build Coastguard Worker
248*9880d681SAndroid Build Coastguard Workerdefine i1 @maxmin8(i32 %x, i32 %y, i32 %z) {
249*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: @maxmin8(
250*9880d681SAndroid Build Coastguard Worker; CHECK:         ret i1 false
251*9880d681SAndroid Build Coastguard Worker;
252*9880d681SAndroid Build Coastguard Worker  %c1 = icmp uge i32 %x, %y
253*9880d681SAndroid Build Coastguard Worker  %max = select i1 %c1, i32 %x, i32 %y
254*9880d681SAndroid Build Coastguard Worker  %c2 = icmp uge i32 %x, %z
255*9880d681SAndroid Build Coastguard Worker  %min = select i1 %c2, i32 %z, i32 %x
256*9880d681SAndroid Build Coastguard Worker  %c = icmp ult i32 %max, %min
257*9880d681SAndroid Build Coastguard Worker  ret i1 %c
258*9880d681SAndroid Build Coastguard Worker}
259*9880d681SAndroid Build Coastguard Worker
260*9880d681SAndroid Build Coastguard Workerdefine i1 @eqcmp1(i32 %x, i32 %y) {
261*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: @eqcmp1(
262*9880d681SAndroid Build Coastguard Worker; CHECK:         [[C:%.*]] = icmp sge i32 %x, %y
263*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT:    ret i1 [[C]]
264*9880d681SAndroid Build Coastguard Worker;
265*9880d681SAndroid Build Coastguard Worker  %c = icmp sge i32 %x, %y
266*9880d681SAndroid Build Coastguard Worker  %max = select i1 %c, i32 %x, i32 %y
267*9880d681SAndroid Build Coastguard Worker  %r = icmp eq i32 %max, %x
268*9880d681SAndroid Build Coastguard Worker  ret i1 %r
269*9880d681SAndroid Build Coastguard Worker}
270*9880d681SAndroid Build Coastguard Worker
271*9880d681SAndroid Build Coastguard Workerdefine i1 @eqcmp2(i32 %x, i32 %y) {
272*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: @eqcmp2(
273*9880d681SAndroid Build Coastguard Worker; CHECK:         [[C:%.*]] = icmp sge i32 %x, %y
274*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT:    ret i1 [[C]]
275*9880d681SAndroid Build Coastguard Worker;
276*9880d681SAndroid Build Coastguard Worker  %c = icmp sge i32 %x, %y
277*9880d681SAndroid Build Coastguard Worker  %max = select i1 %c, i32 %x, i32 %y
278*9880d681SAndroid Build Coastguard Worker  %r = icmp eq i32 %x, %max
279*9880d681SAndroid Build Coastguard Worker  ret i1 %r
280*9880d681SAndroid Build Coastguard Worker}
281*9880d681SAndroid Build Coastguard Worker
282*9880d681SAndroid Build Coastguard Workerdefine i1 @eqcmp3(i32 %x, i32 %y) {
283*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: @eqcmp3(
284*9880d681SAndroid Build Coastguard Worker; CHECK:         [[C:%.*]] = icmp uge i32 %x, %y
285*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT:    ret i1 [[C]]
286*9880d681SAndroid Build Coastguard Worker;
287*9880d681SAndroid Build Coastguard Worker  %c = icmp uge i32 %x, %y
288*9880d681SAndroid Build Coastguard Worker  %max = select i1 %c, i32 %x, i32 %y
289*9880d681SAndroid Build Coastguard Worker  %r = icmp eq i32 %max, %x
290*9880d681SAndroid Build Coastguard Worker  ret i1 %r
291*9880d681SAndroid Build Coastguard Worker}
292*9880d681SAndroid Build Coastguard Worker
293*9880d681SAndroid Build Coastguard Workerdefine i1 @eqcmp4(i32 %x, i32 %y) {
294*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: @eqcmp4(
295*9880d681SAndroid Build Coastguard Worker; CHECK:         [[C:%.*]] = icmp uge i32 %x, %y
296*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT:    ret i1 [[C]]
297*9880d681SAndroid Build Coastguard Worker;
298*9880d681SAndroid Build Coastguard Worker  %c = icmp uge i32 %x, %y
299*9880d681SAndroid Build Coastguard Worker  %max = select i1 %c, i32 %x, i32 %y
300*9880d681SAndroid Build Coastguard Worker  %r = icmp eq i32 %x, %max
301*9880d681SAndroid Build Coastguard Worker  ret i1 %r
302*9880d681SAndroid Build Coastguard Worker}
303