1 # NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py
2 # RUN: llc -mtriple=aarch64 -run-pass=legalizer %s -o - -verify-machineinstrs | FileCheck %s
6 tracksRegLiveness: true
12 machineFunctionInfo: {}
17 ; CHECK-LABEL: name: test_v2i64_eq
18 ; CHECK: liveins: $q0, $q1
20 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(<2 x s64>) = COPY $q0
21 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(<2 x s64>) = COPY $q1
22 ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(<2 x s64>) = G_ICMP intpred(eq), [[COPY]](<2 x s64>), [[COPY1]]
23 ; CHECK-NEXT: [[TRUNC:%[0-9]+]]:_(<2 x s32>) = G_TRUNC [[ICMP]](<2 x s64>)
24 ; CHECK-NEXT: $d0 = COPY [[TRUNC]](<2 x s32>)
25 ; CHECK-NEXT: RET_ReallyLR implicit $d0
26 %0:_(<2 x s64>) = COPY $q0
27 %1:_(<2 x s64>) = COPY $q1
28 %2:_(<2 x s1>) = G_ICMP intpred(eq), %0(<2 x s64>), %1
29 %3:_(<2 x s32>) = G_ANYEXT %2(<2 x s1>)
30 $d0 = COPY %3(<2 x s32>)
31 RET_ReallyLR implicit $d0
37 tracksRegLiveness: true
43 machineFunctionInfo: {}
48 ; CHECK-LABEL: name: test_v4i32_eq
49 ; CHECK: liveins: $q0, $q1
51 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(<4 x s32>) = COPY $q0
52 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(<4 x s32>) = COPY $q1
53 ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(<4 x s32>) = G_ICMP intpred(eq), [[COPY]](<4 x s32>), [[COPY1]]
54 ; CHECK-NEXT: [[TRUNC:%[0-9]+]]:_(<4 x s16>) = G_TRUNC [[ICMP]](<4 x s32>)
55 ; CHECK-NEXT: $d0 = COPY [[TRUNC]](<4 x s16>)
56 ; CHECK-NEXT: RET_ReallyLR implicit $d0
57 %0:_(<4 x s32>) = COPY $q0
58 %1:_(<4 x s32>) = COPY $q1
59 %2:_(<4 x s1>) = G_ICMP intpred(eq), %0(<4 x s32>), %1
60 %3:_(<4 x s16>) = G_ANYEXT %2(<4 x s1>)
61 $d0 = COPY %3(<4 x s16>)
62 RET_ReallyLR implicit $d0
68 tracksRegLiveness: true
74 machineFunctionInfo: {}
79 ; CHECK-LABEL: name: test_v2i32_eq
80 ; CHECK: liveins: $d0, $d1
82 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(<2 x s32>) = COPY $d0
83 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(<2 x s32>) = COPY $d1
84 ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(<2 x s32>) = G_ICMP intpred(eq), [[COPY]](<2 x s32>), [[COPY1]]
85 ; CHECK-NEXT: $d0 = COPY [[ICMP]](<2 x s32>)
86 ; CHECK-NEXT: RET_ReallyLR implicit $d0
87 %0:_(<2 x s32>) = COPY $d0
88 %1:_(<2 x s32>) = COPY $d1
89 %2:_(<2 x s1>) = G_ICMP intpred(eq), %0(<2 x s32>), %1
90 %3:_(<2 x s32>) = G_ANYEXT %2(<2 x s1>)
91 $d0 = COPY %3(<2 x s32>)
92 RET_ReallyLR implicit $d0
98 tracksRegLiveness: true
100 - { id: 0, class: _ }
101 - { id: 1, class: _ }
102 - { id: 2, class: _ }
103 - { id: 3, class: _ }
104 machineFunctionInfo: {}
109 ; CHECK-LABEL: name: test_v8i16_eq
110 ; CHECK: liveins: $q0, $q1
112 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(<8 x s16>) = COPY $q0
113 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(<8 x s16>) = COPY $q1
114 ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(<8 x s16>) = G_ICMP intpred(eq), [[COPY]](<8 x s16>), [[COPY1]]
115 ; CHECK-NEXT: [[TRUNC:%[0-9]+]]:_(<8 x s8>) = G_TRUNC [[ICMP]](<8 x s16>)
116 ; CHECK-NEXT: $d0 = COPY [[TRUNC]](<8 x s8>)
117 ; CHECK-NEXT: RET_ReallyLR implicit $d0
118 %0:_(<8 x s16>) = COPY $q0
119 %1:_(<8 x s16>) = COPY $q1
120 %2:_(<8 x s1>) = G_ICMP intpred(eq), %0(<8 x s16>), %1
121 %3:_(<8 x s8>) = G_ANYEXT %2(<8 x s1>)
122 $d0 = COPY %3(<8 x s8>)
123 RET_ReallyLR implicit $d0
129 tracksRegLiveness: true
131 - { id: 0, class: _ }
132 - { id: 1, class: _ }
133 - { id: 2, class: _ }
134 - { id: 3, class: _ }
135 machineFunctionInfo: {}
140 ; CHECK-LABEL: name: test_v4i16_eq
141 ; CHECK: liveins: $d0, $d1
143 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(<4 x s16>) = COPY $d0
144 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(<4 x s16>) = COPY $d1
145 ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(<4 x s16>) = G_ICMP intpred(eq), [[COPY]](<4 x s16>), [[COPY1]]
146 ; CHECK-NEXT: $d0 = COPY [[ICMP]](<4 x s16>)
147 ; CHECK-NEXT: RET_ReallyLR implicit $d0
148 %0:_(<4 x s16>) = COPY $d0
149 %1:_(<4 x s16>) = COPY $d1
150 %2:_(<4 x s1>) = G_ICMP intpred(eq), %0(<4 x s16>), %1
151 %3:_(<4 x s16>) = G_ANYEXT %2(<4 x s1>)
152 $d0 = COPY %3(<4 x s16>)
153 RET_ReallyLR implicit $d0
159 tracksRegLiveness: true
161 - { id: 0, class: _ }
162 - { id: 1, class: _ }
163 - { id: 2, class: _ }
164 - { id: 3, class: _ }
165 machineFunctionInfo: {}
170 ; CHECK-LABEL: name: test_v16i8_eq
171 ; CHECK: liveins: $q0, $q1
173 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(<16 x s8>) = COPY $q0
174 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(<16 x s8>) = COPY $q1
175 ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(<16 x s8>) = G_ICMP intpred(eq), [[COPY]](<16 x s8>), [[COPY1]]
176 ; CHECK-NEXT: $q0 = COPY [[ICMP]](<16 x s8>)
177 ; CHECK-NEXT: RET_ReallyLR implicit $q0
178 %0:_(<16 x s8>) = COPY $q0
179 %1:_(<16 x s8>) = COPY $q1
180 %2:_(<16 x s1>) = G_ICMP intpred(eq), %0(<16 x s8>), %1
181 %3:_(<16 x s8>) = G_ANYEXT %2(<16 x s1>)
182 $q0 = COPY %3(<16 x s8>)
183 RET_ReallyLR implicit $q0
189 tracksRegLiveness: true
191 - { id: 0, class: _ }
192 - { id: 1, class: _ }
193 - { id: 2, class: _ }
194 - { id: 3, class: _ }
195 machineFunctionInfo: {}
200 ; CHECK-LABEL: name: test_v8i8_eq
201 ; CHECK: liveins: $d0, $d1
203 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(<8 x s8>) = COPY $d0
204 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(<8 x s8>) = COPY $d1
205 ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(<8 x s8>) = G_ICMP intpred(eq), [[COPY]](<8 x s8>), [[COPY1]]
206 ; CHECK-NEXT: $d0 = COPY [[ICMP]](<8 x s8>)
207 ; CHECK-NEXT: RET_ReallyLR implicit $d0
208 %0:_(<8 x s8>) = COPY $d0
209 %1:_(<8 x s8>) = COPY $d1
210 %2:_(<8 x s1>) = G_ICMP intpred(eq), %0(<8 x s8>), %1
211 %3:_(<8 x s8>) = G_ANYEXT %2(<8 x s1>)
212 $d0 = COPY %3(<8 x s8>)
213 RET_ReallyLR implicit $d0
219 tracksRegLiveness: true
221 - { id: 0, class: _ }
222 - { id: 1, class: _ }
223 - { id: 2, class: _ }
224 - { id: 3, class: _ }
225 machineFunctionInfo: {}
230 ; CHECK-LABEL: name: test_v2i64_ugt
231 ; CHECK: liveins: $q0, $q1
233 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(<2 x s64>) = COPY $q0
234 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(<2 x s64>) = COPY $q1
235 ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(<2 x s64>) = G_ICMP intpred(ugt), [[COPY]](<2 x s64>), [[COPY1]]
236 ; CHECK-NEXT: [[TRUNC:%[0-9]+]]:_(<2 x s32>) = G_TRUNC [[ICMP]](<2 x s64>)
237 ; CHECK-NEXT: $d0 = COPY [[TRUNC]](<2 x s32>)
238 ; CHECK-NEXT: RET_ReallyLR implicit $d0
239 %0:_(<2 x s64>) = COPY $q0
240 %1:_(<2 x s64>) = COPY $q1
241 %2:_(<2 x s1>) = G_ICMP intpred(ugt), %0(<2 x s64>), %1
242 %3:_(<2 x s32>) = G_ANYEXT %2(<2 x s1>)
243 $d0 = COPY %3(<2 x s32>)
244 RET_ReallyLR implicit $d0
250 tracksRegLiveness: true
252 - { id: 0, class: _ }
253 - { id: 1, class: _ }
254 - { id: 2, class: _ }
255 - { id: 3, class: _ }
256 machineFunctionInfo: {}
261 ; CHECK-LABEL: name: test_v4i32_ugt
262 ; CHECK: liveins: $q0, $q1
264 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(<4 x s32>) = COPY $q0
265 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(<4 x s32>) = COPY $q1
266 ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(<4 x s32>) = G_ICMP intpred(ugt), [[COPY]](<4 x s32>), [[COPY1]]
267 ; CHECK-NEXT: [[TRUNC:%[0-9]+]]:_(<4 x s16>) = G_TRUNC [[ICMP]](<4 x s32>)
268 ; CHECK-NEXT: $d0 = COPY [[TRUNC]](<4 x s16>)
269 ; CHECK-NEXT: RET_ReallyLR implicit $d0
270 %0:_(<4 x s32>) = COPY $q0
271 %1:_(<4 x s32>) = COPY $q1
272 %2:_(<4 x s1>) = G_ICMP intpred(ugt), %0(<4 x s32>), %1
273 %3:_(<4 x s16>) = G_ANYEXT %2(<4 x s1>)
274 $d0 = COPY %3(<4 x s16>)
275 RET_ReallyLR implicit $d0
281 tracksRegLiveness: true
283 - { id: 0, class: _ }
284 - { id: 1, class: _ }
285 - { id: 2, class: _ }
286 - { id: 3, class: _ }
287 machineFunctionInfo: {}
292 ; CHECK-LABEL: name: test_v2i32_ugt
293 ; CHECK: liveins: $d0, $d1
295 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(<2 x s32>) = COPY $d0
296 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(<2 x s32>) = COPY $d1
297 ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(<2 x s32>) = G_ICMP intpred(ugt), [[COPY]](<2 x s32>), [[COPY1]]
298 ; CHECK-NEXT: $d0 = COPY [[ICMP]](<2 x s32>)
299 ; CHECK-NEXT: RET_ReallyLR implicit $d0
300 %0:_(<2 x s32>) = COPY $d0
301 %1:_(<2 x s32>) = COPY $d1
302 %2:_(<2 x s1>) = G_ICMP intpred(ugt), %0(<2 x s32>), %1
303 %3:_(<2 x s32>) = G_ANYEXT %2(<2 x s1>)
304 $d0 = COPY %3(<2 x s32>)
305 RET_ReallyLR implicit $d0
311 tracksRegLiveness: true
313 - { id: 0, class: _ }
314 - { id: 1, class: _ }
315 - { id: 2, class: _ }
316 - { id: 3, class: _ }
317 machineFunctionInfo: {}
322 ; CHECK-LABEL: name: test_v8i16_ugt
323 ; CHECK: liveins: $q0, $q1
325 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(<8 x s16>) = COPY $q0
326 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(<8 x s16>) = COPY $q1
327 ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(<8 x s16>) = G_ICMP intpred(ugt), [[COPY]](<8 x s16>), [[COPY1]]
328 ; CHECK-NEXT: [[TRUNC:%[0-9]+]]:_(<8 x s8>) = G_TRUNC [[ICMP]](<8 x s16>)
329 ; CHECK-NEXT: $d0 = COPY [[TRUNC]](<8 x s8>)
330 ; CHECK-NEXT: RET_ReallyLR implicit $d0
331 %0:_(<8 x s16>) = COPY $q0
332 %1:_(<8 x s16>) = COPY $q1
333 %2:_(<8 x s1>) = G_ICMP intpred(ugt), %0(<8 x s16>), %1
334 %3:_(<8 x s8>) = G_ANYEXT %2(<8 x s1>)
335 $d0 = COPY %3(<8 x s8>)
336 RET_ReallyLR implicit $d0
342 tracksRegLiveness: true
344 - { id: 0, class: _ }
345 - { id: 1, class: _ }
346 - { id: 2, class: _ }
347 - { id: 3, class: _ }
348 machineFunctionInfo: {}
353 ; CHECK-LABEL: name: test_v4i16_ugt
354 ; CHECK: liveins: $d0, $d1
356 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(<4 x s16>) = COPY $d0
357 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(<4 x s16>) = COPY $d1
358 ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(<4 x s16>) = G_ICMP intpred(ugt), [[COPY]](<4 x s16>), [[COPY1]]
359 ; CHECK-NEXT: $d0 = COPY [[ICMP]](<4 x s16>)
360 ; CHECK-NEXT: RET_ReallyLR implicit $d0
361 %0:_(<4 x s16>) = COPY $d0
362 %1:_(<4 x s16>) = COPY $d1
363 %2:_(<4 x s1>) = G_ICMP intpred(ugt), %0(<4 x s16>), %1
364 %3:_(<4 x s16>) = G_ANYEXT %2(<4 x s1>)
365 $d0 = COPY %3(<4 x s16>)
366 RET_ReallyLR implicit $d0
372 tracksRegLiveness: true
374 - { id: 0, class: _ }
375 - { id: 1, class: _ }
376 - { id: 2, class: _ }
377 - { id: 3, class: _ }
378 machineFunctionInfo: {}
383 ; CHECK-LABEL: name: test_v16i8_ugt
384 ; CHECK: liveins: $q0, $q1
386 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(<16 x s8>) = COPY $q0
387 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(<16 x s8>) = COPY $q1
388 ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(<16 x s8>) = G_ICMP intpred(ugt), [[COPY]](<16 x s8>), [[COPY1]]
389 ; CHECK-NEXT: $q0 = COPY [[ICMP]](<16 x s8>)
390 ; CHECK-NEXT: RET_ReallyLR implicit $q0
391 %0:_(<16 x s8>) = COPY $q0
392 %1:_(<16 x s8>) = COPY $q1
393 %2:_(<16 x s1>) = G_ICMP intpred(ugt), %0(<16 x s8>), %1
394 %3:_(<16 x s8>) = G_ANYEXT %2(<16 x s1>)
395 $q0 = COPY %3(<16 x s8>)
396 RET_ReallyLR implicit $q0
402 tracksRegLiveness: true
404 - { id: 0, class: _ }
405 - { id: 1, class: _ }
406 - { id: 2, class: _ }
407 - { id: 3, class: _ }
408 machineFunctionInfo: {}
413 ; CHECK-LABEL: name: test_v8i8_ugt
414 ; CHECK: liveins: $d0, $d1
416 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(<8 x s8>) = COPY $d0
417 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(<8 x s8>) = COPY $d1
418 ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(<8 x s8>) = G_ICMP intpred(ugt), [[COPY]](<8 x s8>), [[COPY1]]
419 ; CHECK-NEXT: $d0 = COPY [[ICMP]](<8 x s8>)
420 ; CHECK-NEXT: RET_ReallyLR implicit $d0
421 %0:_(<8 x s8>) = COPY $d0
422 %1:_(<8 x s8>) = COPY $d1
423 %2:_(<8 x s1>) = G_ICMP intpred(ugt), %0(<8 x s8>), %1
424 %3:_(<8 x s8>) = G_ANYEXT %2(<8 x s1>)
425 $d0 = COPY %3(<8 x s8>)
426 RET_ReallyLR implicit $d0
432 tracksRegLiveness: true
434 - { id: 0, class: _ }
435 - { id: 1, class: _ }
436 - { id: 2, class: _ }
437 - { id: 3, class: _ }
438 machineFunctionInfo: {}
443 ; CHECK-LABEL: name: test_v2i64_uge
444 ; CHECK: liveins: $q0, $q1
446 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(<2 x s64>) = COPY $q0
447 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(<2 x s64>) = COPY $q1
448 ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(<2 x s64>) = G_ICMP intpred(uge), [[COPY]](<2 x s64>), [[COPY1]]
449 ; CHECK-NEXT: [[TRUNC:%[0-9]+]]:_(<2 x s32>) = G_TRUNC [[ICMP]](<2 x s64>)
450 ; CHECK-NEXT: $d0 = COPY [[TRUNC]](<2 x s32>)
451 ; CHECK-NEXT: RET_ReallyLR implicit $d0
452 %0:_(<2 x s64>) = COPY $q0
453 %1:_(<2 x s64>) = COPY $q1
454 %2:_(<2 x s1>) = G_ICMP intpred(uge), %0(<2 x s64>), %1
455 %3:_(<2 x s32>) = G_ANYEXT %2(<2 x s1>)
456 $d0 = COPY %3(<2 x s32>)
457 RET_ReallyLR implicit $d0
463 tracksRegLiveness: true
465 - { id: 0, class: _ }
466 - { id: 1, class: _ }
467 - { id: 2, class: _ }
468 - { id: 3, class: _ }
469 machineFunctionInfo: {}
474 ; CHECK-LABEL: name: test_v4i32_uge
475 ; CHECK: liveins: $q0, $q1
477 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(<4 x s32>) = COPY $q0
478 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(<4 x s32>) = COPY $q1
479 ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(<4 x s32>) = G_ICMP intpred(uge), [[COPY]](<4 x s32>), [[COPY1]]
480 ; CHECK-NEXT: [[TRUNC:%[0-9]+]]:_(<4 x s16>) = G_TRUNC [[ICMP]](<4 x s32>)
481 ; CHECK-NEXT: $d0 = COPY [[TRUNC]](<4 x s16>)
482 ; CHECK-NEXT: RET_ReallyLR implicit $d0
483 %0:_(<4 x s32>) = COPY $q0
484 %1:_(<4 x s32>) = COPY $q1
485 %2:_(<4 x s1>) = G_ICMP intpred(uge), %0(<4 x s32>), %1
486 %3:_(<4 x s16>) = G_ANYEXT %2(<4 x s1>)
487 $d0 = COPY %3(<4 x s16>)
488 RET_ReallyLR implicit $d0
494 tracksRegLiveness: true
496 - { id: 0, class: _ }
497 - { id: 1, class: _ }
498 - { id: 2, class: _ }
499 - { id: 3, class: _ }
500 machineFunctionInfo: {}
505 ; CHECK-LABEL: name: test_v2i32_uge
506 ; CHECK: liveins: $d0, $d1
508 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(<2 x s32>) = COPY $d0
509 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(<2 x s32>) = COPY $d1
510 ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(<2 x s32>) = G_ICMP intpred(uge), [[COPY]](<2 x s32>), [[COPY1]]
511 ; CHECK-NEXT: $d0 = COPY [[ICMP]](<2 x s32>)
512 ; CHECK-NEXT: RET_ReallyLR implicit $d0
513 %0:_(<2 x s32>) = COPY $d0
514 %1:_(<2 x s32>) = COPY $d1
515 %2:_(<2 x s1>) = G_ICMP intpred(uge), %0(<2 x s32>), %1
516 %3:_(<2 x s32>) = G_ANYEXT %2(<2 x s1>)
517 $d0 = COPY %3(<2 x s32>)
518 RET_ReallyLR implicit $d0
524 tracksRegLiveness: true
526 - { id: 0, class: _ }
527 - { id: 1, class: _ }
528 - { id: 2, class: _ }
529 - { id: 3, class: _ }
530 machineFunctionInfo: {}
535 ; CHECK-LABEL: name: test_v8i16_uge
536 ; CHECK: liveins: $q0, $q1
538 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(<8 x s16>) = COPY $q0
539 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(<8 x s16>) = COPY $q1
540 ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(<8 x s16>) = G_ICMP intpred(uge), [[COPY]](<8 x s16>), [[COPY1]]
541 ; CHECK-NEXT: [[TRUNC:%[0-9]+]]:_(<8 x s8>) = G_TRUNC [[ICMP]](<8 x s16>)
542 ; CHECK-NEXT: $d0 = COPY [[TRUNC]](<8 x s8>)
543 ; CHECK-NEXT: RET_ReallyLR implicit $d0
544 %0:_(<8 x s16>) = COPY $q0
545 %1:_(<8 x s16>) = COPY $q1
546 %2:_(<8 x s1>) = G_ICMP intpred(uge), %0(<8 x s16>), %1
547 %3:_(<8 x s8>) = G_ANYEXT %2(<8 x s1>)
548 $d0 = COPY %3(<8 x s8>)
549 RET_ReallyLR implicit $d0
555 tracksRegLiveness: true
557 - { id: 0, class: _ }
558 - { id: 1, class: _ }
559 - { id: 2, class: _ }
560 - { id: 3, class: _ }
561 machineFunctionInfo: {}
566 ; CHECK-LABEL: name: test_v4i16_uge
567 ; CHECK: liveins: $d0, $d1
569 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(<4 x s16>) = COPY $d0
570 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(<4 x s16>) = COPY $d1
571 ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(<4 x s16>) = G_ICMP intpred(uge), [[COPY]](<4 x s16>), [[COPY1]]
572 ; CHECK-NEXT: $d0 = COPY [[ICMP]](<4 x s16>)
573 ; CHECK-NEXT: RET_ReallyLR implicit $d0
574 %0:_(<4 x s16>) = COPY $d0
575 %1:_(<4 x s16>) = COPY $d1
576 %2:_(<4 x s1>) = G_ICMP intpred(uge), %0(<4 x s16>), %1
577 %3:_(<4 x s16>) = G_ANYEXT %2(<4 x s1>)
578 $d0 = COPY %3(<4 x s16>)
579 RET_ReallyLR implicit $d0
585 tracksRegLiveness: true
587 - { id: 0, class: _ }
588 - { id: 1, class: _ }
589 - { id: 2, class: _ }
590 - { id: 3, class: _ }
591 machineFunctionInfo: {}
596 ; CHECK-LABEL: name: test_v16i8_uge
597 ; CHECK: liveins: $q0, $q1
599 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(<16 x s8>) = COPY $q0
600 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(<16 x s8>) = COPY $q1
601 ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(<16 x s8>) = G_ICMP intpred(uge), [[COPY]](<16 x s8>), [[COPY1]]
602 ; CHECK-NEXT: $q0 = COPY [[ICMP]](<16 x s8>)
603 ; CHECK-NEXT: RET_ReallyLR implicit $q0
604 %0:_(<16 x s8>) = COPY $q0
605 %1:_(<16 x s8>) = COPY $q1
606 %2:_(<16 x s1>) = G_ICMP intpred(uge), %0(<16 x s8>), %1
607 %3:_(<16 x s8>) = G_ANYEXT %2(<16 x s1>)
608 $q0 = COPY %3(<16 x s8>)
609 RET_ReallyLR implicit $q0
615 tracksRegLiveness: true
617 - { id: 0, class: _ }
618 - { id: 1, class: _ }
619 - { id: 2, class: _ }
620 - { id: 3, class: _ }
621 machineFunctionInfo: {}
626 ; CHECK-LABEL: name: test_v8i8_uge
627 ; CHECK: liveins: $d0, $d1
629 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(<8 x s8>) = COPY $d0
630 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(<8 x s8>) = COPY $d1
631 ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(<8 x s8>) = G_ICMP intpred(uge), [[COPY]](<8 x s8>), [[COPY1]]
632 ; CHECK-NEXT: $d0 = COPY [[ICMP]](<8 x s8>)
633 ; CHECK-NEXT: RET_ReallyLR implicit $d0
634 %0:_(<8 x s8>) = COPY $d0
635 %1:_(<8 x s8>) = COPY $d1
636 %2:_(<8 x s1>) = G_ICMP intpred(uge), %0(<8 x s8>), %1
637 %3:_(<8 x s8>) = G_ANYEXT %2(<8 x s1>)
638 $d0 = COPY %3(<8 x s8>)
639 RET_ReallyLR implicit $d0
645 tracksRegLiveness: true
647 - { id: 0, class: _ }
648 - { id: 1, class: _ }
649 - { id: 2, class: _ }
650 - { id: 3, class: _ }
651 machineFunctionInfo: {}
656 ; CHECK-LABEL: name: test_v2i64_ult
657 ; CHECK: liveins: $q0, $q1
659 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(<2 x s64>) = COPY $q0
660 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(<2 x s64>) = COPY $q1
661 ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(<2 x s64>) = G_ICMP intpred(ult), [[COPY]](<2 x s64>), [[COPY1]]
662 ; CHECK-NEXT: [[TRUNC:%[0-9]+]]:_(<2 x s32>) = G_TRUNC [[ICMP]](<2 x s64>)
663 ; CHECK-NEXT: $d0 = COPY [[TRUNC]](<2 x s32>)
664 ; CHECK-NEXT: RET_ReallyLR implicit $d0
665 %0:_(<2 x s64>) = COPY $q0
666 %1:_(<2 x s64>) = COPY $q1
667 %2:_(<2 x s1>) = G_ICMP intpred(ult), %0(<2 x s64>), %1
668 %3:_(<2 x s32>) = G_ANYEXT %2(<2 x s1>)
669 $d0 = COPY %3(<2 x s32>)
670 RET_ReallyLR implicit $d0
676 tracksRegLiveness: true
678 - { id: 0, class: _ }
679 - { id: 1, class: _ }
680 - { id: 2, class: _ }
681 - { id: 3, class: _ }
682 machineFunctionInfo: {}
687 ; CHECK-LABEL: name: test_v4i32_ult
688 ; CHECK: liveins: $q0, $q1
690 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(<4 x s32>) = COPY $q0
691 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(<4 x s32>) = COPY $q1
692 ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(<4 x s32>) = G_ICMP intpred(ult), [[COPY]](<4 x s32>), [[COPY1]]
693 ; CHECK-NEXT: [[TRUNC:%[0-9]+]]:_(<4 x s16>) = G_TRUNC [[ICMP]](<4 x s32>)
694 ; CHECK-NEXT: $d0 = COPY [[TRUNC]](<4 x s16>)
695 ; CHECK-NEXT: RET_ReallyLR implicit $d0
696 %0:_(<4 x s32>) = COPY $q0
697 %1:_(<4 x s32>) = COPY $q1
698 %2:_(<4 x s1>) = G_ICMP intpred(ult), %0(<4 x s32>), %1
699 %3:_(<4 x s16>) = G_ANYEXT %2(<4 x s1>)
700 $d0 = COPY %3(<4 x s16>)
701 RET_ReallyLR implicit $d0
707 tracksRegLiveness: true
709 - { id: 0, class: _ }
710 - { id: 1, class: _ }
711 - { id: 2, class: _ }
712 - { id: 3, class: _ }
713 machineFunctionInfo: {}
718 ; CHECK-LABEL: name: test_v2i32_ult
719 ; CHECK: liveins: $d0, $d1
721 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(<2 x s32>) = COPY $d0
722 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(<2 x s32>) = COPY $d1
723 ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(<2 x s32>) = G_ICMP intpred(ult), [[COPY]](<2 x s32>), [[COPY1]]
724 ; CHECK-NEXT: $d0 = COPY [[ICMP]](<2 x s32>)
725 ; CHECK-NEXT: RET_ReallyLR implicit $d0
726 %0:_(<2 x s32>) = COPY $d0
727 %1:_(<2 x s32>) = COPY $d1
728 %2:_(<2 x s1>) = G_ICMP intpred(ult), %0(<2 x s32>), %1
729 %3:_(<2 x s32>) = G_ANYEXT %2(<2 x s1>)
730 $d0 = COPY %3(<2 x s32>)
731 RET_ReallyLR implicit $d0
737 tracksRegLiveness: true
739 - { id: 0, class: _ }
740 - { id: 1, class: _ }
741 - { id: 2, class: _ }
742 - { id: 3, class: _ }
743 machineFunctionInfo: {}
748 ; CHECK-LABEL: name: test_v8i16_ult
749 ; CHECK: liveins: $q0, $q1
751 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(<8 x s16>) = COPY $q0
752 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(<8 x s16>) = COPY $q1
753 ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(<8 x s16>) = G_ICMP intpred(ult), [[COPY]](<8 x s16>), [[COPY1]]
754 ; CHECK-NEXT: [[TRUNC:%[0-9]+]]:_(<8 x s8>) = G_TRUNC [[ICMP]](<8 x s16>)
755 ; CHECK-NEXT: $d0 = COPY [[TRUNC]](<8 x s8>)
756 ; CHECK-NEXT: RET_ReallyLR implicit $d0
757 %0:_(<8 x s16>) = COPY $q0
758 %1:_(<8 x s16>) = COPY $q1
759 %2:_(<8 x s1>) = G_ICMP intpred(ult), %0(<8 x s16>), %1
760 %3:_(<8 x s8>) = G_ANYEXT %2(<8 x s1>)
761 $d0 = COPY %3(<8 x s8>)
762 RET_ReallyLR implicit $d0
768 tracksRegLiveness: true
770 - { id: 0, class: _ }
771 - { id: 1, class: _ }
772 - { id: 2, class: _ }
773 - { id: 3, class: _ }
774 machineFunctionInfo: {}
779 ; CHECK-LABEL: name: test_v4i16_ult
780 ; CHECK: liveins: $d0, $d1
782 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(<4 x s16>) = COPY $d0
783 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(<4 x s16>) = COPY $d1
784 ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(<4 x s16>) = G_ICMP intpred(ult), [[COPY]](<4 x s16>), [[COPY1]]
785 ; CHECK-NEXT: $d0 = COPY [[ICMP]](<4 x s16>)
786 ; CHECK-NEXT: RET_ReallyLR implicit $d0
787 %0:_(<4 x s16>) = COPY $d0
788 %1:_(<4 x s16>) = COPY $d1
789 %2:_(<4 x s1>) = G_ICMP intpred(ult), %0(<4 x s16>), %1
790 %3:_(<4 x s16>) = G_ANYEXT %2(<4 x s1>)
791 $d0 = COPY %3(<4 x s16>)
792 RET_ReallyLR implicit $d0
798 tracksRegLiveness: true
800 - { id: 0, class: _ }
801 - { id: 1, class: _ }
802 - { id: 2, class: _ }
803 - { id: 3, class: _ }
804 machineFunctionInfo: {}
809 ; CHECK-LABEL: name: test_v16i8_ult
810 ; CHECK: liveins: $q0, $q1
812 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(<16 x s8>) = COPY $q0
813 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(<16 x s8>) = COPY $q1
814 ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(<16 x s8>) = G_ICMP intpred(ult), [[COPY]](<16 x s8>), [[COPY1]]
815 ; CHECK-NEXT: $q0 = COPY [[ICMP]](<16 x s8>)
816 ; CHECK-NEXT: RET_ReallyLR implicit $q0
817 %0:_(<16 x s8>) = COPY $q0
818 %1:_(<16 x s8>) = COPY $q1
819 %2:_(<16 x s1>) = G_ICMP intpred(ult), %0(<16 x s8>), %1
820 %3:_(<16 x s8>) = G_ANYEXT %2(<16 x s1>)
821 $q0 = COPY %3(<16 x s8>)
822 RET_ReallyLR implicit $q0
828 tracksRegLiveness: true
830 - { id: 0, class: _ }
831 - { id: 1, class: _ }
832 - { id: 2, class: _ }
833 - { id: 3, class: _ }
834 machineFunctionInfo: {}
839 ; CHECK-LABEL: name: test_v8i8_ult
840 ; CHECK: liveins: $d0, $d1
842 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(<8 x s8>) = COPY $d0
843 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(<8 x s8>) = COPY $d1
844 ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(<8 x s8>) = G_ICMP intpred(ult), [[COPY]](<8 x s8>), [[COPY1]]
845 ; CHECK-NEXT: $d0 = COPY [[ICMP]](<8 x s8>)
846 ; CHECK-NEXT: RET_ReallyLR implicit $d0
847 %0:_(<8 x s8>) = COPY $d0
848 %1:_(<8 x s8>) = COPY $d1
849 %2:_(<8 x s1>) = G_ICMP intpred(ult), %0(<8 x s8>), %1
850 %3:_(<8 x s8>) = G_ANYEXT %2(<8 x s1>)
851 $d0 = COPY %3(<8 x s8>)
852 RET_ReallyLR implicit $d0
858 tracksRegLiveness: true
860 - { id: 0, class: _ }
861 - { id: 1, class: _ }
862 - { id: 2, class: _ }
863 - { id: 3, class: _ }
864 machineFunctionInfo: {}
869 ; CHECK-LABEL: name: test_v2i64_ule
870 ; CHECK: liveins: $q0, $q1
872 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(<2 x s64>) = COPY $q0
873 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(<2 x s64>) = COPY $q1
874 ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(<2 x s64>) = G_ICMP intpred(ule), [[COPY]](<2 x s64>), [[COPY1]]
875 ; CHECK-NEXT: [[TRUNC:%[0-9]+]]:_(<2 x s32>) = G_TRUNC [[ICMP]](<2 x s64>)
876 ; CHECK-NEXT: $d0 = COPY [[TRUNC]](<2 x s32>)
877 ; CHECK-NEXT: RET_ReallyLR implicit $d0
878 %0:_(<2 x s64>) = COPY $q0
879 %1:_(<2 x s64>) = COPY $q1
880 %2:_(<2 x s1>) = G_ICMP intpred(ule), %0(<2 x s64>), %1
881 %3:_(<2 x s32>) = G_ANYEXT %2(<2 x s1>)
882 $d0 = COPY %3(<2 x s32>)
883 RET_ReallyLR implicit $d0
889 tracksRegLiveness: true
891 - { id: 0, class: _ }
892 - { id: 1, class: _ }
893 - { id: 2, class: _ }
894 - { id: 3, class: _ }
895 machineFunctionInfo: {}
900 ; CHECK-LABEL: name: test_v4i32_ule
901 ; CHECK: liveins: $q0, $q1
903 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(<4 x s32>) = COPY $q0
904 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(<4 x s32>) = COPY $q1
905 ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(<4 x s32>) = G_ICMP intpred(ule), [[COPY]](<4 x s32>), [[COPY1]]
906 ; CHECK-NEXT: [[TRUNC:%[0-9]+]]:_(<4 x s16>) = G_TRUNC [[ICMP]](<4 x s32>)
907 ; CHECK-NEXT: $d0 = COPY [[TRUNC]](<4 x s16>)
908 ; CHECK-NEXT: RET_ReallyLR implicit $d0
909 %0:_(<4 x s32>) = COPY $q0
910 %1:_(<4 x s32>) = COPY $q1
911 %2:_(<4 x s1>) = G_ICMP intpred(ule), %0(<4 x s32>), %1
912 %3:_(<4 x s16>) = G_ANYEXT %2(<4 x s1>)
913 $d0 = COPY %3(<4 x s16>)
914 RET_ReallyLR implicit $d0
920 tracksRegLiveness: true
922 - { id: 0, class: _ }
923 - { id: 1, class: _ }
924 - { id: 2, class: _ }
925 - { id: 3, class: _ }
926 machineFunctionInfo: {}
931 ; CHECK-LABEL: name: test_v2i32_ule
932 ; CHECK: liveins: $d0, $d1
934 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(<2 x s32>) = COPY $d0
935 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(<2 x s32>) = COPY $d1
936 ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(<2 x s32>) = G_ICMP intpred(ule), [[COPY]](<2 x s32>), [[COPY1]]
937 ; CHECK-NEXT: $d0 = COPY [[ICMP]](<2 x s32>)
938 ; CHECK-NEXT: RET_ReallyLR implicit $d0
939 %0:_(<2 x s32>) = COPY $d0
940 %1:_(<2 x s32>) = COPY $d1
941 %2:_(<2 x s1>) = G_ICMP intpred(ule), %0(<2 x s32>), %1
942 %3:_(<2 x s32>) = G_ANYEXT %2(<2 x s1>)
943 $d0 = COPY %3(<2 x s32>)
944 RET_ReallyLR implicit $d0
950 tracksRegLiveness: true
952 - { id: 0, class: _ }
953 - { id: 1, class: _ }
954 - { id: 2, class: _ }
955 - { id: 3, class: _ }
956 machineFunctionInfo: {}
961 ; CHECK-LABEL: name: test_v8i16_ule
962 ; CHECK: liveins: $q0, $q1
964 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(<8 x s16>) = COPY $q0
965 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(<8 x s16>) = COPY $q1
966 ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(<8 x s16>) = G_ICMP intpred(ule), [[COPY]](<8 x s16>), [[COPY1]]
967 ; CHECK-NEXT: [[TRUNC:%[0-9]+]]:_(<8 x s8>) = G_TRUNC [[ICMP]](<8 x s16>)
968 ; CHECK-NEXT: $d0 = COPY [[TRUNC]](<8 x s8>)
969 ; CHECK-NEXT: RET_ReallyLR implicit $d0
970 %0:_(<8 x s16>) = COPY $q0
971 %1:_(<8 x s16>) = COPY $q1
972 %2:_(<8 x s1>) = G_ICMP intpred(ule), %0(<8 x s16>), %1
973 %3:_(<8 x s8>) = G_ANYEXT %2(<8 x s1>)
974 $d0 = COPY %3(<8 x s8>)
975 RET_ReallyLR implicit $d0
981 tracksRegLiveness: true
983 - { id: 0, class: _ }
984 - { id: 1, class: _ }
985 - { id: 2, class: _ }
986 - { id: 3, class: _ }
987 machineFunctionInfo: {}
992 ; CHECK-LABEL: name: test_v4i16_ule
993 ; CHECK: liveins: $d0, $d1
995 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(<4 x s16>) = COPY $d0
996 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(<4 x s16>) = COPY $d1
997 ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(<4 x s16>) = G_ICMP intpred(ule), [[COPY]](<4 x s16>), [[COPY1]]
998 ; CHECK-NEXT: $d0 = COPY [[ICMP]](<4 x s16>)
999 ; CHECK-NEXT: RET_ReallyLR implicit $d0
1000 %0:_(<4 x s16>) = COPY $d0
1001 %1:_(<4 x s16>) = COPY $d1
1002 %2:_(<4 x s1>) = G_ICMP intpred(ule), %0(<4 x s16>), %1
1003 %3:_(<4 x s16>) = G_ANYEXT %2(<4 x s1>)
1004 $d0 = COPY %3(<4 x s16>)
1005 RET_ReallyLR implicit $d0
1009 name: test_v16i8_ule
1011 tracksRegLiveness: true
1013 - { id: 0, class: _ }
1014 - { id: 1, class: _ }
1015 - { id: 2, class: _ }
1016 - { id: 3, class: _ }
1017 machineFunctionInfo: {}
1022 ; CHECK-LABEL: name: test_v16i8_ule
1023 ; CHECK: liveins: $q0, $q1
1024 ; CHECK-NEXT: {{ $}}
1025 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(<16 x s8>) = COPY $q0
1026 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(<16 x s8>) = COPY $q1
1027 ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(<16 x s8>) = G_ICMP intpred(ule), [[COPY]](<16 x s8>), [[COPY1]]
1028 ; CHECK-NEXT: $q0 = COPY [[ICMP]](<16 x s8>)
1029 ; CHECK-NEXT: RET_ReallyLR implicit $q0
1030 %0:_(<16 x s8>) = COPY $q0
1031 %1:_(<16 x s8>) = COPY $q1
1032 %2:_(<16 x s1>) = G_ICMP intpred(ule), %0(<16 x s8>), %1
1033 %3:_(<16 x s8>) = G_ANYEXT %2(<16 x s1>)
1034 $q0 = COPY %3(<16 x s8>)
1035 RET_ReallyLR implicit $q0
1041 tracksRegLiveness: true
1043 - { id: 0, class: _ }
1044 - { id: 1, class: _ }
1045 - { id: 2, class: _ }
1046 - { id: 3, class: _ }
1047 machineFunctionInfo: {}
1052 ; CHECK-LABEL: name: test_v8i8_ule
1053 ; CHECK: liveins: $d0, $d1
1054 ; CHECK-NEXT: {{ $}}
1055 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(<8 x s8>) = COPY $d0
1056 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(<8 x s8>) = COPY $d1
1057 ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(<8 x s8>) = G_ICMP intpred(ule), [[COPY]](<8 x s8>), [[COPY1]]
1058 ; CHECK-NEXT: $d0 = COPY [[ICMP]](<8 x s8>)
1059 ; CHECK-NEXT: RET_ReallyLR implicit $d0
1060 %0:_(<8 x s8>) = COPY $d0
1061 %1:_(<8 x s8>) = COPY $d1
1062 %2:_(<8 x s1>) = G_ICMP intpred(ule), %0(<8 x s8>), %1
1063 %3:_(<8 x s8>) = G_ANYEXT %2(<8 x s1>)
1064 $d0 = COPY %3(<8 x s8>)
1065 RET_ReallyLR implicit $d0
1069 name: test_v2i64_sgt
1071 tracksRegLiveness: true
1073 - { id: 0, class: _ }
1074 - { id: 1, class: _ }
1075 - { id: 2, class: _ }
1076 - { id: 3, class: _ }
1077 machineFunctionInfo: {}
1082 ; CHECK-LABEL: name: test_v2i64_sgt
1083 ; CHECK: liveins: $q0, $q1
1084 ; CHECK-NEXT: {{ $}}
1085 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(<2 x s64>) = COPY $q0
1086 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(<2 x s64>) = COPY $q1
1087 ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(<2 x s64>) = G_ICMP intpred(sgt), [[COPY]](<2 x s64>), [[COPY1]]
1088 ; CHECK-NEXT: [[TRUNC:%[0-9]+]]:_(<2 x s32>) = G_TRUNC [[ICMP]](<2 x s64>)
1089 ; CHECK-NEXT: $d0 = COPY [[TRUNC]](<2 x s32>)
1090 ; CHECK-NEXT: RET_ReallyLR implicit $d0
1091 %0:_(<2 x s64>) = COPY $q0
1092 %1:_(<2 x s64>) = COPY $q1
1093 %2:_(<2 x s1>) = G_ICMP intpred(sgt), %0(<2 x s64>), %1
1094 %3:_(<2 x s32>) = G_ANYEXT %2(<2 x s1>)
1095 $d0 = COPY %3(<2 x s32>)
1096 RET_ReallyLR implicit $d0
1100 name: test_v4i32_sgt
1102 tracksRegLiveness: true
1104 - { id: 0, class: _ }
1105 - { id: 1, class: _ }
1106 - { id: 2, class: _ }
1107 - { id: 3, class: _ }
1108 machineFunctionInfo: {}
1113 ; CHECK-LABEL: name: test_v4i32_sgt
1114 ; CHECK: liveins: $q0, $q1
1115 ; CHECK-NEXT: {{ $}}
1116 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(<4 x s32>) = COPY $q0
1117 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(<4 x s32>) = COPY $q1
1118 ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(<4 x s32>) = G_ICMP intpred(sgt), [[COPY]](<4 x s32>), [[COPY1]]
1119 ; CHECK-NEXT: [[TRUNC:%[0-9]+]]:_(<4 x s16>) = G_TRUNC [[ICMP]](<4 x s32>)
1120 ; CHECK-NEXT: $d0 = COPY [[TRUNC]](<4 x s16>)
1121 ; CHECK-NEXT: RET_ReallyLR implicit $d0
1122 %0:_(<4 x s32>) = COPY $q0
1123 %1:_(<4 x s32>) = COPY $q1
1124 %2:_(<4 x s1>) = G_ICMP intpred(sgt), %0(<4 x s32>), %1
1125 %3:_(<4 x s16>) = G_ANYEXT %2(<4 x s1>)
1126 $d0 = COPY %3(<4 x s16>)
1127 RET_ReallyLR implicit $d0
1131 name: test_v2i32_sgt
1133 tracksRegLiveness: true
1135 - { id: 0, class: _ }
1136 - { id: 1, class: _ }
1137 - { id: 2, class: _ }
1138 - { id: 3, class: _ }
1139 machineFunctionInfo: {}
1144 ; CHECK-LABEL: name: test_v2i32_sgt
1145 ; CHECK: liveins: $d0, $d1
1146 ; CHECK-NEXT: {{ $}}
1147 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(<2 x s32>) = COPY $d0
1148 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(<2 x s32>) = COPY $d1
1149 ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(<2 x s32>) = G_ICMP intpred(sgt), [[COPY]](<2 x s32>), [[COPY1]]
1150 ; CHECK-NEXT: $d0 = COPY [[ICMP]](<2 x s32>)
1151 ; CHECK-NEXT: RET_ReallyLR implicit $d0
1152 %0:_(<2 x s32>) = COPY $d0
1153 %1:_(<2 x s32>) = COPY $d1
1154 %2:_(<2 x s1>) = G_ICMP intpred(sgt), %0(<2 x s32>), %1
1155 %3:_(<2 x s32>) = G_ANYEXT %2(<2 x s1>)
1156 $d0 = COPY %3(<2 x s32>)
1157 RET_ReallyLR implicit $d0
1161 name: test_v8i16_sgt
1163 tracksRegLiveness: true
1165 - { id: 0, class: _ }
1166 - { id: 1, class: _ }
1167 - { id: 2, class: _ }
1168 - { id: 3, class: _ }
1169 machineFunctionInfo: {}
1174 ; CHECK-LABEL: name: test_v8i16_sgt
1175 ; CHECK: liveins: $q0, $q1
1176 ; CHECK-NEXT: {{ $}}
1177 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(<8 x s16>) = COPY $q0
1178 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(<8 x s16>) = COPY $q1
1179 ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(<8 x s16>) = G_ICMP intpred(sgt), [[COPY]](<8 x s16>), [[COPY1]]
1180 ; CHECK-NEXT: [[TRUNC:%[0-9]+]]:_(<8 x s8>) = G_TRUNC [[ICMP]](<8 x s16>)
1181 ; CHECK-NEXT: $d0 = COPY [[TRUNC]](<8 x s8>)
1182 ; CHECK-NEXT: RET_ReallyLR implicit $d0
1183 %0:_(<8 x s16>) = COPY $q0
1184 %1:_(<8 x s16>) = COPY $q1
1185 %2:_(<8 x s1>) = G_ICMP intpred(sgt), %0(<8 x s16>), %1
1186 %3:_(<8 x s8>) = G_ANYEXT %2(<8 x s1>)
1187 $d0 = COPY %3(<8 x s8>)
1188 RET_ReallyLR implicit $d0
1192 name: test_v4i16_sgt
1194 tracksRegLiveness: true
1196 - { id: 0, class: _ }
1197 - { id: 1, class: _ }
1198 - { id: 2, class: _ }
1199 - { id: 3, class: _ }
1200 machineFunctionInfo: {}
1205 ; CHECK-LABEL: name: test_v4i16_sgt
1206 ; CHECK: liveins: $d0, $d1
1207 ; CHECK-NEXT: {{ $}}
1208 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(<4 x s16>) = COPY $d0
1209 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(<4 x s16>) = COPY $d1
1210 ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(<4 x s16>) = G_ICMP intpred(sgt), [[COPY]](<4 x s16>), [[COPY1]]
1211 ; CHECK-NEXT: $d0 = COPY [[ICMP]](<4 x s16>)
1212 ; CHECK-NEXT: RET_ReallyLR implicit $d0
1213 %0:_(<4 x s16>) = COPY $d0
1214 %1:_(<4 x s16>) = COPY $d1
1215 %2:_(<4 x s1>) = G_ICMP intpred(sgt), %0(<4 x s16>), %1
1216 %3:_(<4 x s16>) = G_ANYEXT %2(<4 x s1>)
1217 $d0 = COPY %3(<4 x s16>)
1218 RET_ReallyLR implicit $d0
1222 name: test_v16i8_sgt
1224 tracksRegLiveness: true
1226 - { id: 0, class: _ }
1227 - { id: 1, class: _ }
1228 - { id: 2, class: _ }
1229 - { id: 3, class: _ }
1230 machineFunctionInfo: {}
1235 ; CHECK-LABEL: name: test_v16i8_sgt
1236 ; CHECK: liveins: $q0, $q1
1237 ; CHECK-NEXT: {{ $}}
1238 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(<16 x s8>) = COPY $q0
1239 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(<16 x s8>) = COPY $q1
1240 ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(<16 x s8>) = G_ICMP intpred(sgt), [[COPY]](<16 x s8>), [[COPY1]]
1241 ; CHECK-NEXT: $q0 = COPY [[ICMP]](<16 x s8>)
1242 ; CHECK-NEXT: RET_ReallyLR implicit $q0
1243 %0:_(<16 x s8>) = COPY $q0
1244 %1:_(<16 x s8>) = COPY $q1
1245 %2:_(<16 x s1>) = G_ICMP intpred(sgt), %0(<16 x s8>), %1
1246 %3:_(<16 x s8>) = G_ANYEXT %2(<16 x s1>)
1247 $q0 = COPY %3(<16 x s8>)
1248 RET_ReallyLR implicit $q0
1254 tracksRegLiveness: true
1256 - { id: 0, class: _ }
1257 - { id: 1, class: _ }
1258 - { id: 2, class: _ }
1259 - { id: 3, class: _ }
1260 machineFunctionInfo: {}
1265 ; CHECK-LABEL: name: test_v8i8_sgt
1266 ; CHECK: liveins: $d0, $d1
1267 ; CHECK-NEXT: {{ $}}
1268 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(<8 x s8>) = COPY $d0
1269 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(<8 x s8>) = COPY $d1
1270 ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(<8 x s8>) = G_ICMP intpred(sgt), [[COPY]](<8 x s8>), [[COPY1]]
1271 ; CHECK-NEXT: $d0 = COPY [[ICMP]](<8 x s8>)
1272 ; CHECK-NEXT: RET_ReallyLR implicit $d0
1273 %0:_(<8 x s8>) = COPY $d0
1274 %1:_(<8 x s8>) = COPY $d1
1275 %2:_(<8 x s1>) = G_ICMP intpred(sgt), %0(<8 x s8>), %1
1276 %3:_(<8 x s8>) = G_ANYEXT %2(<8 x s1>)
1277 $d0 = COPY %3(<8 x s8>)
1278 RET_ReallyLR implicit $d0
1282 name: test_v2i64_sge
1284 tracksRegLiveness: true
1286 - { id: 0, class: _ }
1287 - { id: 1, class: _ }
1288 - { id: 2, class: _ }
1289 - { id: 3, class: _ }
1290 machineFunctionInfo: {}
1295 ; CHECK-LABEL: name: test_v2i64_sge
1296 ; CHECK: liveins: $q0, $q1
1297 ; CHECK-NEXT: {{ $}}
1298 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(<2 x s64>) = COPY $q0
1299 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(<2 x s64>) = COPY $q1
1300 ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(<2 x s64>) = G_ICMP intpred(sge), [[COPY]](<2 x s64>), [[COPY1]]
1301 ; CHECK-NEXT: [[TRUNC:%[0-9]+]]:_(<2 x s32>) = G_TRUNC [[ICMP]](<2 x s64>)
1302 ; CHECK-NEXT: $d0 = COPY [[TRUNC]](<2 x s32>)
1303 ; CHECK-NEXT: RET_ReallyLR implicit $d0
1304 %0:_(<2 x s64>) = COPY $q0
1305 %1:_(<2 x s64>) = COPY $q1
1306 %2:_(<2 x s1>) = G_ICMP intpred(sge), %0(<2 x s64>), %1
1307 %3:_(<2 x s32>) = G_ANYEXT %2(<2 x s1>)
1308 $d0 = COPY %3(<2 x s32>)
1309 RET_ReallyLR implicit $d0
1313 name: test_v4i32_sge
1315 tracksRegLiveness: true
1317 - { id: 0, class: _ }
1318 - { id: 1, class: _ }
1319 - { id: 2, class: _ }
1320 - { id: 3, class: _ }
1321 machineFunctionInfo: {}
1326 ; CHECK-LABEL: name: test_v4i32_sge
1327 ; CHECK: liveins: $q0, $q1
1328 ; CHECK-NEXT: {{ $}}
1329 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(<4 x s32>) = COPY $q0
1330 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(<4 x s32>) = COPY $q1
1331 ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(<4 x s32>) = G_ICMP intpred(sge), [[COPY]](<4 x s32>), [[COPY1]]
1332 ; CHECK-NEXT: [[TRUNC:%[0-9]+]]:_(<4 x s16>) = G_TRUNC [[ICMP]](<4 x s32>)
1333 ; CHECK-NEXT: $d0 = COPY [[TRUNC]](<4 x s16>)
1334 ; CHECK-NEXT: RET_ReallyLR implicit $d0
1335 %0:_(<4 x s32>) = COPY $q0
1336 %1:_(<4 x s32>) = COPY $q1
1337 %2:_(<4 x s1>) = G_ICMP intpred(sge), %0(<4 x s32>), %1
1338 %3:_(<4 x s16>) = G_ANYEXT %2(<4 x s1>)
1339 $d0 = COPY %3(<4 x s16>)
1340 RET_ReallyLR implicit $d0
1344 name: test_v2i32_sge
1346 tracksRegLiveness: true
1348 - { id: 0, class: _ }
1349 - { id: 1, class: _ }
1350 - { id: 2, class: _ }
1351 - { id: 3, class: _ }
1352 machineFunctionInfo: {}
1357 ; CHECK-LABEL: name: test_v2i32_sge
1358 ; CHECK: liveins: $d0, $d1
1359 ; CHECK-NEXT: {{ $}}
1360 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(<2 x s32>) = COPY $d0
1361 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(<2 x s32>) = COPY $d1
1362 ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(<2 x s32>) = G_ICMP intpred(sge), [[COPY]](<2 x s32>), [[COPY1]]
1363 ; CHECK-NEXT: $d0 = COPY [[ICMP]](<2 x s32>)
1364 ; CHECK-NEXT: RET_ReallyLR implicit $d0
1365 %0:_(<2 x s32>) = COPY $d0
1366 %1:_(<2 x s32>) = COPY $d1
1367 %2:_(<2 x s1>) = G_ICMP intpred(sge), %0(<2 x s32>), %1
1368 %3:_(<2 x s32>) = G_ANYEXT %2(<2 x s1>)
1369 $d0 = COPY %3(<2 x s32>)
1370 RET_ReallyLR implicit $d0
1374 name: test_v8i16_sge
1376 tracksRegLiveness: true
1378 - { id: 0, class: _ }
1379 - { id: 1, class: _ }
1380 - { id: 2, class: _ }
1381 - { id: 3, class: _ }
1382 machineFunctionInfo: {}
1387 ; CHECK-LABEL: name: test_v8i16_sge
1388 ; CHECK: liveins: $q0, $q1
1389 ; CHECK-NEXT: {{ $}}
1390 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(<8 x s16>) = COPY $q0
1391 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(<8 x s16>) = COPY $q1
1392 ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(<8 x s16>) = G_ICMP intpred(sge), [[COPY]](<8 x s16>), [[COPY1]]
1393 ; CHECK-NEXT: [[TRUNC:%[0-9]+]]:_(<8 x s8>) = G_TRUNC [[ICMP]](<8 x s16>)
1394 ; CHECK-NEXT: $d0 = COPY [[TRUNC]](<8 x s8>)
1395 ; CHECK-NEXT: RET_ReallyLR implicit $d0
1396 %0:_(<8 x s16>) = COPY $q0
1397 %1:_(<8 x s16>) = COPY $q1
1398 %2:_(<8 x s1>) = G_ICMP intpred(sge), %0(<8 x s16>), %1
1399 %3:_(<8 x s8>) = G_ANYEXT %2(<8 x s1>)
1400 $d0 = COPY %3(<8 x s8>)
1401 RET_ReallyLR implicit $d0
1405 name: test_v4i16_sge
1407 tracksRegLiveness: true
1409 - { id: 0, class: _ }
1410 - { id: 1, class: _ }
1411 - { id: 2, class: _ }
1412 - { id: 3, class: _ }
1413 machineFunctionInfo: {}
1418 ; CHECK-LABEL: name: test_v4i16_sge
1419 ; CHECK: liveins: $d0, $d1
1420 ; CHECK-NEXT: {{ $}}
1421 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(<4 x s16>) = COPY $d0
1422 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(<4 x s16>) = COPY $d1
1423 ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(<4 x s16>) = G_ICMP intpred(sge), [[COPY]](<4 x s16>), [[COPY1]]
1424 ; CHECK-NEXT: $d0 = COPY [[ICMP]](<4 x s16>)
1425 ; CHECK-NEXT: RET_ReallyLR implicit $d0
1426 %0:_(<4 x s16>) = COPY $d0
1427 %1:_(<4 x s16>) = COPY $d1
1428 %2:_(<4 x s1>) = G_ICMP intpred(sge), %0(<4 x s16>), %1
1429 %3:_(<4 x s16>) = G_ANYEXT %2(<4 x s1>)
1430 $d0 = COPY %3(<4 x s16>)
1431 RET_ReallyLR implicit $d0
1435 name: test_v16i8_sge
1437 tracksRegLiveness: true
1439 - { id: 0, class: _ }
1440 - { id: 1, class: _ }
1441 - { id: 2, class: _ }
1442 - { id: 3, class: _ }
1443 machineFunctionInfo: {}
1448 ; CHECK-LABEL: name: test_v16i8_sge
1449 ; CHECK: liveins: $q0, $q1
1450 ; CHECK-NEXT: {{ $}}
1451 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(<16 x s8>) = COPY $q0
1452 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(<16 x s8>) = COPY $q1
1453 ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(<16 x s8>) = G_ICMP intpred(sge), [[COPY]](<16 x s8>), [[COPY1]]
1454 ; CHECK-NEXT: $q0 = COPY [[ICMP]](<16 x s8>)
1455 ; CHECK-NEXT: RET_ReallyLR implicit $q0
1456 %0:_(<16 x s8>) = COPY $q0
1457 %1:_(<16 x s8>) = COPY $q1
1458 %2:_(<16 x s1>) = G_ICMP intpred(sge), %0(<16 x s8>), %1
1459 %3:_(<16 x s8>) = G_ANYEXT %2(<16 x s1>)
1460 $q0 = COPY %3(<16 x s8>)
1461 RET_ReallyLR implicit $q0
1467 tracksRegLiveness: true
1469 - { id: 0, class: _ }
1470 - { id: 1, class: _ }
1471 - { id: 2, class: _ }
1472 - { id: 3, class: _ }
1473 machineFunctionInfo: {}
1478 ; CHECK-LABEL: name: test_v8i8_sge
1479 ; CHECK: liveins: $d0, $d1
1480 ; CHECK-NEXT: {{ $}}
1481 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(<8 x s8>) = COPY $d0
1482 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(<8 x s8>) = COPY $d1
1483 ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(<8 x s8>) = G_ICMP intpred(sge), [[COPY]](<8 x s8>), [[COPY1]]
1484 ; CHECK-NEXT: $d0 = COPY [[ICMP]](<8 x s8>)
1485 ; CHECK-NEXT: RET_ReallyLR implicit $d0
1486 %0:_(<8 x s8>) = COPY $d0
1487 %1:_(<8 x s8>) = COPY $d1
1488 %2:_(<8 x s1>) = G_ICMP intpred(sge), %0(<8 x s8>), %1
1489 %3:_(<8 x s8>) = G_ANYEXT %2(<8 x s1>)
1490 $d0 = COPY %3(<8 x s8>)
1491 RET_ReallyLR implicit $d0
1495 name: test_v2i64_slt
1497 tracksRegLiveness: true
1499 - { id: 0, class: _ }
1500 - { id: 1, class: _ }
1501 - { id: 2, class: _ }
1502 - { id: 3, class: _ }
1503 machineFunctionInfo: {}
1508 ; CHECK-LABEL: name: test_v2i64_slt
1509 ; CHECK: liveins: $q0, $q1
1510 ; CHECK-NEXT: {{ $}}
1511 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(<2 x s64>) = COPY $q0
1512 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(<2 x s64>) = COPY $q1
1513 ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(<2 x s64>) = G_ICMP intpred(slt), [[COPY]](<2 x s64>), [[COPY1]]
1514 ; CHECK-NEXT: [[TRUNC:%[0-9]+]]:_(<2 x s32>) = G_TRUNC [[ICMP]](<2 x s64>)
1515 ; CHECK-NEXT: $d0 = COPY [[TRUNC]](<2 x s32>)
1516 ; CHECK-NEXT: RET_ReallyLR implicit $d0
1517 %0:_(<2 x s64>) = COPY $q0
1518 %1:_(<2 x s64>) = COPY $q1
1519 %2:_(<2 x s1>) = G_ICMP intpred(slt), %0(<2 x s64>), %1
1520 %3:_(<2 x s32>) = G_ANYEXT %2(<2 x s1>)
1521 $d0 = COPY %3(<2 x s32>)
1522 RET_ReallyLR implicit $d0
1526 name: test_v4i32_slt
1528 tracksRegLiveness: true
1530 - { id: 0, class: _ }
1531 - { id: 1, class: _ }
1532 - { id: 2, class: _ }
1533 - { id: 3, class: _ }
1534 machineFunctionInfo: {}
1539 ; CHECK-LABEL: name: test_v4i32_slt
1540 ; CHECK: liveins: $q0, $q1
1541 ; CHECK-NEXT: {{ $}}
1542 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(<4 x s32>) = COPY $q0
1543 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(<4 x s32>) = COPY $q1
1544 ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(<4 x s32>) = G_ICMP intpred(slt), [[COPY]](<4 x s32>), [[COPY1]]
1545 ; CHECK-NEXT: [[TRUNC:%[0-9]+]]:_(<4 x s16>) = G_TRUNC [[ICMP]](<4 x s32>)
1546 ; CHECK-NEXT: $d0 = COPY [[TRUNC]](<4 x s16>)
1547 ; CHECK-NEXT: RET_ReallyLR implicit $d0
1548 %0:_(<4 x s32>) = COPY $q0
1549 %1:_(<4 x s32>) = COPY $q1
1550 %2:_(<4 x s1>) = G_ICMP intpred(slt), %0(<4 x s32>), %1
1551 %3:_(<4 x s16>) = G_ANYEXT %2(<4 x s1>)
1552 $d0 = COPY %3(<4 x s16>)
1553 RET_ReallyLR implicit $d0
1557 name: test_v2i32_slt
1559 tracksRegLiveness: true
1561 - { id: 0, class: _ }
1562 - { id: 1, class: _ }
1563 - { id: 2, class: _ }
1564 - { id: 3, class: _ }
1565 machineFunctionInfo: {}
1570 ; CHECK-LABEL: name: test_v2i32_slt
1571 ; CHECK: liveins: $d0, $d1
1572 ; CHECK-NEXT: {{ $}}
1573 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(<2 x s32>) = COPY $d0
1574 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(<2 x s32>) = COPY $d1
1575 ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(<2 x s32>) = G_ICMP intpred(slt), [[COPY]](<2 x s32>), [[COPY1]]
1576 ; CHECK-NEXT: $d0 = COPY [[ICMP]](<2 x s32>)
1577 ; CHECK-NEXT: RET_ReallyLR implicit $d0
1578 %0:_(<2 x s32>) = COPY $d0
1579 %1:_(<2 x s32>) = COPY $d1
1580 %2:_(<2 x s1>) = G_ICMP intpred(slt), %0(<2 x s32>), %1
1581 %3:_(<2 x s32>) = G_ANYEXT %2(<2 x s1>)
1582 $d0 = COPY %3(<2 x s32>)
1583 RET_ReallyLR implicit $d0
1587 name: test_v8i16_slt
1589 tracksRegLiveness: true
1591 - { id: 0, class: _ }
1592 - { id: 1, class: _ }
1593 - { id: 2, class: _ }
1594 - { id: 3, class: _ }
1595 machineFunctionInfo: {}
1600 ; CHECK-LABEL: name: test_v8i16_slt
1601 ; CHECK: liveins: $q0, $q1
1602 ; CHECK-NEXT: {{ $}}
1603 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(<8 x s16>) = COPY $q0
1604 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(<8 x s16>) = COPY $q1
1605 ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(<8 x s16>) = G_ICMP intpred(slt), [[COPY]](<8 x s16>), [[COPY1]]
1606 ; CHECK-NEXT: [[TRUNC:%[0-9]+]]:_(<8 x s8>) = G_TRUNC [[ICMP]](<8 x s16>)
1607 ; CHECK-NEXT: $d0 = COPY [[TRUNC]](<8 x s8>)
1608 ; CHECK-NEXT: RET_ReallyLR implicit $d0
1609 %0:_(<8 x s16>) = COPY $q0
1610 %1:_(<8 x s16>) = COPY $q1
1611 %2:_(<8 x s1>) = G_ICMP intpred(slt), %0(<8 x s16>), %1
1612 %3:_(<8 x s8>) = G_ANYEXT %2(<8 x s1>)
1613 $d0 = COPY %3(<8 x s8>)
1614 RET_ReallyLR implicit $d0
1618 name: test_v4i16_slt
1620 tracksRegLiveness: true
1622 - { id: 0, class: _ }
1623 - { id: 1, class: _ }
1624 - { id: 2, class: _ }
1625 - { id: 3, class: _ }
1626 machineFunctionInfo: {}
1631 ; CHECK-LABEL: name: test_v4i16_slt
1632 ; CHECK: liveins: $d0, $d1
1633 ; CHECK-NEXT: {{ $}}
1634 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(<4 x s16>) = COPY $d0
1635 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(<4 x s16>) = COPY $d1
1636 ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(<4 x s16>) = G_ICMP intpred(slt), [[COPY]](<4 x s16>), [[COPY1]]
1637 ; CHECK-NEXT: $d0 = COPY [[ICMP]](<4 x s16>)
1638 ; CHECK-NEXT: RET_ReallyLR implicit $d0
1639 %0:_(<4 x s16>) = COPY $d0
1640 %1:_(<4 x s16>) = COPY $d1
1641 %2:_(<4 x s1>) = G_ICMP intpred(slt), %0(<4 x s16>), %1
1642 %3:_(<4 x s16>) = G_ANYEXT %2(<4 x s1>)
1643 $d0 = COPY %3(<4 x s16>)
1644 RET_ReallyLR implicit $d0
1648 name: test_v16i8_slt
1650 tracksRegLiveness: true
1652 - { id: 0, class: _ }
1653 - { id: 1, class: _ }
1654 - { id: 2, class: _ }
1655 - { id: 3, class: _ }
1656 machineFunctionInfo: {}
1661 ; CHECK-LABEL: name: test_v16i8_slt
1662 ; CHECK: liveins: $q0, $q1
1663 ; CHECK-NEXT: {{ $}}
1664 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(<16 x s8>) = COPY $q0
1665 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(<16 x s8>) = COPY $q1
1666 ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(<16 x s8>) = G_ICMP intpred(slt), [[COPY]](<16 x s8>), [[COPY1]]
1667 ; CHECK-NEXT: $q0 = COPY [[ICMP]](<16 x s8>)
1668 ; CHECK-NEXT: RET_ReallyLR implicit $q0
1669 %0:_(<16 x s8>) = COPY $q0
1670 %1:_(<16 x s8>) = COPY $q1
1671 %2:_(<16 x s1>) = G_ICMP intpred(slt), %0(<16 x s8>), %1
1672 %3:_(<16 x s8>) = G_ANYEXT %2(<16 x s1>)
1673 $q0 = COPY %3(<16 x s8>)
1674 RET_ReallyLR implicit $q0
1680 tracksRegLiveness: true
1682 - { id: 0, class: _ }
1683 - { id: 1, class: _ }
1684 - { id: 2, class: _ }
1685 - { id: 3, class: _ }
1686 machineFunctionInfo: {}
1691 ; CHECK-LABEL: name: test_v8i8_slt
1692 ; CHECK: liveins: $d0, $d1
1693 ; CHECK-NEXT: {{ $}}
1694 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(<8 x s8>) = COPY $d0
1695 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(<8 x s8>) = COPY $d1
1696 ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(<8 x s8>) = G_ICMP intpred(slt), [[COPY]](<8 x s8>), [[COPY1]]
1697 ; CHECK-NEXT: $d0 = COPY [[ICMP]](<8 x s8>)
1698 ; CHECK-NEXT: RET_ReallyLR implicit $d0
1699 %0:_(<8 x s8>) = COPY $d0
1700 %1:_(<8 x s8>) = COPY $d1
1701 %2:_(<8 x s1>) = G_ICMP intpred(slt), %0(<8 x s8>), %1
1702 %3:_(<8 x s8>) = G_ANYEXT %2(<8 x s1>)
1703 $d0 = COPY %3(<8 x s8>)
1704 RET_ReallyLR implicit $d0
1708 name: test_v2i64_sle
1710 tracksRegLiveness: true
1712 - { id: 0, class: _ }
1713 - { id: 1, class: _ }
1714 - { id: 2, class: _ }
1715 - { id: 3, class: _ }
1716 machineFunctionInfo: {}
1721 ; CHECK-LABEL: name: test_v2i64_sle
1722 ; CHECK: liveins: $q0, $q1
1723 ; CHECK-NEXT: {{ $}}
1724 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(<2 x s64>) = COPY $q0
1725 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(<2 x s64>) = COPY $q1
1726 ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(<2 x s64>) = G_ICMP intpred(sle), [[COPY]](<2 x s64>), [[COPY1]]
1727 ; CHECK-NEXT: [[TRUNC:%[0-9]+]]:_(<2 x s32>) = G_TRUNC [[ICMP]](<2 x s64>)
1728 ; CHECK-NEXT: $d0 = COPY [[TRUNC]](<2 x s32>)
1729 ; CHECK-NEXT: RET_ReallyLR implicit $d0
1730 %0:_(<2 x s64>) = COPY $q0
1731 %1:_(<2 x s64>) = COPY $q1
1732 %2:_(<2 x s1>) = G_ICMP intpred(sle), %0(<2 x s64>), %1
1733 %3:_(<2 x s32>) = G_ANYEXT %2(<2 x s1>)
1734 $d0 = COPY %3(<2 x s32>)
1735 RET_ReallyLR implicit $d0
1739 name: test_v4i32_sle
1741 tracksRegLiveness: true
1743 - { id: 0, class: _ }
1744 - { id: 1, class: _ }
1745 - { id: 2, class: _ }
1746 - { id: 3, class: _ }
1747 machineFunctionInfo: {}
1752 ; CHECK-LABEL: name: test_v4i32_sle
1753 ; CHECK: liveins: $q0, $q1
1754 ; CHECK-NEXT: {{ $}}
1755 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(<4 x s32>) = COPY $q0
1756 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(<4 x s32>) = COPY $q1
1757 ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(<4 x s32>) = G_ICMP intpred(sle), [[COPY]](<4 x s32>), [[COPY1]]
1758 ; CHECK-NEXT: [[TRUNC:%[0-9]+]]:_(<4 x s16>) = G_TRUNC [[ICMP]](<4 x s32>)
1759 ; CHECK-NEXT: $d0 = COPY [[TRUNC]](<4 x s16>)
1760 ; CHECK-NEXT: RET_ReallyLR implicit $d0
1761 %0:_(<4 x s32>) = COPY $q0
1762 %1:_(<4 x s32>) = COPY $q1
1763 %2:_(<4 x s1>) = G_ICMP intpred(sle), %0(<4 x s32>), %1
1764 %3:_(<4 x s16>) = G_ANYEXT %2(<4 x s1>)
1765 $d0 = COPY %3(<4 x s16>)
1766 RET_ReallyLR implicit $d0
1770 name: test_v2i32_sle
1772 tracksRegLiveness: true
1774 - { id: 0, class: _ }
1775 - { id: 1, class: _ }
1776 - { id: 2, class: _ }
1777 - { id: 3, class: _ }
1778 machineFunctionInfo: {}
1783 ; CHECK-LABEL: name: test_v2i32_sle
1784 ; CHECK: liveins: $d0, $d1
1785 ; CHECK-NEXT: {{ $}}
1786 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(<2 x s32>) = COPY $d0
1787 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(<2 x s32>) = COPY $d1
1788 ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(<2 x s32>) = G_ICMP intpred(sle), [[COPY]](<2 x s32>), [[COPY1]]
1789 ; CHECK-NEXT: $d0 = COPY [[ICMP]](<2 x s32>)
1790 ; CHECK-NEXT: RET_ReallyLR implicit $d0
1791 %0:_(<2 x s32>) = COPY $d0
1792 %1:_(<2 x s32>) = COPY $d1
1793 %2:_(<2 x s1>) = G_ICMP intpred(sle), %0(<2 x s32>), %1
1794 %3:_(<2 x s32>) = G_ANYEXT %2(<2 x s1>)
1795 $d0 = COPY %3(<2 x s32>)
1796 RET_ReallyLR implicit $d0
1800 name: test_v8i16_sle
1802 tracksRegLiveness: true
1804 - { id: 0, class: _ }
1805 - { id: 1, class: _ }
1806 - { id: 2, class: _ }
1807 - { id: 3, class: _ }
1808 machineFunctionInfo: {}
1813 ; CHECK-LABEL: name: test_v8i16_sle
1814 ; CHECK: liveins: $q0, $q1
1815 ; CHECK-NEXT: {{ $}}
1816 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(<8 x s16>) = COPY $q0
1817 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(<8 x s16>) = COPY $q1
1818 ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(<8 x s16>) = G_ICMP intpred(sle), [[COPY]](<8 x s16>), [[COPY1]]
1819 ; CHECK-NEXT: [[TRUNC:%[0-9]+]]:_(<8 x s8>) = G_TRUNC [[ICMP]](<8 x s16>)
1820 ; CHECK-NEXT: $d0 = COPY [[TRUNC]](<8 x s8>)
1821 ; CHECK-NEXT: RET_ReallyLR implicit $d0
1822 %0:_(<8 x s16>) = COPY $q0
1823 %1:_(<8 x s16>) = COPY $q1
1824 %2:_(<8 x s1>) = G_ICMP intpred(sle), %0(<8 x s16>), %1
1825 %3:_(<8 x s8>) = G_ANYEXT %2(<8 x s1>)
1826 $d0 = COPY %3(<8 x s8>)
1827 RET_ReallyLR implicit $d0
1831 name: test_v4i16_sle
1833 tracksRegLiveness: true
1835 - { id: 0, class: _ }
1836 - { id: 1, class: _ }
1837 - { id: 2, class: _ }
1838 - { id: 3, class: _ }
1839 machineFunctionInfo: {}
1844 ; CHECK-LABEL: name: test_v4i16_sle
1845 ; CHECK: liveins: $d0, $d1
1846 ; CHECK-NEXT: {{ $}}
1847 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(<4 x s16>) = COPY $d0
1848 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(<4 x s16>) = COPY $d1
1849 ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(<4 x s16>) = G_ICMP intpred(sle), [[COPY]](<4 x s16>), [[COPY1]]
1850 ; CHECK-NEXT: $d0 = COPY [[ICMP]](<4 x s16>)
1851 ; CHECK-NEXT: RET_ReallyLR implicit $d0
1852 %0:_(<4 x s16>) = COPY $d0
1853 %1:_(<4 x s16>) = COPY $d1
1854 %2:_(<4 x s1>) = G_ICMP intpred(sle), %0(<4 x s16>), %1
1855 %3:_(<4 x s16>) = G_ANYEXT %2(<4 x s1>)
1856 $d0 = COPY %3(<4 x s16>)
1857 RET_ReallyLR implicit $d0
1861 name: test_v16i8_sle
1863 tracksRegLiveness: true
1865 - { id: 0, class: _ }
1866 - { id: 1, class: _ }
1867 - { id: 2, class: _ }
1868 - { id: 3, class: _ }
1869 machineFunctionInfo: {}
1874 ; CHECK-LABEL: name: test_v16i8_sle
1875 ; CHECK: liveins: $q0, $q1
1876 ; CHECK-NEXT: {{ $}}
1877 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(<16 x s8>) = COPY $q0
1878 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(<16 x s8>) = COPY $q1
1879 ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(<16 x s8>) = G_ICMP intpred(sle), [[COPY]](<16 x s8>), [[COPY1]]
1880 ; CHECK-NEXT: $q0 = COPY [[ICMP]](<16 x s8>)
1881 ; CHECK-NEXT: RET_ReallyLR implicit $q0
1882 %0:_(<16 x s8>) = COPY $q0
1883 %1:_(<16 x s8>) = COPY $q1
1884 %2:_(<16 x s1>) = G_ICMP intpred(sle), %0(<16 x s8>), %1
1885 %3:_(<16 x s8>) = G_ANYEXT %2(<16 x s1>)
1886 $q0 = COPY %3(<16 x s8>)
1887 RET_ReallyLR implicit $q0
1893 tracksRegLiveness: true
1895 - { id: 0, class: _ }
1896 - { id: 1, class: _ }
1897 - { id: 2, class: _ }
1898 - { id: 3, class: _ }
1899 machineFunctionInfo: {}
1904 ; CHECK-LABEL: name: test_v8i8_sle
1905 ; CHECK: liveins: $d0, $d1
1906 ; CHECK-NEXT: {{ $}}
1907 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(<8 x s8>) = COPY $d0
1908 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(<8 x s8>) = COPY $d1
1909 ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(<8 x s8>) = G_ICMP intpred(sle), [[COPY]](<8 x s8>), [[COPY1]]
1910 ; CHECK-NEXT: $d0 = COPY [[ICMP]](<8 x s8>)
1911 ; CHECK-NEXT: RET_ReallyLR implicit $d0
1912 %0:_(<8 x s8>) = COPY $d0
1913 %1:_(<8 x s8>) = COPY $d1
1914 %2:_(<8 x s1>) = G_ICMP intpred(sle), %0(<8 x s8>), %1
1915 %3:_(<8 x s8>) = G_ANYEXT %2(<8 x s1>)
1916 $d0 = COPY %3(<8 x s8>)
1917 RET_ReallyLR implicit $d0
1923 tracksRegLiveness: true
1925 - { id: 0, class: _ }
1926 - { id: 1, class: _ }
1927 - { id: 2, class: _ }
1928 - { id: 3, class: _ }
1929 machineFunctionInfo: {}
1934 ; CHECK-LABEL: name: test_v2p0_eq
1935 ; CHECK: liveins: $q0, $q1
1936 ; CHECK-NEXT: {{ $}}
1937 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(<2 x p0>) = COPY $q0
1938 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(<2 x p0>) = COPY $q1
1939 ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(<2 x s64>) = G_ICMP intpred(eq), [[COPY]](<2 x p0>), [[COPY1]]
1940 ; CHECK-NEXT: [[TRUNC:%[0-9]+]]:_(<2 x s32>) = G_TRUNC [[ICMP]](<2 x s64>)
1941 ; CHECK-NEXT: $d0 = COPY [[TRUNC]](<2 x s32>)
1942 ; CHECK-NEXT: RET_ReallyLR implicit $d0
1943 %0:_(<2 x p0>) = COPY $q0
1944 %1:_(<2 x p0>) = COPY $q1
1945 %2:_(<2 x s1>) = G_ICMP intpred(eq), %0(<2 x p0>), %1
1946 %3:_(<2 x s32>) = G_ANYEXT %2(<2 x s1>)
1947 $d0 = COPY %3(<2 x s32>)
1948 RET_ReallyLR implicit $d0
1954 tracksRegLiveness: true
1962 liveins: $q0, $q1, $q2, $q3
1964 ; CHECK-LABEL: name: icmp_8xs1
1965 ; CHECK: liveins: $q0, $q1, $q2, $q3
1966 ; CHECK-NEXT: {{ $}}
1967 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(<4 x s32>) = COPY $q0
1968 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(<4 x s32>) = COPY $q1
1969 ; CHECK-NEXT: [[COPY2:%[0-9]+]]:_(<4 x s32>) = COPY $q2
1970 ; CHECK-NEXT: [[COPY3:%[0-9]+]]:_(<4 x s32>) = COPY $q3
1971 ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(<4 x s32>) = G_ICMP intpred(eq), [[COPY]](<4 x s32>), [[COPY2]]
1972 ; CHECK-NEXT: [[ICMP1:%[0-9]+]]:_(<4 x s32>) = G_ICMP intpred(eq), [[COPY1]](<4 x s32>), [[COPY3]]
1973 ; CHECK-NEXT: [[TRUNC:%[0-9]+]]:_(<4 x s16>) = G_TRUNC [[ICMP]](<4 x s32>)
1974 ; CHECK-NEXT: [[TRUNC1:%[0-9]+]]:_(<4 x s16>) = G_TRUNC [[ICMP1]](<4 x s32>)
1975 ; CHECK-NEXT: [[CONCAT_VECTORS:%[0-9]+]]:_(<8 x s16>) = G_CONCAT_VECTORS [[TRUNC]](<4 x s16>), [[TRUNC1]](<4 x s16>)
1976 ; CHECK-NEXT: [[TRUNC2:%[0-9]+]]:_(<8 x s8>) = G_TRUNC [[CONCAT_VECTORS]](<8 x s16>)
1977 ; CHECK-NEXT: $d0 = COPY [[TRUNC2]](<8 x s8>)
1978 ; CHECK-NEXT: RET_ReallyLR implicit $d0
1979 %2:_(<4 x s32>) = COPY $q0
1980 %3:_(<4 x s32>) = COPY $q1
1981 %0:_(<8 x s32>) = G_CONCAT_VECTORS %2(<4 x s32>), %3(<4 x s32>)
1982 %4:_(<4 x s32>) = COPY $q2
1983 %5:_(<4 x s32>) = COPY $q3
1984 %1:_(<8 x s32>) = G_CONCAT_VECTORS %4(<4 x s32>), %5(<4 x s32>)
1985 %6:_(<8 x s1>) = G_ICMP intpred(eq), %0(<8 x s32>), %1
1986 %7:_(<8 x s8>) = G_ANYEXT %6(<8 x s1>)
1987 $d0 = COPY %7(<8 x s8>)
1988 RET_ReallyLR implicit $d0
1993 tracksRegLiveness: true
2001 liveins: $q0, $q1, $q2, $q3
2003 ; CHECK-LABEL: name: icmp_8xs32
2004 ; CHECK: liveins: $q0, $q1, $q2, $q3
2005 ; CHECK-NEXT: {{ $}}
2006 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(<4 x s32>) = COPY $q0
2007 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(<4 x s32>) = COPY $q1
2008 ; CHECK-NEXT: [[COPY2:%[0-9]+]]:_(<4 x s32>) = COPY $q2
2009 ; CHECK-NEXT: [[COPY3:%[0-9]+]]:_(<4 x s32>) = COPY $q3
2010 ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(<4 x s32>) = G_ICMP intpred(eq), [[COPY]](<4 x s32>), [[COPY2]]
2011 ; CHECK-NEXT: [[ICMP1:%[0-9]+]]:_(<4 x s32>) = G_ICMP intpred(eq), [[COPY1]](<4 x s32>), [[COPY3]]
2012 ; CHECK-NEXT: [[TRUNC:%[0-9]+]]:_(<4 x s16>) = G_TRUNC [[ICMP]](<4 x s32>)
2013 ; CHECK-NEXT: [[TRUNC1:%[0-9]+]]:_(<4 x s16>) = G_TRUNC [[ICMP1]](<4 x s32>)
2014 ; CHECK-NEXT: [[CONCAT_VECTORS:%[0-9]+]]:_(<8 x s16>) = G_CONCAT_VECTORS [[TRUNC]](<4 x s16>), [[TRUNC1]](<4 x s16>)
2015 ; CHECK-NEXT: [[TRUNC2:%[0-9]+]]:_(<8 x s8>) = G_TRUNC [[CONCAT_VECTORS]](<8 x s16>)
2016 ; CHECK-NEXT: $d0 = COPY [[TRUNC2]](<8 x s8>)
2017 ; CHECK-NEXT: RET_ReallyLR implicit $d0
2018 %2:_(<4 x s32>) = COPY $q0
2019 %3:_(<4 x s32>) = COPY $q1
2020 %0:_(<8 x s32>) = G_CONCAT_VECTORS %2(<4 x s32>), %3(<4 x s32>)
2021 %4:_(<4 x s32>) = COPY $q2
2022 %5:_(<4 x s32>) = COPY $q3
2023 %1:_(<8 x s32>) = G_CONCAT_VECTORS %4(<4 x s32>), %5(<4 x s32>)
2024 %6:_(<8 x s32>) = G_ICMP intpred(eq), %0(<8 x s32>), %1
2025 %7:_(<8 x s8>) = G_TRUNC %6(<8 x s32>)
2026 $d0 = COPY %7(<8 x s8>)
2027 RET_ReallyLR implicit $d0
2032 tracksRegLiveness: true
2040 liveins: $q0, $q1, $q2, $q3
2042 ; CHECK-LABEL: name: fcmp_8xs1
2043 ; CHECK: liveins: $q0, $q1, $q2, $q3
2044 ; CHECK-NEXT: {{ $}}
2045 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(<4 x s32>) = COPY $q0
2046 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(<4 x s32>) = COPY $q1
2047 ; CHECK-NEXT: [[COPY2:%[0-9]+]]:_(<4 x s32>) = COPY $q2
2048 ; CHECK-NEXT: [[COPY3:%[0-9]+]]:_(<4 x s32>) = COPY $q3
2049 ; CHECK-NEXT: [[FCMP:%[0-9]+]]:_(<4 x s32>) = G_FCMP floatpred(one), [[COPY]](<4 x s32>), [[COPY2]]
2050 ; CHECK-NEXT: [[FCMP1:%[0-9]+]]:_(<4 x s32>) = G_FCMP floatpred(one), [[COPY1]](<4 x s32>), [[COPY3]]
2051 ; CHECK-NEXT: [[TRUNC:%[0-9]+]]:_(<4 x s16>) = G_TRUNC [[FCMP]](<4 x s32>)
2052 ; CHECK-NEXT: [[TRUNC1:%[0-9]+]]:_(<4 x s16>) = G_TRUNC [[FCMP1]](<4 x s32>)
2053 ; CHECK-NEXT: [[CONCAT_VECTORS:%[0-9]+]]:_(<8 x s16>) = G_CONCAT_VECTORS [[TRUNC]](<4 x s16>), [[TRUNC1]](<4 x s16>)
2054 ; CHECK-NEXT: [[TRUNC2:%[0-9]+]]:_(<8 x s8>) = G_TRUNC [[CONCAT_VECTORS]](<8 x s16>)
2055 ; CHECK-NEXT: $d0 = COPY [[TRUNC2]](<8 x s8>)
2056 ; CHECK-NEXT: RET_ReallyLR implicit $d0
2057 %2:_(<4 x s32>) = COPY $q0
2058 %3:_(<4 x s32>) = COPY $q1
2059 %0:_(<8 x s32>) = G_CONCAT_VECTORS %2(<4 x s32>), %3(<4 x s32>)
2060 %4:_(<4 x s32>) = COPY $q2
2061 %5:_(<4 x s32>) = COPY $q3
2062 %1:_(<8 x s32>) = G_CONCAT_VECTORS %4(<4 x s32>), %5(<4 x s32>)
2063 %6:_(<8 x s1>) = G_FCMP floatpred(one), %0(<8 x s32>), %1
2064 %7:_(<8 x s8>) = G_ANYEXT %6(<8 x s1>)
2065 $d0 = COPY %7(<8 x s8>)
2066 RET_ReallyLR implicit $d0
2071 tracksRegLiveness: true
2079 liveins: $q0, $q1, $q2, $q3
2081 ; CHECK-LABEL: name: fcmp_8xs32
2082 ; CHECK: liveins: $q0, $q1, $q2, $q3
2083 ; CHECK-NEXT: {{ $}}
2084 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(<4 x s32>) = COPY $q0
2085 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(<4 x s32>) = COPY $q1
2086 ; CHECK-NEXT: [[COPY2:%[0-9]+]]:_(<4 x s32>) = COPY $q2
2087 ; CHECK-NEXT: [[COPY3:%[0-9]+]]:_(<4 x s32>) = COPY $q3
2088 ; CHECK-NEXT: [[FCMP:%[0-9]+]]:_(<4 x s32>) = G_FCMP floatpred(oeq), [[COPY]](<4 x s32>), [[COPY2]]
2089 ; CHECK-NEXT: [[FCMP1:%[0-9]+]]:_(<4 x s32>) = G_FCMP floatpred(oeq), [[COPY1]](<4 x s32>), [[COPY3]]
2090 ; CHECK-NEXT: [[TRUNC:%[0-9]+]]:_(<4 x s16>) = G_TRUNC [[FCMP]](<4 x s32>)
2091 ; CHECK-NEXT: [[TRUNC1:%[0-9]+]]:_(<4 x s16>) = G_TRUNC [[FCMP1]](<4 x s32>)
2092 ; CHECK-NEXT: [[CONCAT_VECTORS:%[0-9]+]]:_(<8 x s16>) = G_CONCAT_VECTORS [[TRUNC]](<4 x s16>), [[TRUNC1]](<4 x s16>)
2093 ; CHECK-NEXT: [[TRUNC2:%[0-9]+]]:_(<8 x s8>) = G_TRUNC [[CONCAT_VECTORS]](<8 x s16>)
2094 ; CHECK-NEXT: $d0 = COPY [[TRUNC2]](<8 x s8>)
2095 ; CHECK-NEXT: RET_ReallyLR implicit $d0
2096 %2:_(<4 x s32>) = COPY $q0
2097 %3:_(<4 x s32>) = COPY $q1
2098 %0:_(<8 x s32>) = G_CONCAT_VECTORS %2(<4 x s32>), %3(<4 x s32>)
2099 %4:_(<4 x s32>) = COPY $q2
2100 %5:_(<4 x s32>) = COPY $q3
2101 %1:_(<8 x s32>) = G_CONCAT_VECTORS %4(<4 x s32>), %5(<4 x s32>)
2102 %6:_(<8 x s32>) = G_FCMP floatpred(oeq), %0(<8 x s32>), %1
2103 %7:_(<8 x s8>) = G_TRUNC %6(<8 x s32>)
2104 $d0 = COPY %7(<8 x s8>)
2105 RET_ReallyLR implicit $d0
2110 tracksRegLiveness: true
2112 - { id: 0, class: _ }
2113 - { id: 1, class: _ }
2114 - { id: 2, class: _ }
2115 - { id: 3, class: _ }
2116 machineFunctionInfo: {}
2121 ; CHECK-LABEL: name: fcmp_v4s32
2122 ; CHECK: liveins: $q0, $q1
2123 ; CHECK-NEXT: {{ $}}
2124 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(<4 x s32>) = COPY $q0
2125 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(<4 x s32>) = COPY $q1
2126 ; CHECK-NEXT: [[FCMP:%[0-9]+]]:_(<4 x s32>) = G_FCMP floatpred(olt), [[COPY]](<4 x s32>), [[COPY1]]
2127 ; CHECK-NEXT: [[TRUNC:%[0-9]+]]:_(<4 x s16>) = G_TRUNC [[FCMP]](<4 x s32>)
2128 ; CHECK-NEXT: $d0 = COPY [[TRUNC]](<4 x s16>)
2129 ; CHECK-NEXT: RET_ReallyLR implicit $d0
2130 %0:_(<4 x s32>) = COPY $q0
2131 %1:_(<4 x s32>) = COPY $q1
2132 %2:_(<4 x s1>) = G_FCMP floatpred(olt), %0(<4 x s32>), %1
2133 %3:_(<4 x s16>) = G_ANYEXT %2(<4 x s1>)
2134 $d0 = COPY %3(<4 x s16>)
2135 RET_ReallyLR implicit $d0