[InstCombine] Signed saturation patterns
[llvm-core.git] / test / CodeGen / AArch64 / GlobalISel / legalize-vector-icmp.mir
blobce078624a9828825145d8f2867f92cde49f9bb90
1 # NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py
2 # RUN: llc -march=aarch64 -run-pass=legalizer %s -o - -verify-machineinstrs | FileCheck %s
3 ---
4 name:            test_v2i64_eq
5 alignment:       4
6 tracksRegLiveness: true
7 registers:
8   - { id: 0, class: _ }
9   - { id: 1, class: _ }
10   - { id: 2, class: _ }
11   - { id: 3, class: _ }
12 machineFunctionInfo: {}
13 body:             |
14   bb.1:
15     liveins: $q0, $q1
17     ; CHECK-LABEL: name: test_v2i64_eq
18     ; CHECK: liveins: $q0, $q1
19     ; CHECK: [[COPY:%[0-9]+]]:_(<2 x s64>) = COPY $q0
20     ; CHECK: [[COPY1:%[0-9]+]]:_(<2 x s64>) = COPY $q1
21     ; CHECK: [[ICMP:%[0-9]+]]:_(<2 x s64>) = G_ICMP intpred(eq), [[COPY]](<2 x s64>), [[COPY1]]
22     ; CHECK: [[TRUNC:%[0-9]+]]:_(<2 x s32>) = G_TRUNC [[ICMP]](<2 x s64>)
23     ; CHECK: $d0 = COPY [[TRUNC]](<2 x s32>)
24     ; CHECK: RET_ReallyLR implicit $d0
25     %0:_(<2 x s64>) = COPY $q0
26     %1:_(<2 x s64>) = COPY $q1
27     %2:_(<2 x s1>) = G_ICMP intpred(eq), %0(<2 x s64>), %1
28     %3:_(<2 x s32>) = G_ANYEXT %2(<2 x s1>)
29     $d0 = COPY %3(<2 x s32>)
30     RET_ReallyLR implicit $d0
32 ...
33 ---
34 name:            test_v4i32_eq
35 alignment:       4
36 tracksRegLiveness: true
37 registers:
38   - { id: 0, class: _ }
39   - { id: 1, class: _ }
40   - { id: 2, class: _ }
41   - { id: 3, class: _ }
42 machineFunctionInfo: {}
43 body:             |
44   bb.1:
45     liveins: $q0, $q1
47     ; CHECK-LABEL: name: test_v4i32_eq
48     ; CHECK: liveins: $q0, $q1
49     ; CHECK: [[COPY:%[0-9]+]]:_(<4 x s32>) = COPY $q0
50     ; CHECK: [[COPY1:%[0-9]+]]:_(<4 x s32>) = COPY $q1
51     ; CHECK: [[ICMP:%[0-9]+]]:_(<4 x s32>) = G_ICMP intpred(eq), [[COPY]](<4 x s32>), [[COPY1]]
52     ; CHECK: [[TRUNC:%[0-9]+]]:_(<4 x s16>) = G_TRUNC [[ICMP]](<4 x s32>)
53     ; CHECK: $d0 = COPY [[TRUNC]](<4 x s16>)
54     ; CHECK: RET_ReallyLR implicit $d0
55     %0:_(<4 x s32>) = COPY $q0
56     %1:_(<4 x s32>) = COPY $q1
57     %2:_(<4 x s1>) = G_ICMP intpred(eq), %0(<4 x s32>), %1
58     %3:_(<4 x s16>) = G_ANYEXT %2(<4 x s1>)
59     $d0 = COPY %3(<4 x s16>)
60     RET_ReallyLR implicit $d0
62 ...
63 ---
64 name:            test_v2i32_eq
65 alignment:       4
66 tracksRegLiveness: true
67 registers:
68   - { id: 0, class: _ }
69   - { id: 1, class: _ }
70   - { id: 2, class: _ }
71   - { id: 3, class: _ }
72 machineFunctionInfo: {}
73 body:             |
74   bb.1:
75     liveins: $d0, $d1
77     ; CHECK-LABEL: name: test_v2i32_eq
78     ; CHECK: liveins: $d0, $d1
79     ; CHECK: [[COPY:%[0-9]+]]:_(<2 x s32>) = COPY $d0
80     ; CHECK: [[COPY1:%[0-9]+]]:_(<2 x s32>) = COPY $d1
81     ; CHECK: [[ICMP:%[0-9]+]]:_(<2 x s32>) = G_ICMP intpred(eq), [[COPY]](<2 x s32>), [[COPY1]]
82     ; CHECK: [[COPY2:%[0-9]+]]:_(<2 x s32>) = COPY [[ICMP]](<2 x s32>)
83     ; CHECK: $d0 = COPY [[COPY2]](<2 x s32>)
84     ; CHECK: RET_ReallyLR implicit $d0
85     %0:_(<2 x s32>) = COPY $d0
86     %1:_(<2 x s32>) = COPY $d1
87     %2:_(<2 x s1>) = G_ICMP intpred(eq), %0(<2 x s32>), %1
88     %3:_(<2 x s32>) = G_ANYEXT %2(<2 x s1>)
89     $d0 = COPY %3(<2 x s32>)
90     RET_ReallyLR implicit $d0
92 ...
93 ---
94 name:            test_v8i16_eq
95 alignment:       4
96 tracksRegLiveness: true
97 registers:
98   - { id: 0, class: _ }
99   - { id: 1, class: _ }
100   - { id: 2, class: _ }
101   - { id: 3, class: _ }
102 machineFunctionInfo: {}
103 body:             |
104   bb.1:
105     liveins: $q0, $q1
107     ; CHECK-LABEL: name: test_v8i16_eq
108     ; CHECK: liveins: $q0, $q1
109     ; CHECK: [[COPY:%[0-9]+]]:_(<8 x s16>) = COPY $q0
110     ; CHECK: [[COPY1:%[0-9]+]]:_(<8 x s16>) = COPY $q1
111     ; CHECK: [[ICMP:%[0-9]+]]:_(<8 x s16>) = G_ICMP intpred(eq), [[COPY]](<8 x s16>), [[COPY1]]
112     ; CHECK: [[TRUNC:%[0-9]+]]:_(<8 x s8>) = G_TRUNC [[ICMP]](<8 x s16>)
113     ; CHECK: $d0 = COPY [[TRUNC]](<8 x s8>)
114     ; CHECK: RET_ReallyLR implicit $d0
115     %0:_(<8 x s16>) = COPY $q0
116     %1:_(<8 x s16>) = COPY $q1
117     %2:_(<8 x s1>) = G_ICMP intpred(eq), %0(<8 x s16>), %1
118     %3:_(<8 x s8>) = G_ANYEXT %2(<8 x s1>)
119     $d0 = COPY %3(<8 x s8>)
120     RET_ReallyLR implicit $d0
124 name:            test_v4i16_eq
125 alignment:       4
126 tracksRegLiveness: true
127 registers:
128   - { id: 0, class: _ }
129   - { id: 1, class: _ }
130   - { id: 2, class: _ }
131   - { id: 3, class: _ }
132 machineFunctionInfo: {}
133 body:             |
134   bb.1:
135     liveins: $d0, $d1
137     ; CHECK-LABEL: name: test_v4i16_eq
138     ; CHECK: liveins: $d0, $d1
139     ; CHECK: [[COPY:%[0-9]+]]:_(<4 x s16>) = COPY $d0
140     ; CHECK: [[COPY1:%[0-9]+]]:_(<4 x s16>) = COPY $d1
141     ; CHECK: [[ICMP:%[0-9]+]]:_(<4 x s16>) = G_ICMP intpred(eq), [[COPY]](<4 x s16>), [[COPY1]]
142     ; CHECK: [[COPY2:%[0-9]+]]:_(<4 x s16>) = COPY [[ICMP]](<4 x s16>)
143     ; CHECK: $d0 = COPY [[COPY2]](<4 x s16>)
144     ; CHECK: RET_ReallyLR implicit $d0
145     %0:_(<4 x s16>) = COPY $d0
146     %1:_(<4 x s16>) = COPY $d1
147     %2:_(<4 x s1>) = G_ICMP intpred(eq), %0(<4 x s16>), %1
148     %3:_(<4 x s16>) = G_ANYEXT %2(<4 x s1>)
149     $d0 = COPY %3(<4 x s16>)
150     RET_ReallyLR implicit $d0
154 name:            test_v16i8_eq
155 alignment:       4
156 tracksRegLiveness: true
157 registers:
158   - { id: 0, class: _ }
159   - { id: 1, class: _ }
160   - { id: 2, class: _ }
161   - { id: 3, class: _ }
162 machineFunctionInfo: {}
163 body:             |
164   bb.1:
165     liveins: $q0, $q1
167     ; CHECK-LABEL: name: test_v16i8_eq
168     ; CHECK: liveins: $q0, $q1
169     ; CHECK: [[COPY:%[0-9]+]]:_(<16 x s8>) = COPY $q0
170     ; CHECK: [[COPY1:%[0-9]+]]:_(<16 x s8>) = COPY $q1
171     ; CHECK: [[ICMP:%[0-9]+]]:_(<16 x s8>) = G_ICMP intpred(eq), [[COPY]](<16 x s8>), [[COPY1]]
172     ; CHECK: [[COPY2:%[0-9]+]]:_(<16 x s8>) = COPY [[ICMP]](<16 x s8>)
173     ; CHECK: $q0 = COPY [[COPY2]](<16 x s8>)
174     ; CHECK: RET_ReallyLR implicit $q0
175     %0:_(<16 x s8>) = COPY $q0
176     %1:_(<16 x s8>) = COPY $q1
177     %2:_(<16 x s1>) = G_ICMP intpred(eq), %0(<16 x s8>), %1
178     %3:_(<16 x s8>) = G_ANYEXT %2(<16 x s1>)
179     $q0 = COPY %3(<16 x s8>)
180     RET_ReallyLR implicit $q0
184 name:            test_v8i8_eq
185 alignment:       4
186 tracksRegLiveness: true
187 registers:
188   - { id: 0, class: _ }
189   - { id: 1, class: _ }
190   - { id: 2, class: _ }
191   - { id: 3, class: _ }
192 machineFunctionInfo: {}
193 body:             |
194   bb.1:
195     liveins: $d0, $d1
197     ; CHECK-LABEL: name: test_v8i8_eq
198     ; CHECK: liveins: $d0, $d1
199     ; CHECK: [[COPY:%[0-9]+]]:_(<8 x s8>) = COPY $d0
200     ; CHECK: [[COPY1:%[0-9]+]]:_(<8 x s8>) = COPY $d1
201     ; CHECK: [[ICMP:%[0-9]+]]:_(<8 x s8>) = G_ICMP intpred(eq), [[COPY]](<8 x s8>), [[COPY1]]
202     ; CHECK: [[COPY2:%[0-9]+]]:_(<8 x s8>) = COPY [[ICMP]](<8 x s8>)
203     ; CHECK: $d0 = COPY [[COPY2]](<8 x s8>)
204     ; CHECK: RET_ReallyLR implicit $d0
205     %0:_(<8 x s8>) = COPY $d0
206     %1:_(<8 x s8>) = COPY $d1
207     %2:_(<8 x s1>) = G_ICMP intpred(eq), %0(<8 x s8>), %1
208     %3:_(<8 x s8>) = G_ANYEXT %2(<8 x s1>)
209     $d0 = COPY %3(<8 x s8>)
210     RET_ReallyLR implicit $d0
214 name:            test_v2i64_ugt
215 alignment:       4
216 tracksRegLiveness: true
217 registers:
218   - { id: 0, class: _ }
219   - { id: 1, class: _ }
220   - { id: 2, class: _ }
221   - { id: 3, class: _ }
222 machineFunctionInfo: {}
223 body:             |
224   bb.1:
225     liveins: $q0, $q1
227     ; CHECK-LABEL: name: test_v2i64_ugt
228     ; CHECK: liveins: $q0, $q1
229     ; CHECK: [[COPY:%[0-9]+]]:_(<2 x s64>) = COPY $q0
230     ; CHECK: [[COPY1:%[0-9]+]]:_(<2 x s64>) = COPY $q1
231     ; CHECK: [[ICMP:%[0-9]+]]:_(<2 x s64>) = G_ICMP intpred(ugt), [[COPY]](<2 x s64>), [[COPY1]]
232     ; CHECK: [[TRUNC:%[0-9]+]]:_(<2 x s32>) = G_TRUNC [[ICMP]](<2 x s64>)
233     ; CHECK: $d0 = COPY [[TRUNC]](<2 x s32>)
234     ; CHECK: RET_ReallyLR implicit $d0
235     %0:_(<2 x s64>) = COPY $q0
236     %1:_(<2 x s64>) = COPY $q1
237     %2:_(<2 x s1>) = G_ICMP intpred(ugt), %0(<2 x s64>), %1
238     %3:_(<2 x s32>) = G_ANYEXT %2(<2 x s1>)
239     $d0 = COPY %3(<2 x s32>)
240     RET_ReallyLR implicit $d0
244 name:            test_v4i32_ugt
245 alignment:       4
246 tracksRegLiveness: true
247 registers:
248   - { id: 0, class: _ }
249   - { id: 1, class: _ }
250   - { id: 2, class: _ }
251   - { id: 3, class: _ }
252 machineFunctionInfo: {}
253 body:             |
254   bb.1:
255     liveins: $q0, $q1
257     ; CHECK-LABEL: name: test_v4i32_ugt
258     ; CHECK: liveins: $q0, $q1
259     ; CHECK: [[COPY:%[0-9]+]]:_(<4 x s32>) = COPY $q0
260     ; CHECK: [[COPY1:%[0-9]+]]:_(<4 x s32>) = COPY $q1
261     ; CHECK: [[ICMP:%[0-9]+]]:_(<4 x s32>) = G_ICMP intpred(ugt), [[COPY]](<4 x s32>), [[COPY1]]
262     ; CHECK: [[TRUNC:%[0-9]+]]:_(<4 x s16>) = G_TRUNC [[ICMP]](<4 x s32>)
263     ; CHECK: $d0 = COPY [[TRUNC]](<4 x s16>)
264     ; CHECK: RET_ReallyLR implicit $d0
265     %0:_(<4 x s32>) = COPY $q0
266     %1:_(<4 x s32>) = COPY $q1
267     %2:_(<4 x s1>) = G_ICMP intpred(ugt), %0(<4 x s32>), %1
268     %3:_(<4 x s16>) = G_ANYEXT %2(<4 x s1>)
269     $d0 = COPY %3(<4 x s16>)
270     RET_ReallyLR implicit $d0
274 name:            test_v2i32_ugt
275 alignment:       4
276 tracksRegLiveness: true
277 registers:
278   - { id: 0, class: _ }
279   - { id: 1, class: _ }
280   - { id: 2, class: _ }
281   - { id: 3, class: _ }
282 machineFunctionInfo: {}
283 body:             |
284   bb.1:
285     liveins: $d0, $d1
287     ; CHECK-LABEL: name: test_v2i32_ugt
288     ; CHECK: liveins: $d0, $d1
289     ; CHECK: [[COPY:%[0-9]+]]:_(<2 x s32>) = COPY $d0
290     ; CHECK: [[COPY1:%[0-9]+]]:_(<2 x s32>) = COPY $d1
291     ; CHECK: [[ICMP:%[0-9]+]]:_(<2 x s32>) = G_ICMP intpred(ugt), [[COPY]](<2 x s32>), [[COPY1]]
292     ; CHECK: [[COPY2:%[0-9]+]]:_(<2 x s32>) = COPY [[ICMP]](<2 x s32>)
293     ; CHECK: $d0 = COPY [[COPY2]](<2 x s32>)
294     ; CHECK: RET_ReallyLR implicit $d0
295     %0:_(<2 x s32>) = COPY $d0
296     %1:_(<2 x s32>) = COPY $d1
297     %2:_(<2 x s1>) = G_ICMP intpred(ugt), %0(<2 x s32>), %1
298     %3:_(<2 x s32>) = G_ANYEXT %2(<2 x s1>)
299     $d0 = COPY %3(<2 x s32>)
300     RET_ReallyLR implicit $d0
304 name:            test_v8i16_ugt
305 alignment:       4
306 tracksRegLiveness: true
307 registers:
308   - { id: 0, class: _ }
309   - { id: 1, class: _ }
310   - { id: 2, class: _ }
311   - { id: 3, class: _ }
312 machineFunctionInfo: {}
313 body:             |
314   bb.1:
315     liveins: $q0, $q1
317     ; CHECK-LABEL: name: test_v8i16_ugt
318     ; CHECK: liveins: $q0, $q1
319     ; CHECK: [[COPY:%[0-9]+]]:_(<8 x s16>) = COPY $q0
320     ; CHECK: [[COPY1:%[0-9]+]]:_(<8 x s16>) = COPY $q1
321     ; CHECK: [[ICMP:%[0-9]+]]:_(<8 x s16>) = G_ICMP intpred(ugt), [[COPY]](<8 x s16>), [[COPY1]]
322     ; CHECK: [[TRUNC:%[0-9]+]]:_(<8 x s8>) = G_TRUNC [[ICMP]](<8 x s16>)
323     ; CHECK: $d0 = COPY [[TRUNC]](<8 x s8>)
324     ; CHECK: RET_ReallyLR implicit $d0
325     %0:_(<8 x s16>) = COPY $q0
326     %1:_(<8 x s16>) = COPY $q1
327     %2:_(<8 x s1>) = G_ICMP intpred(ugt), %0(<8 x s16>), %1
328     %3:_(<8 x s8>) = G_ANYEXT %2(<8 x s1>)
329     $d0 = COPY %3(<8 x s8>)
330     RET_ReallyLR implicit $d0
334 name:            test_v4i16_ugt
335 alignment:       4
336 tracksRegLiveness: true
337 registers:
338   - { id: 0, class: _ }
339   - { id: 1, class: _ }
340   - { id: 2, class: _ }
341   - { id: 3, class: _ }
342 machineFunctionInfo: {}
343 body:             |
344   bb.1:
345     liveins: $d0, $d1
347     ; CHECK-LABEL: name: test_v4i16_ugt
348     ; CHECK: liveins: $d0, $d1
349     ; CHECK: [[COPY:%[0-9]+]]:_(<4 x s16>) = COPY $d0
350     ; CHECK: [[COPY1:%[0-9]+]]:_(<4 x s16>) = COPY $d1
351     ; CHECK: [[ICMP:%[0-9]+]]:_(<4 x s16>) = G_ICMP intpred(ugt), [[COPY]](<4 x s16>), [[COPY1]]
352     ; CHECK: [[COPY2:%[0-9]+]]:_(<4 x s16>) = COPY [[ICMP]](<4 x s16>)
353     ; CHECK: $d0 = COPY [[COPY2]](<4 x s16>)
354     ; CHECK: RET_ReallyLR implicit $d0
355     %0:_(<4 x s16>) = COPY $d0
356     %1:_(<4 x s16>) = COPY $d1
357     %2:_(<4 x s1>) = G_ICMP intpred(ugt), %0(<4 x s16>), %1
358     %3:_(<4 x s16>) = G_ANYEXT %2(<4 x s1>)
359     $d0 = COPY %3(<4 x s16>)
360     RET_ReallyLR implicit $d0
364 name:            test_v16i8_ugt
365 alignment:       4
366 tracksRegLiveness: true
367 registers:
368   - { id: 0, class: _ }
369   - { id: 1, class: _ }
370   - { id: 2, class: _ }
371   - { id: 3, class: _ }
372 machineFunctionInfo: {}
373 body:             |
374   bb.1:
375     liveins: $q0, $q1
377     ; CHECK-LABEL: name: test_v16i8_ugt
378     ; CHECK: liveins: $q0, $q1
379     ; CHECK: [[COPY:%[0-9]+]]:_(<16 x s8>) = COPY $q0
380     ; CHECK: [[COPY1:%[0-9]+]]:_(<16 x s8>) = COPY $q1
381     ; CHECK: [[ICMP:%[0-9]+]]:_(<16 x s8>) = G_ICMP intpred(ugt), [[COPY]](<16 x s8>), [[COPY1]]
382     ; CHECK: [[COPY2:%[0-9]+]]:_(<16 x s8>) = COPY [[ICMP]](<16 x s8>)
383     ; CHECK: $q0 = COPY [[COPY2]](<16 x s8>)
384     ; CHECK: RET_ReallyLR implicit $q0
385     %0:_(<16 x s8>) = COPY $q0
386     %1:_(<16 x s8>) = COPY $q1
387     %2:_(<16 x s1>) = G_ICMP intpred(ugt), %0(<16 x s8>), %1
388     %3:_(<16 x s8>) = G_ANYEXT %2(<16 x s1>)
389     $q0 = COPY %3(<16 x s8>)
390     RET_ReallyLR implicit $q0
394 name:            test_v8i8_ugt
395 alignment:       4
396 tracksRegLiveness: true
397 registers:
398   - { id: 0, class: _ }
399   - { id: 1, class: _ }
400   - { id: 2, class: _ }
401   - { id: 3, class: _ }
402 machineFunctionInfo: {}
403 body:             |
404   bb.1:
405     liveins: $d0, $d1
407     ; CHECK-LABEL: name: test_v8i8_ugt
408     ; CHECK: liveins: $d0, $d1
409     ; CHECK: [[COPY:%[0-9]+]]:_(<8 x s8>) = COPY $d0
410     ; CHECK: [[COPY1:%[0-9]+]]:_(<8 x s8>) = COPY $d1
411     ; CHECK: [[ICMP:%[0-9]+]]:_(<8 x s8>) = G_ICMP intpred(ugt), [[COPY]](<8 x s8>), [[COPY1]]
412     ; CHECK: [[COPY2:%[0-9]+]]:_(<8 x s8>) = COPY [[ICMP]](<8 x s8>)
413     ; CHECK: $d0 = COPY [[COPY2]](<8 x s8>)
414     ; CHECK: RET_ReallyLR implicit $d0
415     %0:_(<8 x s8>) = COPY $d0
416     %1:_(<8 x s8>) = COPY $d1
417     %2:_(<8 x s1>) = G_ICMP intpred(ugt), %0(<8 x s8>), %1
418     %3:_(<8 x s8>) = G_ANYEXT %2(<8 x s1>)
419     $d0 = COPY %3(<8 x s8>)
420     RET_ReallyLR implicit $d0
424 name:            test_v2i64_uge
425 alignment:       4
426 tracksRegLiveness: true
427 registers:
428   - { id: 0, class: _ }
429   - { id: 1, class: _ }
430   - { id: 2, class: _ }
431   - { id: 3, class: _ }
432 machineFunctionInfo: {}
433 body:             |
434   bb.1:
435     liveins: $q0, $q1
437     ; CHECK-LABEL: name: test_v2i64_uge
438     ; CHECK: liveins: $q0, $q1
439     ; CHECK: [[COPY:%[0-9]+]]:_(<2 x s64>) = COPY $q0
440     ; CHECK: [[COPY1:%[0-9]+]]:_(<2 x s64>) = COPY $q1
441     ; CHECK: [[ICMP:%[0-9]+]]:_(<2 x s64>) = G_ICMP intpred(uge), [[COPY]](<2 x s64>), [[COPY1]]
442     ; CHECK: [[TRUNC:%[0-9]+]]:_(<2 x s32>) = G_TRUNC [[ICMP]](<2 x s64>)
443     ; CHECK: $d0 = COPY [[TRUNC]](<2 x s32>)
444     ; CHECK: RET_ReallyLR implicit $d0
445     %0:_(<2 x s64>) = COPY $q0
446     %1:_(<2 x s64>) = COPY $q1
447     %2:_(<2 x s1>) = G_ICMP intpred(uge), %0(<2 x s64>), %1
448     %3:_(<2 x s32>) = G_ANYEXT %2(<2 x s1>)
449     $d0 = COPY %3(<2 x s32>)
450     RET_ReallyLR implicit $d0
454 name:            test_v4i32_uge
455 alignment:       4
456 tracksRegLiveness: true
457 registers:
458   - { id: 0, class: _ }
459   - { id: 1, class: _ }
460   - { id: 2, class: _ }
461   - { id: 3, class: _ }
462 machineFunctionInfo: {}
463 body:             |
464   bb.1:
465     liveins: $q0, $q1
467     ; CHECK-LABEL: name: test_v4i32_uge
468     ; CHECK: liveins: $q0, $q1
469     ; CHECK: [[COPY:%[0-9]+]]:_(<4 x s32>) = COPY $q0
470     ; CHECK: [[COPY1:%[0-9]+]]:_(<4 x s32>) = COPY $q1
471     ; CHECK: [[ICMP:%[0-9]+]]:_(<4 x s32>) = G_ICMP intpred(uge), [[COPY]](<4 x s32>), [[COPY1]]
472     ; CHECK: [[TRUNC:%[0-9]+]]:_(<4 x s16>) = G_TRUNC [[ICMP]](<4 x s32>)
473     ; CHECK: $d0 = COPY [[TRUNC]](<4 x s16>)
474     ; CHECK: RET_ReallyLR implicit $d0
475     %0:_(<4 x s32>) = COPY $q0
476     %1:_(<4 x s32>) = COPY $q1
477     %2:_(<4 x s1>) = G_ICMP intpred(uge), %0(<4 x s32>), %1
478     %3:_(<4 x s16>) = G_ANYEXT %2(<4 x s1>)
479     $d0 = COPY %3(<4 x s16>)
480     RET_ReallyLR implicit $d0
484 name:            test_v2i32_uge
485 alignment:       4
486 tracksRegLiveness: true
487 registers:
488   - { id: 0, class: _ }
489   - { id: 1, class: _ }
490   - { id: 2, class: _ }
491   - { id: 3, class: _ }
492 machineFunctionInfo: {}
493 body:             |
494   bb.1:
495     liveins: $d0, $d1
497     ; CHECK-LABEL: name: test_v2i32_uge
498     ; CHECK: liveins: $d0, $d1
499     ; CHECK: [[COPY:%[0-9]+]]:_(<2 x s32>) = COPY $d0
500     ; CHECK: [[COPY1:%[0-9]+]]:_(<2 x s32>) = COPY $d1
501     ; CHECK: [[ICMP:%[0-9]+]]:_(<2 x s32>) = G_ICMP intpred(uge), [[COPY]](<2 x s32>), [[COPY1]]
502     ; CHECK: [[COPY2:%[0-9]+]]:_(<2 x s32>) = COPY [[ICMP]](<2 x s32>)
503     ; CHECK: $d0 = COPY [[COPY2]](<2 x s32>)
504     ; CHECK: RET_ReallyLR implicit $d0
505     %0:_(<2 x s32>) = COPY $d0
506     %1:_(<2 x s32>) = COPY $d1
507     %2:_(<2 x s1>) = G_ICMP intpred(uge), %0(<2 x s32>), %1
508     %3:_(<2 x s32>) = G_ANYEXT %2(<2 x s1>)
509     $d0 = COPY %3(<2 x s32>)
510     RET_ReallyLR implicit $d0
514 name:            test_v8i16_uge
515 alignment:       4
516 tracksRegLiveness: true
517 registers:
518   - { id: 0, class: _ }
519   - { id: 1, class: _ }
520   - { id: 2, class: _ }
521   - { id: 3, class: _ }
522 machineFunctionInfo: {}
523 body:             |
524   bb.1:
525     liveins: $q0, $q1
527     ; CHECK-LABEL: name: test_v8i16_uge
528     ; CHECK: liveins: $q0, $q1
529     ; CHECK: [[COPY:%[0-9]+]]:_(<8 x s16>) = COPY $q0
530     ; CHECK: [[COPY1:%[0-9]+]]:_(<8 x s16>) = COPY $q1
531     ; CHECK: [[ICMP:%[0-9]+]]:_(<8 x s16>) = G_ICMP intpred(uge), [[COPY]](<8 x s16>), [[COPY1]]
532     ; CHECK: [[TRUNC:%[0-9]+]]:_(<8 x s8>) = G_TRUNC [[ICMP]](<8 x s16>)
533     ; CHECK: $d0 = COPY [[TRUNC]](<8 x s8>)
534     ; CHECK: RET_ReallyLR implicit $d0
535     %0:_(<8 x s16>) = COPY $q0
536     %1:_(<8 x s16>) = COPY $q1
537     %2:_(<8 x s1>) = G_ICMP intpred(uge), %0(<8 x s16>), %1
538     %3:_(<8 x s8>) = G_ANYEXT %2(<8 x s1>)
539     $d0 = COPY %3(<8 x s8>)
540     RET_ReallyLR implicit $d0
544 name:            test_v4i16_uge
545 alignment:       4
546 tracksRegLiveness: true
547 registers:
548   - { id: 0, class: _ }
549   - { id: 1, class: _ }
550   - { id: 2, class: _ }
551   - { id: 3, class: _ }
552 machineFunctionInfo: {}
553 body:             |
554   bb.1:
555     liveins: $d0, $d1
557     ; CHECK-LABEL: name: test_v4i16_uge
558     ; CHECK: liveins: $d0, $d1
559     ; CHECK: [[COPY:%[0-9]+]]:_(<4 x s16>) = COPY $d0
560     ; CHECK: [[COPY1:%[0-9]+]]:_(<4 x s16>) = COPY $d1
561     ; CHECK: [[ICMP:%[0-9]+]]:_(<4 x s16>) = G_ICMP intpred(uge), [[COPY]](<4 x s16>), [[COPY1]]
562     ; CHECK: [[COPY2:%[0-9]+]]:_(<4 x s16>) = COPY [[ICMP]](<4 x s16>)
563     ; CHECK: $d0 = COPY [[COPY2]](<4 x s16>)
564     ; CHECK: RET_ReallyLR implicit $d0
565     %0:_(<4 x s16>) = COPY $d0
566     %1:_(<4 x s16>) = COPY $d1
567     %2:_(<4 x s1>) = G_ICMP intpred(uge), %0(<4 x s16>), %1
568     %3:_(<4 x s16>) = G_ANYEXT %2(<4 x s1>)
569     $d0 = COPY %3(<4 x s16>)
570     RET_ReallyLR implicit $d0
574 name:            test_v16i8_uge
575 alignment:       4
576 tracksRegLiveness: true
577 registers:
578   - { id: 0, class: _ }
579   - { id: 1, class: _ }
580   - { id: 2, class: _ }
581   - { id: 3, class: _ }
582 machineFunctionInfo: {}
583 body:             |
584   bb.1:
585     liveins: $q0, $q1
587     ; CHECK-LABEL: name: test_v16i8_uge
588     ; CHECK: liveins: $q0, $q1
589     ; CHECK: [[COPY:%[0-9]+]]:_(<16 x s8>) = COPY $q0
590     ; CHECK: [[COPY1:%[0-9]+]]:_(<16 x s8>) = COPY $q1
591     ; CHECK: [[ICMP:%[0-9]+]]:_(<16 x s8>) = G_ICMP intpred(uge), [[COPY]](<16 x s8>), [[COPY1]]
592     ; CHECK: [[COPY2:%[0-9]+]]:_(<16 x s8>) = COPY [[ICMP]](<16 x s8>)
593     ; CHECK: $q0 = COPY [[COPY2]](<16 x s8>)
594     ; CHECK: RET_ReallyLR implicit $q0
595     %0:_(<16 x s8>) = COPY $q0
596     %1:_(<16 x s8>) = COPY $q1
597     %2:_(<16 x s1>) = G_ICMP intpred(uge), %0(<16 x s8>), %1
598     %3:_(<16 x s8>) = G_ANYEXT %2(<16 x s1>)
599     $q0 = COPY %3(<16 x s8>)
600     RET_ReallyLR implicit $q0
604 name:            test_v8i8_uge
605 alignment:       4
606 tracksRegLiveness: true
607 registers:
608   - { id: 0, class: _ }
609   - { id: 1, class: _ }
610   - { id: 2, class: _ }
611   - { id: 3, class: _ }
612 machineFunctionInfo: {}
613 body:             |
614   bb.1:
615     liveins: $d0, $d1
617     ; CHECK-LABEL: name: test_v8i8_uge
618     ; CHECK: liveins: $d0, $d1
619     ; CHECK: [[COPY:%[0-9]+]]:_(<8 x s8>) = COPY $d0
620     ; CHECK: [[COPY1:%[0-9]+]]:_(<8 x s8>) = COPY $d1
621     ; CHECK: [[ICMP:%[0-9]+]]:_(<8 x s8>) = G_ICMP intpred(uge), [[COPY]](<8 x s8>), [[COPY1]]
622     ; CHECK: [[COPY2:%[0-9]+]]:_(<8 x s8>) = COPY [[ICMP]](<8 x s8>)
623     ; CHECK: $d0 = COPY [[COPY2]](<8 x s8>)
624     ; CHECK: RET_ReallyLR implicit $d0
625     %0:_(<8 x s8>) = COPY $d0
626     %1:_(<8 x s8>) = COPY $d1
627     %2:_(<8 x s1>) = G_ICMP intpred(uge), %0(<8 x s8>), %1
628     %3:_(<8 x s8>) = G_ANYEXT %2(<8 x s1>)
629     $d0 = COPY %3(<8 x s8>)
630     RET_ReallyLR implicit $d0
634 name:            test_v2i64_ult
635 alignment:       4
636 tracksRegLiveness: true
637 registers:
638   - { id: 0, class: _ }
639   - { id: 1, class: _ }
640   - { id: 2, class: _ }
641   - { id: 3, class: _ }
642 machineFunctionInfo: {}
643 body:             |
644   bb.1:
645     liveins: $q0, $q1
647     ; CHECK-LABEL: name: test_v2i64_ult
648     ; CHECK: liveins: $q0, $q1
649     ; CHECK: [[COPY:%[0-9]+]]:_(<2 x s64>) = COPY $q0
650     ; CHECK: [[COPY1:%[0-9]+]]:_(<2 x s64>) = COPY $q1
651     ; CHECK: [[ICMP:%[0-9]+]]:_(<2 x s64>) = G_ICMP intpred(ult), [[COPY]](<2 x s64>), [[COPY1]]
652     ; CHECK: [[TRUNC:%[0-9]+]]:_(<2 x s32>) = G_TRUNC [[ICMP]](<2 x s64>)
653     ; CHECK: $d0 = COPY [[TRUNC]](<2 x s32>)
654     ; CHECK: RET_ReallyLR implicit $d0
655     %0:_(<2 x s64>) = COPY $q0
656     %1:_(<2 x s64>) = COPY $q1
657     %2:_(<2 x s1>) = G_ICMP intpred(ult), %0(<2 x s64>), %1
658     %3:_(<2 x s32>) = G_ANYEXT %2(<2 x s1>)
659     $d0 = COPY %3(<2 x s32>)
660     RET_ReallyLR implicit $d0
664 name:            test_v4i32_ult
665 alignment:       4
666 tracksRegLiveness: true
667 registers:
668   - { id: 0, class: _ }
669   - { id: 1, class: _ }
670   - { id: 2, class: _ }
671   - { id: 3, class: _ }
672 machineFunctionInfo: {}
673 body:             |
674   bb.1:
675     liveins: $q0, $q1
677     ; CHECK-LABEL: name: test_v4i32_ult
678     ; CHECK: liveins: $q0, $q1
679     ; CHECK: [[COPY:%[0-9]+]]:_(<4 x s32>) = COPY $q0
680     ; CHECK: [[COPY1:%[0-9]+]]:_(<4 x s32>) = COPY $q1
681     ; CHECK: [[ICMP:%[0-9]+]]:_(<4 x s32>) = G_ICMP intpred(ult), [[COPY]](<4 x s32>), [[COPY1]]
682     ; CHECK: [[TRUNC:%[0-9]+]]:_(<4 x s16>) = G_TRUNC [[ICMP]](<4 x s32>)
683     ; CHECK: $d0 = COPY [[TRUNC]](<4 x s16>)
684     ; CHECK: RET_ReallyLR implicit $d0
685     %0:_(<4 x s32>) = COPY $q0
686     %1:_(<4 x s32>) = COPY $q1
687     %2:_(<4 x s1>) = G_ICMP intpred(ult), %0(<4 x s32>), %1
688     %3:_(<4 x s16>) = G_ANYEXT %2(<4 x s1>)
689     $d0 = COPY %3(<4 x s16>)
690     RET_ReallyLR implicit $d0
694 name:            test_v2i32_ult
695 alignment:       4
696 tracksRegLiveness: true
697 registers:
698   - { id: 0, class: _ }
699   - { id: 1, class: _ }
700   - { id: 2, class: _ }
701   - { id: 3, class: _ }
702 machineFunctionInfo: {}
703 body:             |
704   bb.1:
705     liveins: $d0, $d1
707     ; CHECK-LABEL: name: test_v2i32_ult
708     ; CHECK: liveins: $d0, $d1
709     ; CHECK: [[COPY:%[0-9]+]]:_(<2 x s32>) = COPY $d0
710     ; CHECK: [[COPY1:%[0-9]+]]:_(<2 x s32>) = COPY $d1
711     ; CHECK: [[ICMP:%[0-9]+]]:_(<2 x s32>) = G_ICMP intpred(ult), [[COPY]](<2 x s32>), [[COPY1]]
712     ; CHECK: [[COPY2:%[0-9]+]]:_(<2 x s32>) = COPY [[ICMP]](<2 x s32>)
713     ; CHECK: $d0 = COPY [[COPY2]](<2 x s32>)
714     ; CHECK: RET_ReallyLR implicit $d0
715     %0:_(<2 x s32>) = COPY $d0
716     %1:_(<2 x s32>) = COPY $d1
717     %2:_(<2 x s1>) = G_ICMP intpred(ult), %0(<2 x s32>), %1
718     %3:_(<2 x s32>) = G_ANYEXT %2(<2 x s1>)
719     $d0 = COPY %3(<2 x s32>)
720     RET_ReallyLR implicit $d0
724 name:            test_v8i16_ult
725 alignment:       4
726 tracksRegLiveness: true
727 registers:
728   - { id: 0, class: _ }
729   - { id: 1, class: _ }
730   - { id: 2, class: _ }
731   - { id: 3, class: _ }
732 machineFunctionInfo: {}
733 body:             |
734   bb.1:
735     liveins: $q0, $q1
737     ; CHECK-LABEL: name: test_v8i16_ult
738     ; CHECK: liveins: $q0, $q1
739     ; CHECK: [[COPY:%[0-9]+]]:_(<8 x s16>) = COPY $q0
740     ; CHECK: [[COPY1:%[0-9]+]]:_(<8 x s16>) = COPY $q1
741     ; CHECK: [[ICMP:%[0-9]+]]:_(<8 x s16>) = G_ICMP intpred(ult), [[COPY]](<8 x s16>), [[COPY1]]
742     ; CHECK: [[TRUNC:%[0-9]+]]:_(<8 x s8>) = G_TRUNC [[ICMP]](<8 x s16>)
743     ; CHECK: $d0 = COPY [[TRUNC]](<8 x s8>)
744     ; CHECK: RET_ReallyLR implicit $d0
745     %0:_(<8 x s16>) = COPY $q0
746     %1:_(<8 x s16>) = COPY $q1
747     %2:_(<8 x s1>) = G_ICMP intpred(ult), %0(<8 x s16>), %1
748     %3:_(<8 x s8>) = G_ANYEXT %2(<8 x s1>)
749     $d0 = COPY %3(<8 x s8>)
750     RET_ReallyLR implicit $d0
754 name:            test_v4i16_ult
755 alignment:       4
756 tracksRegLiveness: true
757 registers:
758   - { id: 0, class: _ }
759   - { id: 1, class: _ }
760   - { id: 2, class: _ }
761   - { id: 3, class: _ }
762 machineFunctionInfo: {}
763 body:             |
764   bb.1:
765     liveins: $d0, $d1
767     ; CHECK-LABEL: name: test_v4i16_ult
768     ; CHECK: liveins: $d0, $d1
769     ; CHECK: [[COPY:%[0-9]+]]:_(<4 x s16>) = COPY $d0
770     ; CHECK: [[COPY1:%[0-9]+]]:_(<4 x s16>) = COPY $d1
771     ; CHECK: [[ICMP:%[0-9]+]]:_(<4 x s16>) = G_ICMP intpred(ult), [[COPY]](<4 x s16>), [[COPY1]]
772     ; CHECK: [[COPY2:%[0-9]+]]:_(<4 x s16>) = COPY [[ICMP]](<4 x s16>)
773     ; CHECK: $d0 = COPY [[COPY2]](<4 x s16>)
774     ; CHECK: RET_ReallyLR implicit $d0
775     %0:_(<4 x s16>) = COPY $d0
776     %1:_(<4 x s16>) = COPY $d1
777     %2:_(<4 x s1>) = G_ICMP intpred(ult), %0(<4 x s16>), %1
778     %3:_(<4 x s16>) = G_ANYEXT %2(<4 x s1>)
779     $d0 = COPY %3(<4 x s16>)
780     RET_ReallyLR implicit $d0
784 name:            test_v16i8_ult
785 alignment:       4
786 tracksRegLiveness: true
787 registers:
788   - { id: 0, class: _ }
789   - { id: 1, class: _ }
790   - { id: 2, class: _ }
791   - { id: 3, class: _ }
792 machineFunctionInfo: {}
793 body:             |
794   bb.1:
795     liveins: $q0, $q1
797     ; CHECK-LABEL: name: test_v16i8_ult
798     ; CHECK: liveins: $q0, $q1
799     ; CHECK: [[COPY:%[0-9]+]]:_(<16 x s8>) = COPY $q0
800     ; CHECK: [[COPY1:%[0-9]+]]:_(<16 x s8>) = COPY $q1
801     ; CHECK: [[ICMP:%[0-9]+]]:_(<16 x s8>) = G_ICMP intpred(ult), [[COPY]](<16 x s8>), [[COPY1]]
802     ; CHECK: [[COPY2:%[0-9]+]]:_(<16 x s8>) = COPY [[ICMP]](<16 x s8>)
803     ; CHECK: $q0 = COPY [[COPY2]](<16 x s8>)
804     ; CHECK: RET_ReallyLR implicit $q0
805     %0:_(<16 x s8>) = COPY $q0
806     %1:_(<16 x s8>) = COPY $q1
807     %2:_(<16 x s1>) = G_ICMP intpred(ult), %0(<16 x s8>), %1
808     %3:_(<16 x s8>) = G_ANYEXT %2(<16 x s1>)
809     $q0 = COPY %3(<16 x s8>)
810     RET_ReallyLR implicit $q0
814 name:            test_v8i8_ult
815 alignment:       4
816 tracksRegLiveness: true
817 registers:
818   - { id: 0, class: _ }
819   - { id: 1, class: _ }
820   - { id: 2, class: _ }
821   - { id: 3, class: _ }
822 machineFunctionInfo: {}
823 body:             |
824   bb.1:
825     liveins: $d0, $d1
827     ; CHECK-LABEL: name: test_v8i8_ult
828     ; CHECK: liveins: $d0, $d1
829     ; CHECK: [[COPY:%[0-9]+]]:_(<8 x s8>) = COPY $d0
830     ; CHECK: [[COPY1:%[0-9]+]]:_(<8 x s8>) = COPY $d1
831     ; CHECK: [[ICMP:%[0-9]+]]:_(<8 x s8>) = G_ICMP intpred(ult), [[COPY]](<8 x s8>), [[COPY1]]
832     ; CHECK: [[COPY2:%[0-9]+]]:_(<8 x s8>) = COPY [[ICMP]](<8 x s8>)
833     ; CHECK: $d0 = COPY [[COPY2]](<8 x s8>)
834     ; CHECK: RET_ReallyLR implicit $d0
835     %0:_(<8 x s8>) = COPY $d0
836     %1:_(<8 x s8>) = COPY $d1
837     %2:_(<8 x s1>) = G_ICMP intpred(ult), %0(<8 x s8>), %1
838     %3:_(<8 x s8>) = G_ANYEXT %2(<8 x s1>)
839     $d0 = COPY %3(<8 x s8>)
840     RET_ReallyLR implicit $d0
844 name:            test_v2i64_ule
845 alignment:       4
846 tracksRegLiveness: true
847 registers:
848   - { id: 0, class: _ }
849   - { id: 1, class: _ }
850   - { id: 2, class: _ }
851   - { id: 3, class: _ }
852 machineFunctionInfo: {}
853 body:             |
854   bb.1:
855     liveins: $q0, $q1
857     ; CHECK-LABEL: name: test_v2i64_ule
858     ; CHECK: liveins: $q0, $q1
859     ; CHECK: [[COPY:%[0-9]+]]:_(<2 x s64>) = COPY $q0
860     ; CHECK: [[COPY1:%[0-9]+]]:_(<2 x s64>) = COPY $q1
861     ; CHECK: [[ICMP:%[0-9]+]]:_(<2 x s64>) = G_ICMP intpred(ule), [[COPY]](<2 x s64>), [[COPY1]]
862     ; CHECK: [[TRUNC:%[0-9]+]]:_(<2 x s32>) = G_TRUNC [[ICMP]](<2 x s64>)
863     ; CHECK: $d0 = COPY [[TRUNC]](<2 x s32>)
864     ; CHECK: RET_ReallyLR implicit $d0
865     %0:_(<2 x s64>) = COPY $q0
866     %1:_(<2 x s64>) = COPY $q1
867     %2:_(<2 x s1>) = G_ICMP intpred(ule), %0(<2 x s64>), %1
868     %3:_(<2 x s32>) = G_ANYEXT %2(<2 x s1>)
869     $d0 = COPY %3(<2 x s32>)
870     RET_ReallyLR implicit $d0
874 name:            test_v4i32_ule
875 alignment:       4
876 tracksRegLiveness: true
877 registers:
878   - { id: 0, class: _ }
879   - { id: 1, class: _ }
880   - { id: 2, class: _ }
881   - { id: 3, class: _ }
882 machineFunctionInfo: {}
883 body:             |
884   bb.1:
885     liveins: $q0, $q1
887     ; CHECK-LABEL: name: test_v4i32_ule
888     ; CHECK: liveins: $q0, $q1
889     ; CHECK: [[COPY:%[0-9]+]]:_(<4 x s32>) = COPY $q0
890     ; CHECK: [[COPY1:%[0-9]+]]:_(<4 x s32>) = COPY $q1
891     ; CHECK: [[ICMP:%[0-9]+]]:_(<4 x s32>) = G_ICMP intpred(ule), [[COPY]](<4 x s32>), [[COPY1]]
892     ; CHECK: [[TRUNC:%[0-9]+]]:_(<4 x s16>) = G_TRUNC [[ICMP]](<4 x s32>)
893     ; CHECK: $d0 = COPY [[TRUNC]](<4 x s16>)
894     ; CHECK: RET_ReallyLR implicit $d0
895     %0:_(<4 x s32>) = COPY $q0
896     %1:_(<4 x s32>) = COPY $q1
897     %2:_(<4 x s1>) = G_ICMP intpred(ule), %0(<4 x s32>), %1
898     %3:_(<4 x s16>) = G_ANYEXT %2(<4 x s1>)
899     $d0 = COPY %3(<4 x s16>)
900     RET_ReallyLR implicit $d0
904 name:            test_v2i32_ule
905 alignment:       4
906 tracksRegLiveness: true
907 registers:
908   - { id: 0, class: _ }
909   - { id: 1, class: _ }
910   - { id: 2, class: _ }
911   - { id: 3, class: _ }
912 machineFunctionInfo: {}
913 body:             |
914   bb.1:
915     liveins: $d0, $d1
917     ; CHECK-LABEL: name: test_v2i32_ule
918     ; CHECK: liveins: $d0, $d1
919     ; CHECK: [[COPY:%[0-9]+]]:_(<2 x s32>) = COPY $d0
920     ; CHECK: [[COPY1:%[0-9]+]]:_(<2 x s32>) = COPY $d1
921     ; CHECK: [[ICMP:%[0-9]+]]:_(<2 x s32>) = G_ICMP intpred(ule), [[COPY]](<2 x s32>), [[COPY1]]
922     ; CHECK: [[COPY2:%[0-9]+]]:_(<2 x s32>) = COPY [[ICMP]](<2 x s32>)
923     ; CHECK: $d0 = COPY [[COPY2]](<2 x s32>)
924     ; CHECK: RET_ReallyLR implicit $d0
925     %0:_(<2 x s32>) = COPY $d0
926     %1:_(<2 x s32>) = COPY $d1
927     %2:_(<2 x s1>) = G_ICMP intpred(ule), %0(<2 x s32>), %1
928     %3:_(<2 x s32>) = G_ANYEXT %2(<2 x s1>)
929     $d0 = COPY %3(<2 x s32>)
930     RET_ReallyLR implicit $d0
934 name:            test_v8i16_ule
935 alignment:       4
936 tracksRegLiveness: true
937 registers:
938   - { id: 0, class: _ }
939   - { id: 1, class: _ }
940   - { id: 2, class: _ }
941   - { id: 3, class: _ }
942 machineFunctionInfo: {}
943 body:             |
944   bb.1:
945     liveins: $q0, $q1
947     ; CHECK-LABEL: name: test_v8i16_ule
948     ; CHECK: liveins: $q0, $q1
949     ; CHECK: [[COPY:%[0-9]+]]:_(<8 x s16>) = COPY $q0
950     ; CHECK: [[COPY1:%[0-9]+]]:_(<8 x s16>) = COPY $q1
951     ; CHECK: [[ICMP:%[0-9]+]]:_(<8 x s16>) = G_ICMP intpred(ule), [[COPY]](<8 x s16>), [[COPY1]]
952     ; CHECK: [[TRUNC:%[0-9]+]]:_(<8 x s8>) = G_TRUNC [[ICMP]](<8 x s16>)
953     ; CHECK: $d0 = COPY [[TRUNC]](<8 x s8>)
954     ; CHECK: RET_ReallyLR implicit $d0
955     %0:_(<8 x s16>) = COPY $q0
956     %1:_(<8 x s16>) = COPY $q1
957     %2:_(<8 x s1>) = G_ICMP intpred(ule), %0(<8 x s16>), %1
958     %3:_(<8 x s8>) = G_ANYEXT %2(<8 x s1>)
959     $d0 = COPY %3(<8 x s8>)
960     RET_ReallyLR implicit $d0
964 name:            test_v4i16_ule
965 alignment:       4
966 tracksRegLiveness: true
967 registers:
968   - { id: 0, class: _ }
969   - { id: 1, class: _ }
970   - { id: 2, class: _ }
971   - { id: 3, class: _ }
972 machineFunctionInfo: {}
973 body:             |
974   bb.1:
975     liveins: $d0, $d1
977     ; CHECK-LABEL: name: test_v4i16_ule
978     ; CHECK: liveins: $d0, $d1
979     ; CHECK: [[COPY:%[0-9]+]]:_(<4 x s16>) = COPY $d0
980     ; CHECK: [[COPY1:%[0-9]+]]:_(<4 x s16>) = COPY $d1
981     ; CHECK: [[ICMP:%[0-9]+]]:_(<4 x s16>) = G_ICMP intpred(ule), [[COPY]](<4 x s16>), [[COPY1]]
982     ; CHECK: [[COPY2:%[0-9]+]]:_(<4 x s16>) = COPY [[ICMP]](<4 x s16>)
983     ; CHECK: $d0 = COPY [[COPY2]](<4 x s16>)
984     ; CHECK: RET_ReallyLR implicit $d0
985     %0:_(<4 x s16>) = COPY $d0
986     %1:_(<4 x s16>) = COPY $d1
987     %2:_(<4 x s1>) = G_ICMP intpred(ule), %0(<4 x s16>), %1
988     %3:_(<4 x s16>) = G_ANYEXT %2(<4 x s1>)
989     $d0 = COPY %3(<4 x s16>)
990     RET_ReallyLR implicit $d0
994 name:            test_v16i8_ule
995 alignment:       4
996 tracksRegLiveness: true
997 registers:
998   - { id: 0, class: _ }
999   - { id: 1, class: _ }
1000   - { id: 2, class: _ }
1001   - { id: 3, class: _ }
1002 machineFunctionInfo: {}
1003 body:             |
1004   bb.1:
1005     liveins: $q0, $q1
1007     ; CHECK-LABEL: name: test_v16i8_ule
1008     ; CHECK: liveins: $q0, $q1
1009     ; CHECK: [[COPY:%[0-9]+]]:_(<16 x s8>) = COPY $q0
1010     ; CHECK: [[COPY1:%[0-9]+]]:_(<16 x s8>) = COPY $q1
1011     ; CHECK: [[ICMP:%[0-9]+]]:_(<16 x s8>) = G_ICMP intpred(ule), [[COPY]](<16 x s8>), [[COPY1]]
1012     ; CHECK: [[COPY2:%[0-9]+]]:_(<16 x s8>) = COPY [[ICMP]](<16 x s8>)
1013     ; CHECK: $q0 = COPY [[COPY2]](<16 x s8>)
1014     ; CHECK: RET_ReallyLR implicit $q0
1015     %0:_(<16 x s8>) = COPY $q0
1016     %1:_(<16 x s8>) = COPY $q1
1017     %2:_(<16 x s1>) = G_ICMP intpred(ule), %0(<16 x s8>), %1
1018     %3:_(<16 x s8>) = G_ANYEXT %2(<16 x s1>)
1019     $q0 = COPY %3(<16 x s8>)
1020     RET_ReallyLR implicit $q0
1024 name:            test_v8i8_ule
1025 alignment:       4
1026 tracksRegLiveness: true
1027 registers:
1028   - { id: 0, class: _ }
1029   - { id: 1, class: _ }
1030   - { id: 2, class: _ }
1031   - { id: 3, class: _ }
1032 machineFunctionInfo: {}
1033 body:             |
1034   bb.1:
1035     liveins: $d0, $d1
1037     ; CHECK-LABEL: name: test_v8i8_ule
1038     ; CHECK: liveins: $d0, $d1
1039     ; CHECK: [[COPY:%[0-9]+]]:_(<8 x s8>) = COPY $d0
1040     ; CHECK: [[COPY1:%[0-9]+]]:_(<8 x s8>) = COPY $d1
1041     ; CHECK: [[ICMP:%[0-9]+]]:_(<8 x s8>) = G_ICMP intpred(ule), [[COPY]](<8 x s8>), [[COPY1]]
1042     ; CHECK: [[COPY2:%[0-9]+]]:_(<8 x s8>) = COPY [[ICMP]](<8 x s8>)
1043     ; CHECK: $d0 = COPY [[COPY2]](<8 x s8>)
1044     ; CHECK: RET_ReallyLR implicit $d0
1045     %0:_(<8 x s8>) = COPY $d0
1046     %1:_(<8 x s8>) = COPY $d1
1047     %2:_(<8 x s1>) = G_ICMP intpred(ule), %0(<8 x s8>), %1
1048     %3:_(<8 x s8>) = G_ANYEXT %2(<8 x s1>)
1049     $d0 = COPY %3(<8 x s8>)
1050     RET_ReallyLR implicit $d0
1054 name:            test_v2i64_sgt
1055 alignment:       4
1056 tracksRegLiveness: true
1057 registers:
1058   - { id: 0, class: _ }
1059   - { id: 1, class: _ }
1060   - { id: 2, class: _ }
1061   - { id: 3, class: _ }
1062 machineFunctionInfo: {}
1063 body:             |
1064   bb.1:
1065     liveins: $q0, $q1
1067     ; CHECK-LABEL: name: test_v2i64_sgt
1068     ; CHECK: liveins: $q0, $q1
1069     ; CHECK: [[COPY:%[0-9]+]]:_(<2 x s64>) = COPY $q0
1070     ; CHECK: [[COPY1:%[0-9]+]]:_(<2 x s64>) = COPY $q1
1071     ; CHECK: [[ICMP:%[0-9]+]]:_(<2 x s64>) = G_ICMP intpred(sgt), [[COPY]](<2 x s64>), [[COPY1]]
1072     ; CHECK: [[TRUNC:%[0-9]+]]:_(<2 x s32>) = G_TRUNC [[ICMP]](<2 x s64>)
1073     ; CHECK: $d0 = COPY [[TRUNC]](<2 x s32>)
1074     ; CHECK: RET_ReallyLR implicit $d0
1075     %0:_(<2 x s64>) = COPY $q0
1076     %1:_(<2 x s64>) = COPY $q1
1077     %2:_(<2 x s1>) = G_ICMP intpred(sgt), %0(<2 x s64>), %1
1078     %3:_(<2 x s32>) = G_ANYEXT %2(<2 x s1>)
1079     $d0 = COPY %3(<2 x s32>)
1080     RET_ReallyLR implicit $d0
1084 name:            test_v4i32_sgt
1085 alignment:       4
1086 tracksRegLiveness: true
1087 registers:
1088   - { id: 0, class: _ }
1089   - { id: 1, class: _ }
1090   - { id: 2, class: _ }
1091   - { id: 3, class: _ }
1092 machineFunctionInfo: {}
1093 body:             |
1094   bb.1:
1095     liveins: $q0, $q1
1097     ; CHECK-LABEL: name: test_v4i32_sgt
1098     ; CHECK: liveins: $q0, $q1
1099     ; CHECK: [[COPY:%[0-9]+]]:_(<4 x s32>) = COPY $q0
1100     ; CHECK: [[COPY1:%[0-9]+]]:_(<4 x s32>) = COPY $q1
1101     ; CHECK: [[ICMP:%[0-9]+]]:_(<4 x s32>) = G_ICMP intpred(sgt), [[COPY]](<4 x s32>), [[COPY1]]
1102     ; CHECK: [[TRUNC:%[0-9]+]]:_(<4 x s16>) = G_TRUNC [[ICMP]](<4 x s32>)
1103     ; CHECK: $d0 = COPY [[TRUNC]](<4 x s16>)
1104     ; CHECK: RET_ReallyLR implicit $d0
1105     %0:_(<4 x s32>) = COPY $q0
1106     %1:_(<4 x s32>) = COPY $q1
1107     %2:_(<4 x s1>) = G_ICMP intpred(sgt), %0(<4 x s32>), %1
1108     %3:_(<4 x s16>) = G_ANYEXT %2(<4 x s1>)
1109     $d0 = COPY %3(<4 x s16>)
1110     RET_ReallyLR implicit $d0
1114 name:            test_v2i32_sgt
1115 alignment:       4
1116 tracksRegLiveness: true
1117 registers:
1118   - { id: 0, class: _ }
1119   - { id: 1, class: _ }
1120   - { id: 2, class: _ }
1121   - { id: 3, class: _ }
1122 machineFunctionInfo: {}
1123 body:             |
1124   bb.1:
1125     liveins: $d0, $d1
1127     ; CHECK-LABEL: name: test_v2i32_sgt
1128     ; CHECK: liveins: $d0, $d1
1129     ; CHECK: [[COPY:%[0-9]+]]:_(<2 x s32>) = COPY $d0
1130     ; CHECK: [[COPY1:%[0-9]+]]:_(<2 x s32>) = COPY $d1
1131     ; CHECK: [[ICMP:%[0-9]+]]:_(<2 x s32>) = G_ICMP intpred(sgt), [[COPY]](<2 x s32>), [[COPY1]]
1132     ; CHECK: [[COPY2:%[0-9]+]]:_(<2 x s32>) = COPY [[ICMP]](<2 x s32>)
1133     ; CHECK: $d0 = COPY [[COPY2]](<2 x s32>)
1134     ; CHECK: RET_ReallyLR implicit $d0
1135     %0:_(<2 x s32>) = COPY $d0
1136     %1:_(<2 x s32>) = COPY $d1
1137     %2:_(<2 x s1>) = G_ICMP intpred(sgt), %0(<2 x s32>), %1
1138     %3:_(<2 x s32>) = G_ANYEXT %2(<2 x s1>)
1139     $d0 = COPY %3(<2 x s32>)
1140     RET_ReallyLR implicit $d0
1144 name:            test_v8i16_sgt
1145 alignment:       4
1146 tracksRegLiveness: true
1147 registers:
1148   - { id: 0, class: _ }
1149   - { id: 1, class: _ }
1150   - { id: 2, class: _ }
1151   - { id: 3, class: _ }
1152 machineFunctionInfo: {}
1153 body:             |
1154   bb.1:
1155     liveins: $q0, $q1
1157     ; CHECK-LABEL: name: test_v8i16_sgt
1158     ; CHECK: liveins: $q0, $q1
1159     ; CHECK: [[COPY:%[0-9]+]]:_(<8 x s16>) = COPY $q0
1160     ; CHECK: [[COPY1:%[0-9]+]]:_(<8 x s16>) = COPY $q1
1161     ; CHECK: [[ICMP:%[0-9]+]]:_(<8 x s16>) = G_ICMP intpred(sgt), [[COPY]](<8 x s16>), [[COPY1]]
1162     ; CHECK: [[TRUNC:%[0-9]+]]:_(<8 x s8>) = G_TRUNC [[ICMP]](<8 x s16>)
1163     ; CHECK: $d0 = COPY [[TRUNC]](<8 x s8>)
1164     ; CHECK: RET_ReallyLR implicit $d0
1165     %0:_(<8 x s16>) = COPY $q0
1166     %1:_(<8 x s16>) = COPY $q1
1167     %2:_(<8 x s1>) = G_ICMP intpred(sgt), %0(<8 x s16>), %1
1168     %3:_(<8 x s8>) = G_ANYEXT %2(<8 x s1>)
1169     $d0 = COPY %3(<8 x s8>)
1170     RET_ReallyLR implicit $d0
1174 name:            test_v4i16_sgt
1175 alignment:       4
1176 tracksRegLiveness: true
1177 registers:
1178   - { id: 0, class: _ }
1179   - { id: 1, class: _ }
1180   - { id: 2, class: _ }
1181   - { id: 3, class: _ }
1182 machineFunctionInfo: {}
1183 body:             |
1184   bb.1:
1185     liveins: $d0, $d1
1187     ; CHECK-LABEL: name: test_v4i16_sgt
1188     ; CHECK: liveins: $d0, $d1
1189     ; CHECK: [[COPY:%[0-9]+]]:_(<4 x s16>) = COPY $d0
1190     ; CHECK: [[COPY1:%[0-9]+]]:_(<4 x s16>) = COPY $d1
1191     ; CHECK: [[ICMP:%[0-9]+]]:_(<4 x s16>) = G_ICMP intpred(sgt), [[COPY]](<4 x s16>), [[COPY1]]
1192     ; CHECK: [[COPY2:%[0-9]+]]:_(<4 x s16>) = COPY [[ICMP]](<4 x s16>)
1193     ; CHECK: $d0 = COPY [[COPY2]](<4 x s16>)
1194     ; CHECK: RET_ReallyLR implicit $d0
1195     %0:_(<4 x s16>) = COPY $d0
1196     %1:_(<4 x s16>) = COPY $d1
1197     %2:_(<4 x s1>) = G_ICMP intpred(sgt), %0(<4 x s16>), %1
1198     %3:_(<4 x s16>) = G_ANYEXT %2(<4 x s1>)
1199     $d0 = COPY %3(<4 x s16>)
1200     RET_ReallyLR implicit $d0
1204 name:            test_v16i8_sgt
1205 alignment:       4
1206 tracksRegLiveness: true
1207 registers:
1208   - { id: 0, class: _ }
1209   - { id: 1, class: _ }
1210   - { id: 2, class: _ }
1211   - { id: 3, class: _ }
1212 machineFunctionInfo: {}
1213 body:             |
1214   bb.1:
1215     liveins: $q0, $q1
1217     ; CHECK-LABEL: name: test_v16i8_sgt
1218     ; CHECK: liveins: $q0, $q1
1219     ; CHECK: [[COPY:%[0-9]+]]:_(<16 x s8>) = COPY $q0
1220     ; CHECK: [[COPY1:%[0-9]+]]:_(<16 x s8>) = COPY $q1
1221     ; CHECK: [[ICMP:%[0-9]+]]:_(<16 x s8>) = G_ICMP intpred(sgt), [[COPY]](<16 x s8>), [[COPY1]]
1222     ; CHECK: [[COPY2:%[0-9]+]]:_(<16 x s8>) = COPY [[ICMP]](<16 x s8>)
1223     ; CHECK: $q0 = COPY [[COPY2]](<16 x s8>)
1224     ; CHECK: RET_ReallyLR implicit $q0
1225     %0:_(<16 x s8>) = COPY $q0
1226     %1:_(<16 x s8>) = COPY $q1
1227     %2:_(<16 x s1>) = G_ICMP intpred(sgt), %0(<16 x s8>), %1
1228     %3:_(<16 x s8>) = G_ANYEXT %2(<16 x s1>)
1229     $q0 = COPY %3(<16 x s8>)
1230     RET_ReallyLR implicit $q0
1234 name:            test_v8i8_sgt
1235 alignment:       4
1236 tracksRegLiveness: true
1237 registers:
1238   - { id: 0, class: _ }
1239   - { id: 1, class: _ }
1240   - { id: 2, class: _ }
1241   - { id: 3, class: _ }
1242 machineFunctionInfo: {}
1243 body:             |
1244   bb.1:
1245     liveins: $d0, $d1
1247     ; CHECK-LABEL: name: test_v8i8_sgt
1248     ; CHECK: liveins: $d0, $d1
1249     ; CHECK: [[COPY:%[0-9]+]]:_(<8 x s8>) = COPY $d0
1250     ; CHECK: [[COPY1:%[0-9]+]]:_(<8 x s8>) = COPY $d1
1251     ; CHECK: [[ICMP:%[0-9]+]]:_(<8 x s8>) = G_ICMP intpred(sgt), [[COPY]](<8 x s8>), [[COPY1]]
1252     ; CHECK: [[COPY2:%[0-9]+]]:_(<8 x s8>) = COPY [[ICMP]](<8 x s8>)
1253     ; CHECK: $d0 = COPY [[COPY2]](<8 x s8>)
1254     ; CHECK: RET_ReallyLR implicit $d0
1255     %0:_(<8 x s8>) = COPY $d0
1256     %1:_(<8 x s8>) = COPY $d1
1257     %2:_(<8 x s1>) = G_ICMP intpred(sgt), %0(<8 x s8>), %1
1258     %3:_(<8 x s8>) = G_ANYEXT %2(<8 x s1>)
1259     $d0 = COPY %3(<8 x s8>)
1260     RET_ReallyLR implicit $d0
1264 name:            test_v2i64_sge
1265 alignment:       4
1266 tracksRegLiveness: true
1267 registers:
1268   - { id: 0, class: _ }
1269   - { id: 1, class: _ }
1270   - { id: 2, class: _ }
1271   - { id: 3, class: _ }
1272 machineFunctionInfo: {}
1273 body:             |
1274   bb.1:
1275     liveins: $q0, $q1
1277     ; CHECK-LABEL: name: test_v2i64_sge
1278     ; CHECK: liveins: $q0, $q1
1279     ; CHECK: [[COPY:%[0-9]+]]:_(<2 x s64>) = COPY $q0
1280     ; CHECK: [[COPY1:%[0-9]+]]:_(<2 x s64>) = COPY $q1
1281     ; CHECK: [[ICMP:%[0-9]+]]:_(<2 x s64>) = G_ICMP intpred(sge), [[COPY]](<2 x s64>), [[COPY1]]
1282     ; CHECK: [[TRUNC:%[0-9]+]]:_(<2 x s32>) = G_TRUNC [[ICMP]](<2 x s64>)
1283     ; CHECK: $d0 = COPY [[TRUNC]](<2 x s32>)
1284     ; CHECK: RET_ReallyLR implicit $d0
1285     %0:_(<2 x s64>) = COPY $q0
1286     %1:_(<2 x s64>) = COPY $q1
1287     %2:_(<2 x s1>) = G_ICMP intpred(sge), %0(<2 x s64>), %1
1288     %3:_(<2 x s32>) = G_ANYEXT %2(<2 x s1>)
1289     $d0 = COPY %3(<2 x s32>)
1290     RET_ReallyLR implicit $d0
1294 name:            test_v4i32_sge
1295 alignment:       4
1296 tracksRegLiveness: true
1297 registers:
1298   - { id: 0, class: _ }
1299   - { id: 1, class: _ }
1300   - { id: 2, class: _ }
1301   - { id: 3, class: _ }
1302 machineFunctionInfo: {}
1303 body:             |
1304   bb.1:
1305     liveins: $q0, $q1
1307     ; CHECK-LABEL: name: test_v4i32_sge
1308     ; CHECK: liveins: $q0, $q1
1309     ; CHECK: [[COPY:%[0-9]+]]:_(<4 x s32>) = COPY $q0
1310     ; CHECK: [[COPY1:%[0-9]+]]:_(<4 x s32>) = COPY $q1
1311     ; CHECK: [[ICMP:%[0-9]+]]:_(<4 x s32>) = G_ICMP intpred(sge), [[COPY]](<4 x s32>), [[COPY1]]
1312     ; CHECK: [[TRUNC:%[0-9]+]]:_(<4 x s16>) = G_TRUNC [[ICMP]](<4 x s32>)
1313     ; CHECK: $d0 = COPY [[TRUNC]](<4 x s16>)
1314     ; CHECK: RET_ReallyLR implicit $d0
1315     %0:_(<4 x s32>) = COPY $q0
1316     %1:_(<4 x s32>) = COPY $q1
1317     %2:_(<4 x s1>) = G_ICMP intpred(sge), %0(<4 x s32>), %1
1318     %3:_(<4 x s16>) = G_ANYEXT %2(<4 x s1>)
1319     $d0 = COPY %3(<4 x s16>)
1320     RET_ReallyLR implicit $d0
1324 name:            test_v2i32_sge
1325 alignment:       4
1326 tracksRegLiveness: true
1327 registers:
1328   - { id: 0, class: _ }
1329   - { id: 1, class: _ }
1330   - { id: 2, class: _ }
1331   - { id: 3, class: _ }
1332 machineFunctionInfo: {}
1333 body:             |
1334   bb.1:
1335     liveins: $d0, $d1
1337     ; CHECK-LABEL: name: test_v2i32_sge
1338     ; CHECK: liveins: $d0, $d1
1339     ; CHECK: [[COPY:%[0-9]+]]:_(<2 x s32>) = COPY $d0
1340     ; CHECK: [[COPY1:%[0-9]+]]:_(<2 x s32>) = COPY $d1
1341     ; CHECK: [[ICMP:%[0-9]+]]:_(<2 x s32>) = G_ICMP intpred(sge), [[COPY]](<2 x s32>), [[COPY1]]
1342     ; CHECK: [[COPY2:%[0-9]+]]:_(<2 x s32>) = COPY [[ICMP]](<2 x s32>)
1343     ; CHECK: $d0 = COPY [[COPY2]](<2 x s32>)
1344     ; CHECK: RET_ReallyLR implicit $d0
1345     %0:_(<2 x s32>) = COPY $d0
1346     %1:_(<2 x s32>) = COPY $d1
1347     %2:_(<2 x s1>) = G_ICMP intpred(sge), %0(<2 x s32>), %1
1348     %3:_(<2 x s32>) = G_ANYEXT %2(<2 x s1>)
1349     $d0 = COPY %3(<2 x s32>)
1350     RET_ReallyLR implicit $d0
1354 name:            test_v8i16_sge
1355 alignment:       4
1356 tracksRegLiveness: true
1357 registers:
1358   - { id: 0, class: _ }
1359   - { id: 1, class: _ }
1360   - { id: 2, class: _ }
1361   - { id: 3, class: _ }
1362 machineFunctionInfo: {}
1363 body:             |
1364   bb.1:
1365     liveins: $q0, $q1
1367     ; CHECK-LABEL: name: test_v8i16_sge
1368     ; CHECK: liveins: $q0, $q1
1369     ; CHECK: [[COPY:%[0-9]+]]:_(<8 x s16>) = COPY $q0
1370     ; CHECK: [[COPY1:%[0-9]+]]:_(<8 x s16>) = COPY $q1
1371     ; CHECK: [[ICMP:%[0-9]+]]:_(<8 x s16>) = G_ICMP intpred(sge), [[COPY]](<8 x s16>), [[COPY1]]
1372     ; CHECK: [[TRUNC:%[0-9]+]]:_(<8 x s8>) = G_TRUNC [[ICMP]](<8 x s16>)
1373     ; CHECK: $d0 = COPY [[TRUNC]](<8 x s8>)
1374     ; CHECK: RET_ReallyLR implicit $d0
1375     %0:_(<8 x s16>) = COPY $q0
1376     %1:_(<8 x s16>) = COPY $q1
1377     %2:_(<8 x s1>) = G_ICMP intpred(sge), %0(<8 x s16>), %1
1378     %3:_(<8 x s8>) = G_ANYEXT %2(<8 x s1>)
1379     $d0 = COPY %3(<8 x s8>)
1380     RET_ReallyLR implicit $d0
1384 name:            test_v4i16_sge
1385 alignment:       4
1386 tracksRegLiveness: true
1387 registers:
1388   - { id: 0, class: _ }
1389   - { id: 1, class: _ }
1390   - { id: 2, class: _ }
1391   - { id: 3, class: _ }
1392 machineFunctionInfo: {}
1393 body:             |
1394   bb.1:
1395     liveins: $d0, $d1
1397     ; CHECK-LABEL: name: test_v4i16_sge
1398     ; CHECK: liveins: $d0, $d1
1399     ; CHECK: [[COPY:%[0-9]+]]:_(<4 x s16>) = COPY $d0
1400     ; CHECK: [[COPY1:%[0-9]+]]:_(<4 x s16>) = COPY $d1
1401     ; CHECK: [[ICMP:%[0-9]+]]:_(<4 x s16>) = G_ICMP intpred(sge), [[COPY]](<4 x s16>), [[COPY1]]
1402     ; CHECK: [[COPY2:%[0-9]+]]:_(<4 x s16>) = COPY [[ICMP]](<4 x s16>)
1403     ; CHECK: $d0 = COPY [[COPY2]](<4 x s16>)
1404     ; CHECK: RET_ReallyLR implicit $d0
1405     %0:_(<4 x s16>) = COPY $d0
1406     %1:_(<4 x s16>) = COPY $d1
1407     %2:_(<4 x s1>) = G_ICMP intpred(sge), %0(<4 x s16>), %1
1408     %3:_(<4 x s16>) = G_ANYEXT %2(<4 x s1>)
1409     $d0 = COPY %3(<4 x s16>)
1410     RET_ReallyLR implicit $d0
1414 name:            test_v16i8_sge
1415 alignment:       4
1416 tracksRegLiveness: true
1417 registers:
1418   - { id: 0, class: _ }
1419   - { id: 1, class: _ }
1420   - { id: 2, class: _ }
1421   - { id: 3, class: _ }
1422 machineFunctionInfo: {}
1423 body:             |
1424   bb.1:
1425     liveins: $q0, $q1
1427     ; CHECK-LABEL: name: test_v16i8_sge
1428     ; CHECK: liveins: $q0, $q1
1429     ; CHECK: [[COPY:%[0-9]+]]:_(<16 x s8>) = COPY $q0
1430     ; CHECK: [[COPY1:%[0-9]+]]:_(<16 x s8>) = COPY $q1
1431     ; CHECK: [[ICMP:%[0-9]+]]:_(<16 x s8>) = G_ICMP intpred(sge), [[COPY]](<16 x s8>), [[COPY1]]
1432     ; CHECK: [[COPY2:%[0-9]+]]:_(<16 x s8>) = COPY [[ICMP]](<16 x s8>)
1433     ; CHECK: $q0 = COPY [[COPY2]](<16 x s8>)
1434     ; CHECK: RET_ReallyLR implicit $q0
1435     %0:_(<16 x s8>) = COPY $q0
1436     %1:_(<16 x s8>) = COPY $q1
1437     %2:_(<16 x s1>) = G_ICMP intpred(sge), %0(<16 x s8>), %1
1438     %3:_(<16 x s8>) = G_ANYEXT %2(<16 x s1>)
1439     $q0 = COPY %3(<16 x s8>)
1440     RET_ReallyLR implicit $q0
1444 name:            test_v8i8_sge
1445 alignment:       4
1446 tracksRegLiveness: true
1447 registers:
1448   - { id: 0, class: _ }
1449   - { id: 1, class: _ }
1450   - { id: 2, class: _ }
1451   - { id: 3, class: _ }
1452 machineFunctionInfo: {}
1453 body:             |
1454   bb.1:
1455     liveins: $d0, $d1
1457     ; CHECK-LABEL: name: test_v8i8_sge
1458     ; CHECK: liveins: $d0, $d1
1459     ; CHECK: [[COPY:%[0-9]+]]:_(<8 x s8>) = COPY $d0
1460     ; CHECK: [[COPY1:%[0-9]+]]:_(<8 x s8>) = COPY $d1
1461     ; CHECK: [[ICMP:%[0-9]+]]:_(<8 x s8>) = G_ICMP intpred(sge), [[COPY]](<8 x s8>), [[COPY1]]
1462     ; CHECK: [[COPY2:%[0-9]+]]:_(<8 x s8>) = COPY [[ICMP]](<8 x s8>)
1463     ; CHECK: $d0 = COPY [[COPY2]](<8 x s8>)
1464     ; CHECK: RET_ReallyLR implicit $d0
1465     %0:_(<8 x s8>) = COPY $d0
1466     %1:_(<8 x s8>) = COPY $d1
1467     %2:_(<8 x s1>) = G_ICMP intpred(sge), %0(<8 x s8>), %1
1468     %3:_(<8 x s8>) = G_ANYEXT %2(<8 x s1>)
1469     $d0 = COPY %3(<8 x s8>)
1470     RET_ReallyLR implicit $d0
1474 name:            test_v2i64_slt
1475 alignment:       4
1476 tracksRegLiveness: true
1477 registers:
1478   - { id: 0, class: _ }
1479   - { id: 1, class: _ }
1480   - { id: 2, class: _ }
1481   - { id: 3, class: _ }
1482 machineFunctionInfo: {}
1483 body:             |
1484   bb.1:
1485     liveins: $q0, $q1
1487     ; CHECK-LABEL: name: test_v2i64_slt
1488     ; CHECK: liveins: $q0, $q1
1489     ; CHECK: [[COPY:%[0-9]+]]:_(<2 x s64>) = COPY $q0
1490     ; CHECK: [[COPY1:%[0-9]+]]:_(<2 x s64>) = COPY $q1
1491     ; CHECK: [[ICMP:%[0-9]+]]:_(<2 x s64>) = G_ICMP intpred(slt), [[COPY]](<2 x s64>), [[COPY1]]
1492     ; CHECK: [[TRUNC:%[0-9]+]]:_(<2 x s32>) = G_TRUNC [[ICMP]](<2 x s64>)
1493     ; CHECK: $d0 = COPY [[TRUNC]](<2 x s32>)
1494     ; CHECK: RET_ReallyLR implicit $d0
1495     %0:_(<2 x s64>) = COPY $q0
1496     %1:_(<2 x s64>) = COPY $q1
1497     %2:_(<2 x s1>) = G_ICMP intpred(slt), %0(<2 x s64>), %1
1498     %3:_(<2 x s32>) = G_ANYEXT %2(<2 x s1>)
1499     $d0 = COPY %3(<2 x s32>)
1500     RET_ReallyLR implicit $d0
1504 name:            test_v4i32_slt
1505 alignment:       4
1506 tracksRegLiveness: true
1507 registers:
1508   - { id: 0, class: _ }
1509   - { id: 1, class: _ }
1510   - { id: 2, class: _ }
1511   - { id: 3, class: _ }
1512 machineFunctionInfo: {}
1513 body:             |
1514   bb.1:
1515     liveins: $q0, $q1
1517     ; CHECK-LABEL: name: test_v4i32_slt
1518     ; CHECK: liveins: $q0, $q1
1519     ; CHECK: [[COPY:%[0-9]+]]:_(<4 x s32>) = COPY $q0
1520     ; CHECK: [[COPY1:%[0-9]+]]:_(<4 x s32>) = COPY $q1
1521     ; CHECK: [[ICMP:%[0-9]+]]:_(<4 x s32>) = G_ICMP intpred(slt), [[COPY]](<4 x s32>), [[COPY1]]
1522     ; CHECK: [[TRUNC:%[0-9]+]]:_(<4 x s16>) = G_TRUNC [[ICMP]](<4 x s32>)
1523     ; CHECK: $d0 = COPY [[TRUNC]](<4 x s16>)
1524     ; CHECK: RET_ReallyLR implicit $d0
1525     %0:_(<4 x s32>) = COPY $q0
1526     %1:_(<4 x s32>) = COPY $q1
1527     %2:_(<4 x s1>) = G_ICMP intpred(slt), %0(<4 x s32>), %1
1528     %3:_(<4 x s16>) = G_ANYEXT %2(<4 x s1>)
1529     $d0 = COPY %3(<4 x s16>)
1530     RET_ReallyLR implicit $d0
1534 name:            test_v2i32_slt
1535 alignment:       4
1536 tracksRegLiveness: true
1537 registers:
1538   - { id: 0, class: _ }
1539   - { id: 1, class: _ }
1540   - { id: 2, class: _ }
1541   - { id: 3, class: _ }
1542 machineFunctionInfo: {}
1543 body:             |
1544   bb.1:
1545     liveins: $d0, $d1
1547     ; CHECK-LABEL: name: test_v2i32_slt
1548     ; CHECK: liveins: $d0, $d1
1549     ; CHECK: [[COPY:%[0-9]+]]:_(<2 x s32>) = COPY $d0
1550     ; CHECK: [[COPY1:%[0-9]+]]:_(<2 x s32>) = COPY $d1
1551     ; CHECK: [[ICMP:%[0-9]+]]:_(<2 x s32>) = G_ICMP intpred(slt), [[COPY]](<2 x s32>), [[COPY1]]
1552     ; CHECK: [[COPY2:%[0-9]+]]:_(<2 x s32>) = COPY [[ICMP]](<2 x s32>)
1553     ; CHECK: $d0 = COPY [[COPY2]](<2 x s32>)
1554     ; CHECK: RET_ReallyLR implicit $d0
1555     %0:_(<2 x s32>) = COPY $d0
1556     %1:_(<2 x s32>) = COPY $d1
1557     %2:_(<2 x s1>) = G_ICMP intpred(slt), %0(<2 x s32>), %1
1558     %3:_(<2 x s32>) = G_ANYEXT %2(<2 x s1>)
1559     $d0 = COPY %3(<2 x s32>)
1560     RET_ReallyLR implicit $d0
1564 name:            test_v8i16_slt
1565 alignment:       4
1566 tracksRegLiveness: true
1567 registers:
1568   - { id: 0, class: _ }
1569   - { id: 1, class: _ }
1570   - { id: 2, class: _ }
1571   - { id: 3, class: _ }
1572 machineFunctionInfo: {}
1573 body:             |
1574   bb.1:
1575     liveins: $q0, $q1
1577     ; CHECK-LABEL: name: test_v8i16_slt
1578     ; CHECK: liveins: $q0, $q1
1579     ; CHECK: [[COPY:%[0-9]+]]:_(<8 x s16>) = COPY $q0
1580     ; CHECK: [[COPY1:%[0-9]+]]:_(<8 x s16>) = COPY $q1
1581     ; CHECK: [[ICMP:%[0-9]+]]:_(<8 x s16>) = G_ICMP intpred(slt), [[COPY]](<8 x s16>), [[COPY1]]
1582     ; CHECK: [[TRUNC:%[0-9]+]]:_(<8 x s8>) = G_TRUNC [[ICMP]](<8 x s16>)
1583     ; CHECK: $d0 = COPY [[TRUNC]](<8 x s8>)
1584     ; CHECK: RET_ReallyLR implicit $d0
1585     %0:_(<8 x s16>) = COPY $q0
1586     %1:_(<8 x s16>) = COPY $q1
1587     %2:_(<8 x s1>) = G_ICMP intpred(slt), %0(<8 x s16>), %1
1588     %3:_(<8 x s8>) = G_ANYEXT %2(<8 x s1>)
1589     $d0 = COPY %3(<8 x s8>)
1590     RET_ReallyLR implicit $d0
1594 name:            test_v4i16_slt
1595 alignment:       4
1596 tracksRegLiveness: true
1597 registers:
1598   - { id: 0, class: _ }
1599   - { id: 1, class: _ }
1600   - { id: 2, class: _ }
1601   - { id: 3, class: _ }
1602 machineFunctionInfo: {}
1603 body:             |
1604   bb.1:
1605     liveins: $d0, $d1
1607     ; CHECK-LABEL: name: test_v4i16_slt
1608     ; CHECK: liveins: $d0, $d1
1609     ; CHECK: [[COPY:%[0-9]+]]:_(<4 x s16>) = COPY $d0
1610     ; CHECK: [[COPY1:%[0-9]+]]:_(<4 x s16>) = COPY $d1
1611     ; CHECK: [[ICMP:%[0-9]+]]:_(<4 x s16>) = G_ICMP intpred(slt), [[COPY]](<4 x s16>), [[COPY1]]
1612     ; CHECK: [[COPY2:%[0-9]+]]:_(<4 x s16>) = COPY [[ICMP]](<4 x s16>)
1613     ; CHECK: $d0 = COPY [[COPY2]](<4 x s16>)
1614     ; CHECK: RET_ReallyLR implicit $d0
1615     %0:_(<4 x s16>) = COPY $d0
1616     %1:_(<4 x s16>) = COPY $d1
1617     %2:_(<4 x s1>) = G_ICMP intpred(slt), %0(<4 x s16>), %1
1618     %3:_(<4 x s16>) = G_ANYEXT %2(<4 x s1>)
1619     $d0 = COPY %3(<4 x s16>)
1620     RET_ReallyLR implicit $d0
1624 name:            test_v16i8_slt
1625 alignment:       4
1626 tracksRegLiveness: true
1627 registers:
1628   - { id: 0, class: _ }
1629   - { id: 1, class: _ }
1630   - { id: 2, class: _ }
1631   - { id: 3, class: _ }
1632 machineFunctionInfo: {}
1633 body:             |
1634   bb.1:
1635     liveins: $q0, $q1
1637     ; CHECK-LABEL: name: test_v16i8_slt
1638     ; CHECK: liveins: $q0, $q1
1639     ; CHECK: [[COPY:%[0-9]+]]:_(<16 x s8>) = COPY $q0
1640     ; CHECK: [[COPY1:%[0-9]+]]:_(<16 x s8>) = COPY $q1
1641     ; CHECK: [[ICMP:%[0-9]+]]:_(<16 x s8>) = G_ICMP intpred(slt), [[COPY]](<16 x s8>), [[COPY1]]
1642     ; CHECK: [[COPY2:%[0-9]+]]:_(<16 x s8>) = COPY [[ICMP]](<16 x s8>)
1643     ; CHECK: $q0 = COPY [[COPY2]](<16 x s8>)
1644     ; CHECK: RET_ReallyLR implicit $q0
1645     %0:_(<16 x s8>) = COPY $q0
1646     %1:_(<16 x s8>) = COPY $q1
1647     %2:_(<16 x s1>) = G_ICMP intpred(slt), %0(<16 x s8>), %1
1648     %3:_(<16 x s8>) = G_ANYEXT %2(<16 x s1>)
1649     $q0 = COPY %3(<16 x s8>)
1650     RET_ReallyLR implicit $q0
1654 name:            test_v8i8_slt
1655 alignment:       4
1656 tracksRegLiveness: true
1657 registers:
1658   - { id: 0, class: _ }
1659   - { id: 1, class: _ }
1660   - { id: 2, class: _ }
1661   - { id: 3, class: _ }
1662 machineFunctionInfo: {}
1663 body:             |
1664   bb.1:
1665     liveins: $d0, $d1
1667     ; CHECK-LABEL: name: test_v8i8_slt
1668     ; CHECK: liveins: $d0, $d1
1669     ; CHECK: [[COPY:%[0-9]+]]:_(<8 x s8>) = COPY $d0
1670     ; CHECK: [[COPY1:%[0-9]+]]:_(<8 x s8>) = COPY $d1
1671     ; CHECK: [[ICMP:%[0-9]+]]:_(<8 x s8>) = G_ICMP intpred(slt), [[COPY]](<8 x s8>), [[COPY1]]
1672     ; CHECK: [[COPY2:%[0-9]+]]:_(<8 x s8>) = COPY [[ICMP]](<8 x s8>)
1673     ; CHECK: $d0 = COPY [[COPY2]](<8 x s8>)
1674     ; CHECK: RET_ReallyLR implicit $d0
1675     %0:_(<8 x s8>) = COPY $d0
1676     %1:_(<8 x s8>) = COPY $d1
1677     %2:_(<8 x s1>) = G_ICMP intpred(slt), %0(<8 x s8>), %1
1678     %3:_(<8 x s8>) = G_ANYEXT %2(<8 x s1>)
1679     $d0 = COPY %3(<8 x s8>)
1680     RET_ReallyLR implicit $d0
1684 name:            test_v2i64_sle
1685 alignment:       4
1686 tracksRegLiveness: true
1687 registers:
1688   - { id: 0, class: _ }
1689   - { id: 1, class: _ }
1690   - { id: 2, class: _ }
1691   - { id: 3, class: _ }
1692 machineFunctionInfo: {}
1693 body:             |
1694   bb.1:
1695     liveins: $q0, $q1
1697     ; CHECK-LABEL: name: test_v2i64_sle
1698     ; CHECK: liveins: $q0, $q1
1699     ; CHECK: [[COPY:%[0-9]+]]:_(<2 x s64>) = COPY $q0
1700     ; CHECK: [[COPY1:%[0-9]+]]:_(<2 x s64>) = COPY $q1
1701     ; CHECK: [[ICMP:%[0-9]+]]:_(<2 x s64>) = G_ICMP intpred(sle), [[COPY]](<2 x s64>), [[COPY1]]
1702     ; CHECK: [[TRUNC:%[0-9]+]]:_(<2 x s32>) = G_TRUNC [[ICMP]](<2 x s64>)
1703     ; CHECK: $d0 = COPY [[TRUNC]](<2 x s32>)
1704     ; CHECK: RET_ReallyLR implicit $d0
1705     %0:_(<2 x s64>) = COPY $q0
1706     %1:_(<2 x s64>) = COPY $q1
1707     %2:_(<2 x s1>) = G_ICMP intpred(sle), %0(<2 x s64>), %1
1708     %3:_(<2 x s32>) = G_ANYEXT %2(<2 x s1>)
1709     $d0 = COPY %3(<2 x s32>)
1710     RET_ReallyLR implicit $d0
1714 name:            test_v4i32_sle
1715 alignment:       4
1716 tracksRegLiveness: true
1717 registers:
1718   - { id: 0, class: _ }
1719   - { id: 1, class: _ }
1720   - { id: 2, class: _ }
1721   - { id: 3, class: _ }
1722 machineFunctionInfo: {}
1723 body:             |
1724   bb.1:
1725     liveins: $q0, $q1
1727     ; CHECK-LABEL: name: test_v4i32_sle
1728     ; CHECK: liveins: $q0, $q1
1729     ; CHECK: [[COPY:%[0-9]+]]:_(<4 x s32>) = COPY $q0
1730     ; CHECK: [[COPY1:%[0-9]+]]:_(<4 x s32>) = COPY $q1
1731     ; CHECK: [[ICMP:%[0-9]+]]:_(<4 x s32>) = G_ICMP intpred(sle), [[COPY]](<4 x s32>), [[COPY1]]
1732     ; CHECK: [[TRUNC:%[0-9]+]]:_(<4 x s16>) = G_TRUNC [[ICMP]](<4 x s32>)
1733     ; CHECK: $d0 = COPY [[TRUNC]](<4 x s16>)
1734     ; CHECK: RET_ReallyLR implicit $d0
1735     %0:_(<4 x s32>) = COPY $q0
1736     %1:_(<4 x s32>) = COPY $q1
1737     %2:_(<4 x s1>) = G_ICMP intpred(sle), %0(<4 x s32>), %1
1738     %3:_(<4 x s16>) = G_ANYEXT %2(<4 x s1>)
1739     $d0 = COPY %3(<4 x s16>)
1740     RET_ReallyLR implicit $d0
1744 name:            test_v2i32_sle
1745 alignment:       4
1746 tracksRegLiveness: true
1747 registers:
1748   - { id: 0, class: _ }
1749   - { id: 1, class: _ }
1750   - { id: 2, class: _ }
1751   - { id: 3, class: _ }
1752 machineFunctionInfo: {}
1753 body:             |
1754   bb.1:
1755     liveins: $d0, $d1
1757     ; CHECK-LABEL: name: test_v2i32_sle
1758     ; CHECK: liveins: $d0, $d1
1759     ; CHECK: [[COPY:%[0-9]+]]:_(<2 x s32>) = COPY $d0
1760     ; CHECK: [[COPY1:%[0-9]+]]:_(<2 x s32>) = COPY $d1
1761     ; CHECK: [[ICMP:%[0-9]+]]:_(<2 x s32>) = G_ICMP intpred(sle), [[COPY]](<2 x s32>), [[COPY1]]
1762     ; CHECK: [[COPY2:%[0-9]+]]:_(<2 x s32>) = COPY [[ICMP]](<2 x s32>)
1763     ; CHECK: $d0 = COPY [[COPY2]](<2 x s32>)
1764     ; CHECK: RET_ReallyLR implicit $d0
1765     %0:_(<2 x s32>) = COPY $d0
1766     %1:_(<2 x s32>) = COPY $d1
1767     %2:_(<2 x s1>) = G_ICMP intpred(sle), %0(<2 x s32>), %1
1768     %3:_(<2 x s32>) = G_ANYEXT %2(<2 x s1>)
1769     $d0 = COPY %3(<2 x s32>)
1770     RET_ReallyLR implicit $d0
1774 name:            test_v8i16_sle
1775 alignment:       4
1776 tracksRegLiveness: true
1777 registers:
1778   - { id: 0, class: _ }
1779   - { id: 1, class: _ }
1780   - { id: 2, class: _ }
1781   - { id: 3, class: _ }
1782 machineFunctionInfo: {}
1783 body:             |
1784   bb.1:
1785     liveins: $q0, $q1
1787     ; CHECK-LABEL: name: test_v8i16_sle
1788     ; CHECK: liveins: $q0, $q1
1789     ; CHECK: [[COPY:%[0-9]+]]:_(<8 x s16>) = COPY $q0
1790     ; CHECK: [[COPY1:%[0-9]+]]:_(<8 x s16>) = COPY $q1
1791     ; CHECK: [[ICMP:%[0-9]+]]:_(<8 x s16>) = G_ICMP intpred(sle), [[COPY]](<8 x s16>), [[COPY1]]
1792     ; CHECK: [[TRUNC:%[0-9]+]]:_(<8 x s8>) = G_TRUNC [[ICMP]](<8 x s16>)
1793     ; CHECK: $d0 = COPY [[TRUNC]](<8 x s8>)
1794     ; CHECK: RET_ReallyLR implicit $d0
1795     %0:_(<8 x s16>) = COPY $q0
1796     %1:_(<8 x s16>) = COPY $q1
1797     %2:_(<8 x s1>) = G_ICMP intpred(sle), %0(<8 x s16>), %1
1798     %3:_(<8 x s8>) = G_ANYEXT %2(<8 x s1>)
1799     $d0 = COPY %3(<8 x s8>)
1800     RET_ReallyLR implicit $d0
1804 name:            test_v4i16_sle
1805 alignment:       4
1806 tracksRegLiveness: true
1807 registers:
1808   - { id: 0, class: _ }
1809   - { id: 1, class: _ }
1810   - { id: 2, class: _ }
1811   - { id: 3, class: _ }
1812 machineFunctionInfo: {}
1813 body:             |
1814   bb.1:
1815     liveins: $d0, $d1
1817     ; CHECK-LABEL: name: test_v4i16_sle
1818     ; CHECK: liveins: $d0, $d1
1819     ; CHECK: [[COPY:%[0-9]+]]:_(<4 x s16>) = COPY $d0
1820     ; CHECK: [[COPY1:%[0-9]+]]:_(<4 x s16>) = COPY $d1
1821     ; CHECK: [[ICMP:%[0-9]+]]:_(<4 x s16>) = G_ICMP intpred(sle), [[COPY]](<4 x s16>), [[COPY1]]
1822     ; CHECK: [[COPY2:%[0-9]+]]:_(<4 x s16>) = COPY [[ICMP]](<4 x s16>)
1823     ; CHECK: $d0 = COPY [[COPY2]](<4 x s16>)
1824     ; CHECK: RET_ReallyLR implicit $d0
1825     %0:_(<4 x s16>) = COPY $d0
1826     %1:_(<4 x s16>) = COPY $d1
1827     %2:_(<4 x s1>) = G_ICMP intpred(sle), %0(<4 x s16>), %1
1828     %3:_(<4 x s16>) = G_ANYEXT %2(<4 x s1>)
1829     $d0 = COPY %3(<4 x s16>)
1830     RET_ReallyLR implicit $d0
1834 name:            test_v16i8_sle
1835 alignment:       4
1836 tracksRegLiveness: true
1837 registers:
1838   - { id: 0, class: _ }
1839   - { id: 1, class: _ }
1840   - { id: 2, class: _ }
1841   - { id: 3, class: _ }
1842 machineFunctionInfo: {}
1843 body:             |
1844   bb.1:
1845     liveins: $q0, $q1
1847     ; CHECK-LABEL: name: test_v16i8_sle
1848     ; CHECK: liveins: $q0, $q1
1849     ; CHECK: [[COPY:%[0-9]+]]:_(<16 x s8>) = COPY $q0
1850     ; CHECK: [[COPY1:%[0-9]+]]:_(<16 x s8>) = COPY $q1
1851     ; CHECK: [[ICMP:%[0-9]+]]:_(<16 x s8>) = G_ICMP intpred(sle), [[COPY]](<16 x s8>), [[COPY1]]
1852     ; CHECK: [[COPY2:%[0-9]+]]:_(<16 x s8>) = COPY [[ICMP]](<16 x s8>)
1853     ; CHECK: $q0 = COPY [[COPY2]](<16 x s8>)
1854     ; CHECK: RET_ReallyLR implicit $q0
1855     %0:_(<16 x s8>) = COPY $q0
1856     %1:_(<16 x s8>) = COPY $q1
1857     %2:_(<16 x s1>) = G_ICMP intpred(sle), %0(<16 x s8>), %1
1858     %3:_(<16 x s8>) = G_ANYEXT %2(<16 x s1>)
1859     $q0 = COPY %3(<16 x s8>)
1860     RET_ReallyLR implicit $q0
1864 name:            test_v8i8_sle
1865 alignment:       4
1866 tracksRegLiveness: true
1867 registers:
1868   - { id: 0, class: _ }
1869   - { id: 1, class: _ }
1870   - { id: 2, class: _ }
1871   - { id: 3, class: _ }
1872 machineFunctionInfo: {}
1873 body:             |
1874   bb.1:
1875     liveins: $d0, $d1
1877     ; CHECK-LABEL: name: test_v8i8_sle
1878     ; CHECK: liveins: $d0, $d1
1879     ; CHECK: [[COPY:%[0-9]+]]:_(<8 x s8>) = COPY $d0
1880     ; CHECK: [[COPY1:%[0-9]+]]:_(<8 x s8>) = COPY $d1
1881     ; CHECK: [[ICMP:%[0-9]+]]:_(<8 x s8>) = G_ICMP intpred(sle), [[COPY]](<8 x s8>), [[COPY1]]
1882     ; CHECK: [[COPY2:%[0-9]+]]:_(<8 x s8>) = COPY [[ICMP]](<8 x s8>)
1883     ; CHECK: $d0 = COPY [[COPY2]](<8 x s8>)
1884     ; CHECK: RET_ReallyLR implicit $d0
1885     %0:_(<8 x s8>) = COPY $d0
1886     %1:_(<8 x s8>) = COPY $d1
1887     %2:_(<8 x s1>) = G_ICMP intpred(sle), %0(<8 x s8>), %1
1888     %3:_(<8 x s8>) = G_ANYEXT %2(<8 x s1>)
1889     $d0 = COPY %3(<8 x s8>)
1890     RET_ReallyLR implicit $d0
1894 name:            test_v2p0_eq
1895 alignment:       4
1896 tracksRegLiveness: true
1897 registers:
1898   - { id: 0, class: _ }
1899   - { id: 1, class: _ }
1900   - { id: 2, class: _ }
1901   - { id: 3, class: _ }
1902 machineFunctionInfo: {}
1903 body:             |
1904   bb.1:
1905     liveins: $q0, $q1
1907     ; CHECK-LABEL: name: test_v2p0_eq
1908     ; CHECK: liveins: $q0, $q1
1909     ; CHECK: [[COPY:%[0-9]+]]:_(<2 x p0>) = COPY $q0
1910     ; CHECK: [[COPY1:%[0-9]+]]:_(<2 x p0>) = COPY $q1
1911     ; CHECK: [[ICMP:%[0-9]+]]:_(<2 x s64>) = G_ICMP intpred(eq), [[COPY]](<2 x p0>), [[COPY1]]
1912     ; CHECK: [[TRUNC:%[0-9]+]]:_(<2 x s32>) = G_TRUNC [[ICMP]](<2 x s64>)
1913     ; CHECK: $d0 = COPY [[TRUNC]](<2 x s32>)
1914     ; CHECK: RET_ReallyLR implicit $d0
1915     %0:_(<2 x p0>) = COPY $q0
1916     %1:_(<2 x p0>) = COPY $q1
1917     %2:_(<2 x s1>) = G_ICMP intpred(eq), %0(<2 x p0>), %1
1918     %3:_(<2 x s32>) = G_ANYEXT %2(<2 x s1>)
1919     $d0 = COPY %3(<2 x s32>)
1920     RET_ReallyLR implicit $d0