[HLSL] Implement RWBuffer::operator[] via __builtin_hlsl_resource_getpointer (#117017)
[llvm-project.git] / llvm / test / CodeGen / Mips / GlobalISel / legalizer / icmp.mir
blob3c81427231a359b6e27ba0dd884f4fc6e997994d
1 # NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py
2 # RUN: llc -O0 -mtriple=mipsel-linux-gnu -run-pass=legalizer -verify-machineinstrs %s -o - | FileCheck %s -check-prefixes=MIPS32
3 --- |
5   define void @ne_i32() {entry: ret void}
6   define void @eq_ptr() {entry: ret void}
7   define void @ult_i8() {entry: ret void}
8   define void @slt_i16() {entry: ret void}
9   define void @eq_i64() {entry: ret void}
10   define void @ne_i64() {entry: ret void}
11   define void @sgt_i64() {entry: ret void}
12   define void @sge_i64() {entry: ret void}
13   define void @slt_i64() {entry: ret void}
14   define void @sle_i64() {entry: ret void}
15   define void @ugt_i64() {entry: ret void}
16   define void @uge_i64() {entry: ret void}
17   define void @ult_i64() {entry: ret void}
18   define void @ule_i64() {entry: ret void}
20 ...
21 ---
22 name:            ne_i32
23 alignment:       4
24 tracksRegLiveness: true
25 body:             |
26   bb.1.entry:
27     liveins: $a0, $a1
29     ; MIPS32-LABEL: name: ne_i32
30     ; MIPS32: liveins: $a0, $a1
31     ; MIPS32-NEXT: {{  $}}
32     ; MIPS32-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $a0
33     ; MIPS32-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $a1
34     ; MIPS32-NEXT: [[ICMP:%[0-9]+]]:_(s32) = G_ICMP intpred(ne), [[COPY]](s32), [[COPY1]]
35     ; MIPS32-NEXT: $v0 = COPY [[ICMP]](s32)
36     ; MIPS32-NEXT: RetRA implicit $v0
37     %0:_(s32) = COPY $a0
38     %1:_(s32) = COPY $a1
39     %2:_(s1) = G_ICMP intpred(ne), %0(s32), %1
40     %3:_(s32) = G_ANYEXT %2(s1)
41     $v0 = COPY %3(s32)
42     RetRA implicit $v0
44 ...
45 ---
46 name:            eq_ptr
47 alignment:       4
48 tracksRegLiveness: true
49 body:             |
50   bb.1.entry:
51     liveins: $a0, $a1
53     ; MIPS32-LABEL: name: eq_ptr
54     ; MIPS32: liveins: $a0, $a1
55     ; MIPS32-NEXT: {{  $}}
56     ; MIPS32-NEXT: [[COPY:%[0-9]+]]:_(p0) = COPY $a0
57     ; MIPS32-NEXT: [[COPY1:%[0-9]+]]:_(p0) = COPY $a1
58     ; MIPS32-NEXT: [[ICMP:%[0-9]+]]:_(s32) = G_ICMP intpred(eq), [[COPY]](p0), [[COPY1]]
59     ; MIPS32-NEXT: $v0 = COPY [[ICMP]](s32)
60     ; MIPS32-NEXT: RetRA implicit $v0
61     %0:_(p0) = COPY $a0
62     %1:_(p0) = COPY $a1
63     %2:_(s1) = G_ICMP intpred(eq), %0(p0), %1
64     %3:_(s32) = G_ANYEXT %2(s1)
65     $v0 = COPY %3(s32)
66     RetRA implicit $v0
68 ...
69 ---
70 name:            ult_i8
71 alignment:       4
72 tracksRegLiveness: true
73 body:             |
74   bb.1.entry:
75     liveins: $a0, $a1
77     ; MIPS32-LABEL: name: ult_i8
78     ; MIPS32: liveins: $a0, $a1
79     ; MIPS32-NEXT: {{  $}}
80     ; MIPS32-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $a0
81     ; MIPS32-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $a1
82     ; MIPS32-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 255
83     ; MIPS32-NEXT: [[AND:%[0-9]+]]:_(s32) = G_AND [[COPY]], [[C]]
84     ; MIPS32-NEXT: [[AND1:%[0-9]+]]:_(s32) = G_AND [[COPY1]], [[C]]
85     ; MIPS32-NEXT: [[ICMP:%[0-9]+]]:_(s32) = G_ICMP intpred(ult), [[AND]](s32), [[AND1]]
86     ; MIPS32-NEXT: $v0 = COPY [[ICMP]](s32)
87     ; MIPS32-NEXT: RetRA implicit $v0
88     %2:_(s32) = COPY $a0
89     %0:_(s8) = G_TRUNC %2(s32)
90     %3:_(s32) = COPY $a1
91     %1:_(s8) = G_TRUNC %3(s32)
92     %4:_(s1) = G_ICMP intpred(ult), %0(s8), %1
93     %5:_(s32) = G_ANYEXT %4(s1)
94     $v0 = COPY %5(s32)
95     RetRA implicit $v0
97 ...
98 ---
99 name:            slt_i16
100 alignment:       4
101 tracksRegLiveness: true
102 body:             |
103   bb.1.entry:
104     liveins: $a0, $a1
106     ; MIPS32-LABEL: name: slt_i16
107     ; MIPS32: liveins: $a0, $a1
108     ; MIPS32-NEXT: {{  $}}
109     ; MIPS32-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $a0
110     ; MIPS32-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $a1
111     ; MIPS32-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 16
112     ; MIPS32-NEXT: [[SHL:%[0-9]+]]:_(s32) = G_SHL [[COPY]], [[C]](s32)
113     ; MIPS32-NEXT: [[ASHR:%[0-9]+]]:_(s32) = G_ASHR [[SHL]], [[C]](s32)
114     ; MIPS32-NEXT: [[SHL1:%[0-9]+]]:_(s32) = G_SHL [[COPY1]], [[C]](s32)
115     ; MIPS32-NEXT: [[ASHR1:%[0-9]+]]:_(s32) = G_ASHR [[SHL1]], [[C]](s32)
116     ; MIPS32-NEXT: [[ICMP:%[0-9]+]]:_(s32) = G_ICMP intpred(slt), [[ASHR]](s32), [[ASHR1]]
117     ; MIPS32-NEXT: $v0 = COPY [[ICMP]](s32)
118     ; MIPS32-NEXT: RetRA implicit $v0
119     %2:_(s32) = COPY $a0
120     %0:_(s16) = G_TRUNC %2(s32)
121     %3:_(s32) = COPY $a1
122     %1:_(s16) = G_TRUNC %3(s32)
123     %4:_(s1) = G_ICMP intpred(slt), %0(s16), %1
124     %5:_(s32) = G_ANYEXT %4(s1)
125     $v0 = COPY %5(s32)
126     RetRA implicit $v0
130 name:            eq_i64
131 alignment:       4
132 tracksRegLiveness: true
133 body:             |
134   bb.1.entry:
135     liveins: $a0, $a1, $a2, $a3
137     ; MIPS32-LABEL: name: eq_i64
138     ; MIPS32: liveins: $a0, $a1, $a2, $a3
139     ; MIPS32-NEXT: {{  $}}
140     ; MIPS32-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $a0
141     ; MIPS32-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $a1
142     ; MIPS32-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $a2
143     ; MIPS32-NEXT: [[COPY3:%[0-9]+]]:_(s32) = COPY $a3
144     ; MIPS32-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 0
145     ; MIPS32-NEXT: [[XOR:%[0-9]+]]:_(s32) = G_XOR [[COPY]], [[COPY2]]
146     ; MIPS32-NEXT: [[XOR1:%[0-9]+]]:_(s32) = G_XOR [[COPY1]], [[COPY3]]
147     ; MIPS32-NEXT: [[OR:%[0-9]+]]:_(s32) = G_OR [[XOR]], [[XOR1]]
148     ; MIPS32-NEXT: [[ICMP:%[0-9]+]]:_(s32) = G_ICMP intpred(eq), [[OR]](s32), [[C]]
149     ; MIPS32-NEXT: $v0 = COPY [[ICMP]](s32)
150     ; MIPS32-NEXT: RetRA implicit $v0
151     %2:_(s32) = COPY $a0
152     %3:_(s32) = COPY $a1
153     %0:_(s64) = G_MERGE_VALUES %2(s32), %3(s32)
154     %4:_(s32) = COPY $a2
155     %5:_(s32) = COPY $a3
156     %1:_(s64) = G_MERGE_VALUES %4(s32), %5(s32)
157     %6:_(s1) = G_ICMP intpred(eq), %0(s64), %1
158     %7:_(s32) = G_ANYEXT %6(s1)
159     $v0 = COPY %7(s32)
160     RetRA implicit $v0
164 name:            ne_i64
165 alignment:       4
166 tracksRegLiveness: true
167 body:             |
168   bb.1.entry:
169     liveins: $a0, $a1, $a2, $a3
171     ; MIPS32-LABEL: name: ne_i64
172     ; MIPS32: liveins: $a0, $a1, $a2, $a3
173     ; MIPS32-NEXT: {{  $}}
174     ; MIPS32-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $a0
175     ; MIPS32-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $a1
176     ; MIPS32-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $a2
177     ; MIPS32-NEXT: [[COPY3:%[0-9]+]]:_(s32) = COPY $a3
178     ; MIPS32-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 0
179     ; MIPS32-NEXT: [[XOR:%[0-9]+]]:_(s32) = G_XOR [[COPY]], [[COPY2]]
180     ; MIPS32-NEXT: [[XOR1:%[0-9]+]]:_(s32) = G_XOR [[COPY1]], [[COPY3]]
181     ; MIPS32-NEXT: [[OR:%[0-9]+]]:_(s32) = G_OR [[XOR]], [[XOR1]]
182     ; MIPS32-NEXT: [[ICMP:%[0-9]+]]:_(s32) = G_ICMP intpred(ne), [[OR]](s32), [[C]]
183     ; MIPS32-NEXT: $v0 = COPY [[ICMP]](s32)
184     ; MIPS32-NEXT: RetRA implicit $v0
185     %2:_(s32) = COPY $a0
186     %3:_(s32) = COPY $a1
187     %0:_(s64) = G_MERGE_VALUES %2(s32), %3(s32)
188     %4:_(s32) = COPY $a2
189     %5:_(s32) = COPY $a3
190     %1:_(s64) = G_MERGE_VALUES %4(s32), %5(s32)
191     %6:_(s1) = G_ICMP intpred(ne), %0(s64), %1
192     %7:_(s32) = G_ANYEXT %6(s1)
193     $v0 = COPY %7(s32)
194     RetRA implicit $v0
198 name:            sgt_i64
199 alignment:       4
200 tracksRegLiveness: true
201 body:             |
202   bb.1.entry:
203     liveins: $a0, $a1, $a2, $a3
205     ; MIPS32-LABEL: name: sgt_i64
206     ; MIPS32: liveins: $a0, $a1, $a2, $a3
207     ; MIPS32-NEXT: {{  $}}
208     ; MIPS32-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $a0
209     ; MIPS32-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $a1
210     ; MIPS32-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $a2
211     ; MIPS32-NEXT: [[COPY3:%[0-9]+]]:_(s32) = COPY $a3
212     ; MIPS32-NEXT: [[ICMP:%[0-9]+]]:_(s32) = G_ICMP intpred(sgt), [[COPY1]](s32), [[COPY3]]
213     ; MIPS32-NEXT: [[ICMP1:%[0-9]+]]:_(s32) = G_ICMP intpred(eq), [[COPY1]](s32), [[COPY3]]
214     ; MIPS32-NEXT: [[ICMP2:%[0-9]+]]:_(s32) = G_ICMP intpred(ugt), [[COPY]](s32), [[COPY2]]
215     ; MIPS32-NEXT: [[SELECT:%[0-9]+]]:_(s32) = G_SELECT [[ICMP1]](s32), [[ICMP2]], [[ICMP]]
216     ; MIPS32-NEXT: $v0 = COPY [[SELECT]](s32)
217     ; MIPS32-NEXT: RetRA implicit $v0
218     %2:_(s32) = COPY $a0
219     %3:_(s32) = COPY $a1
220     %0:_(s64) = G_MERGE_VALUES %2(s32), %3(s32)
221     %4:_(s32) = COPY $a2
222     %5:_(s32) = COPY $a3
223     %1:_(s64) = G_MERGE_VALUES %4(s32), %5(s32)
224     %6:_(s1) = G_ICMP intpred(sgt), %0(s64), %1
225     %7:_(s32) = G_ANYEXT %6(s1)
226     $v0 = COPY %7(s32)
227     RetRA implicit $v0
231 name:            sge_i64
232 alignment:       4
233 tracksRegLiveness: true
234 body:             |
235   bb.1.entry:
236     liveins: $a0, $a1, $a2, $a3
238     ; MIPS32-LABEL: name: sge_i64
239     ; MIPS32: liveins: $a0, $a1, $a2, $a3
240     ; MIPS32-NEXT: {{  $}}
241     ; MIPS32-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $a0
242     ; MIPS32-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $a1
243     ; MIPS32-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $a2
244     ; MIPS32-NEXT: [[COPY3:%[0-9]+]]:_(s32) = COPY $a3
245     ; MIPS32-NEXT: [[ICMP:%[0-9]+]]:_(s32) = G_ICMP intpred(sge), [[COPY1]](s32), [[COPY3]]
246     ; MIPS32-NEXT: [[ICMP1:%[0-9]+]]:_(s32) = G_ICMP intpred(eq), [[COPY1]](s32), [[COPY3]]
247     ; MIPS32-NEXT: [[ICMP2:%[0-9]+]]:_(s32) = G_ICMP intpred(uge), [[COPY]](s32), [[COPY2]]
248     ; MIPS32-NEXT: [[SELECT:%[0-9]+]]:_(s32) = G_SELECT [[ICMP1]](s32), [[ICMP2]], [[ICMP]]
249     ; MIPS32-NEXT: $v0 = COPY [[SELECT]](s32)
250     ; MIPS32-NEXT: RetRA implicit $v0
251     %2:_(s32) = COPY $a0
252     %3:_(s32) = COPY $a1
253     %0:_(s64) = G_MERGE_VALUES %2(s32), %3(s32)
254     %4:_(s32) = COPY $a2
255     %5:_(s32) = COPY $a3
256     %1:_(s64) = G_MERGE_VALUES %4(s32), %5(s32)
257     %6:_(s1) = G_ICMP intpred(sge), %0(s64), %1
258     %7:_(s32) = G_ANYEXT %6(s1)
259     $v0 = COPY %7(s32)
260     RetRA implicit $v0
264 name:            slt_i64
265 alignment:       4
266 tracksRegLiveness: true
267 body:             |
268   bb.1.entry:
269     liveins: $a0, $a1, $a2, $a3
271     ; MIPS32-LABEL: name: slt_i64
272     ; MIPS32: liveins: $a0, $a1, $a2, $a3
273     ; MIPS32-NEXT: {{  $}}
274     ; MIPS32-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $a0
275     ; MIPS32-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $a1
276     ; MIPS32-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $a2
277     ; MIPS32-NEXT: [[COPY3:%[0-9]+]]:_(s32) = COPY $a3
278     ; MIPS32-NEXT: [[ICMP:%[0-9]+]]:_(s32) = G_ICMP intpred(slt), [[COPY1]](s32), [[COPY3]]
279     ; MIPS32-NEXT: [[ICMP1:%[0-9]+]]:_(s32) = G_ICMP intpred(eq), [[COPY1]](s32), [[COPY3]]
280     ; MIPS32-NEXT: [[ICMP2:%[0-9]+]]:_(s32) = G_ICMP intpred(ult), [[COPY]](s32), [[COPY2]]
281     ; MIPS32-NEXT: [[SELECT:%[0-9]+]]:_(s32) = G_SELECT [[ICMP1]](s32), [[ICMP2]], [[ICMP]]
282     ; MIPS32-NEXT: $v0 = COPY [[SELECT]](s32)
283     ; MIPS32-NEXT: RetRA implicit $v0
284     %2:_(s32) = COPY $a0
285     %3:_(s32) = COPY $a1
286     %0:_(s64) = G_MERGE_VALUES %2(s32), %3(s32)
287     %4:_(s32) = COPY $a2
288     %5:_(s32) = COPY $a3
289     %1:_(s64) = G_MERGE_VALUES %4(s32), %5(s32)
290     %6:_(s1) = G_ICMP intpred(slt), %0(s64), %1
291     %7:_(s32) = G_ANYEXT %6(s1)
292     $v0 = COPY %7(s32)
293     RetRA implicit $v0
297 name:            sle_i64
298 alignment:       4
299 tracksRegLiveness: true
300 body:             |
301   bb.1.entry:
302     liveins: $a0, $a1, $a2, $a3
304     ; MIPS32-LABEL: name: sle_i64
305     ; MIPS32: liveins: $a0, $a1, $a2, $a3
306     ; MIPS32-NEXT: {{  $}}
307     ; MIPS32-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $a0
308     ; MIPS32-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $a1
309     ; MIPS32-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $a2
310     ; MIPS32-NEXT: [[COPY3:%[0-9]+]]:_(s32) = COPY $a3
311     ; MIPS32-NEXT: [[ICMP:%[0-9]+]]:_(s32) = G_ICMP intpred(sle), [[COPY1]](s32), [[COPY3]]
312     ; MIPS32-NEXT: [[ICMP1:%[0-9]+]]:_(s32) = G_ICMP intpred(eq), [[COPY1]](s32), [[COPY3]]
313     ; MIPS32-NEXT: [[ICMP2:%[0-9]+]]:_(s32) = G_ICMP intpred(ule), [[COPY]](s32), [[COPY2]]
314     ; MIPS32-NEXT: [[SELECT:%[0-9]+]]:_(s32) = G_SELECT [[ICMP1]](s32), [[ICMP2]], [[ICMP]]
315     ; MIPS32-NEXT: $v0 = COPY [[SELECT]](s32)
316     ; MIPS32-NEXT: RetRA implicit $v0
317     %2:_(s32) = COPY $a0
318     %3:_(s32) = COPY $a1
319     %0:_(s64) = G_MERGE_VALUES %2(s32), %3(s32)
320     %4:_(s32) = COPY $a2
321     %5:_(s32) = COPY $a3
322     %1:_(s64) = G_MERGE_VALUES %4(s32), %5(s32)
323     %6:_(s1) = G_ICMP intpred(sle), %0(s64), %1
324     %7:_(s32) = G_ANYEXT %6(s1)
325     $v0 = COPY %7(s32)
326     RetRA implicit $v0
330 name:            ugt_i64
331 alignment:       4
332 tracksRegLiveness: true
333 body:             |
334   bb.1.entry:
335     liveins: $a0, $a1, $a2, $a3
337     ; MIPS32-LABEL: name: ugt_i64
338     ; MIPS32: liveins: $a0, $a1, $a2, $a3
339     ; MIPS32-NEXT: {{  $}}
340     ; MIPS32-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $a0
341     ; MIPS32-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $a1
342     ; MIPS32-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $a2
343     ; MIPS32-NEXT: [[COPY3:%[0-9]+]]:_(s32) = COPY $a3
344     ; MIPS32-NEXT: [[ICMP:%[0-9]+]]:_(s32) = G_ICMP intpred(ugt), [[COPY1]](s32), [[COPY3]]
345     ; MIPS32-NEXT: [[ICMP1:%[0-9]+]]:_(s32) = G_ICMP intpred(eq), [[COPY1]](s32), [[COPY3]]
346     ; MIPS32-NEXT: [[ICMP2:%[0-9]+]]:_(s32) = G_ICMP intpred(ugt), [[COPY]](s32), [[COPY2]]
347     ; MIPS32-NEXT: [[SELECT:%[0-9]+]]:_(s32) = G_SELECT [[ICMP1]](s32), [[ICMP2]], [[ICMP]]
348     ; MIPS32-NEXT: $v0 = COPY [[SELECT]](s32)
349     ; MIPS32-NEXT: RetRA implicit $v0
350     %2:_(s32) = COPY $a0
351     %3:_(s32) = COPY $a1
352     %0:_(s64) = G_MERGE_VALUES %2(s32), %3(s32)
353     %4:_(s32) = COPY $a2
354     %5:_(s32) = COPY $a3
355     %1:_(s64) = G_MERGE_VALUES %4(s32), %5(s32)
356     %6:_(s1) = G_ICMP intpred(ugt), %0(s64), %1
357     %7:_(s32) = G_ANYEXT %6(s1)
358     $v0 = COPY %7(s32)
359     RetRA implicit $v0
363 name:            uge_i64
364 alignment:       4
365 tracksRegLiveness: true
366 body:             |
367   bb.1.entry:
368     liveins: $a0, $a1, $a2, $a3
370     ; MIPS32-LABEL: name: uge_i64
371     ; MIPS32: liveins: $a0, $a1, $a2, $a3
372     ; MIPS32-NEXT: {{  $}}
373     ; MIPS32-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $a0
374     ; MIPS32-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $a1
375     ; MIPS32-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $a2
376     ; MIPS32-NEXT: [[COPY3:%[0-9]+]]:_(s32) = COPY $a3
377     ; MIPS32-NEXT: [[ICMP:%[0-9]+]]:_(s32) = G_ICMP intpred(uge), [[COPY1]](s32), [[COPY3]]
378     ; MIPS32-NEXT: [[ICMP1:%[0-9]+]]:_(s32) = G_ICMP intpred(eq), [[COPY1]](s32), [[COPY3]]
379     ; MIPS32-NEXT: [[ICMP2:%[0-9]+]]:_(s32) = G_ICMP intpred(uge), [[COPY]](s32), [[COPY2]]
380     ; MIPS32-NEXT: [[SELECT:%[0-9]+]]:_(s32) = G_SELECT [[ICMP1]](s32), [[ICMP2]], [[ICMP]]
381     ; MIPS32-NEXT: $v0 = COPY [[SELECT]](s32)
382     ; MIPS32-NEXT: RetRA implicit $v0
383     %2:_(s32) = COPY $a0
384     %3:_(s32) = COPY $a1
385     %0:_(s64) = G_MERGE_VALUES %2(s32), %3(s32)
386     %4:_(s32) = COPY $a2
387     %5:_(s32) = COPY $a3
388     %1:_(s64) = G_MERGE_VALUES %4(s32), %5(s32)
389     %6:_(s1) = G_ICMP intpred(uge), %0(s64), %1
390     %7:_(s32) = G_ANYEXT %6(s1)
391     $v0 = COPY %7(s32)
392     RetRA implicit $v0
396 name:            ult_i64
397 alignment:       4
398 tracksRegLiveness: true
399 body:             |
400   bb.1.entry:
401     liveins: $a0, $a1, $a2, $a3
403     ; MIPS32-LABEL: name: ult_i64
404     ; MIPS32: liveins: $a0, $a1, $a2, $a3
405     ; MIPS32-NEXT: {{  $}}
406     ; MIPS32-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $a0
407     ; MIPS32-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $a1
408     ; MIPS32-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $a2
409     ; MIPS32-NEXT: [[COPY3:%[0-9]+]]:_(s32) = COPY $a3
410     ; MIPS32-NEXT: [[ICMP:%[0-9]+]]:_(s32) = G_ICMP intpred(ult), [[COPY1]](s32), [[COPY3]]
411     ; MIPS32-NEXT: [[ICMP1:%[0-9]+]]:_(s32) = G_ICMP intpred(eq), [[COPY1]](s32), [[COPY3]]
412     ; MIPS32-NEXT: [[ICMP2:%[0-9]+]]:_(s32) = G_ICMP intpred(ult), [[COPY]](s32), [[COPY2]]
413     ; MIPS32-NEXT: [[SELECT:%[0-9]+]]:_(s32) = G_SELECT [[ICMP1]](s32), [[ICMP2]], [[ICMP]]
414     ; MIPS32-NEXT: $v0 = COPY [[SELECT]](s32)
415     ; MIPS32-NEXT: RetRA implicit $v0
416     %2:_(s32) = COPY $a0
417     %3:_(s32) = COPY $a1
418     %0:_(s64) = G_MERGE_VALUES %2(s32), %3(s32)
419     %4:_(s32) = COPY $a2
420     %5:_(s32) = COPY $a3
421     %1:_(s64) = G_MERGE_VALUES %4(s32), %5(s32)
422     %6:_(s1) = G_ICMP intpred(ult), %0(s64), %1
423     %7:_(s32) = G_ANYEXT %6(s1)
424     $v0 = COPY %7(s32)
425     RetRA implicit $v0
429 name:            ule_i64
430 alignment:       4
431 tracksRegLiveness: true
432 body:             |
433   bb.1.entry:
434     liveins: $a0, $a1, $a2, $a3
436     ; MIPS32-LABEL: name: ule_i64
437     ; MIPS32: liveins: $a0, $a1, $a2, $a3
438     ; MIPS32-NEXT: {{  $}}
439     ; MIPS32-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $a0
440     ; MIPS32-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $a1
441     ; MIPS32-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $a2
442     ; MIPS32-NEXT: [[COPY3:%[0-9]+]]:_(s32) = COPY $a3
443     ; MIPS32-NEXT: [[ICMP:%[0-9]+]]:_(s32) = G_ICMP intpred(ule), [[COPY1]](s32), [[COPY3]]
444     ; MIPS32-NEXT: [[ICMP1:%[0-9]+]]:_(s32) = G_ICMP intpred(eq), [[COPY1]](s32), [[COPY3]]
445     ; MIPS32-NEXT: [[ICMP2:%[0-9]+]]:_(s32) = G_ICMP intpred(ule), [[COPY]](s32), [[COPY2]]
446     ; MIPS32-NEXT: [[SELECT:%[0-9]+]]:_(s32) = G_SELECT [[ICMP1]](s32), [[ICMP2]], [[ICMP]]
447     ; MIPS32-NEXT: $v0 = COPY [[SELECT]](s32)
448     ; MIPS32-NEXT: RetRA implicit $v0
449     %2:_(s32) = COPY $a0
450     %3:_(s32) = COPY $a1
451     %0:_(s64) = G_MERGE_VALUES %2(s32), %3(s32)
452     %4:_(s32) = COPY $a2
453     %5:_(s32) = COPY $a3
454     %1:_(s64) = G_MERGE_VALUES %4(s32), %5(s32)
455     %6:_(s1) = G_ICMP intpred(ule), %0(s64), %1
456     %7:_(s32) = G_ANYEXT %6(s1)
457     $v0 = COPY %7(s32)
458     RetRA implicit $v0