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
6 tracksRegLiveness: true
12 machineFunctionInfo: {}
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
36 tracksRegLiveness: true
42 machineFunctionInfo: {}
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
66 tracksRegLiveness: true
72 machineFunctionInfo: {}
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
96 tracksRegLiveness: true
100 - { id: 2, class: _ }
101 - { id: 3, class: _ }
102 machineFunctionInfo: {}
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
126 tracksRegLiveness: true
128 - { id: 0, class: _ }
129 - { id: 1, class: _ }
130 - { id: 2, class: _ }
131 - { id: 3, class: _ }
132 machineFunctionInfo: {}
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
156 tracksRegLiveness: true
158 - { id: 0, class: _ }
159 - { id: 1, class: _ }
160 - { id: 2, class: _ }
161 - { id: 3, class: _ }
162 machineFunctionInfo: {}
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
186 tracksRegLiveness: true
188 - { id: 0, class: _ }
189 - { id: 1, class: _ }
190 - { id: 2, class: _ }
191 - { id: 3, class: _ }
192 machineFunctionInfo: {}
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
216 tracksRegLiveness: true
218 - { id: 0, class: _ }
219 - { id: 1, class: _ }
220 - { id: 2, class: _ }
221 - { id: 3, class: _ }
222 machineFunctionInfo: {}
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
246 tracksRegLiveness: true
248 - { id: 0, class: _ }
249 - { id: 1, class: _ }
250 - { id: 2, class: _ }
251 - { id: 3, class: _ }
252 machineFunctionInfo: {}
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
276 tracksRegLiveness: true
278 - { id: 0, class: _ }
279 - { id: 1, class: _ }
280 - { id: 2, class: _ }
281 - { id: 3, class: _ }
282 machineFunctionInfo: {}
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
306 tracksRegLiveness: true
308 - { id: 0, class: _ }
309 - { id: 1, class: _ }
310 - { id: 2, class: _ }
311 - { id: 3, class: _ }
312 machineFunctionInfo: {}
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
336 tracksRegLiveness: true
338 - { id: 0, class: _ }
339 - { id: 1, class: _ }
340 - { id: 2, class: _ }
341 - { id: 3, class: _ }
342 machineFunctionInfo: {}
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
366 tracksRegLiveness: true
368 - { id: 0, class: _ }
369 - { id: 1, class: _ }
370 - { id: 2, class: _ }
371 - { id: 3, class: _ }
372 machineFunctionInfo: {}
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
396 tracksRegLiveness: true
398 - { id: 0, class: _ }
399 - { id: 1, class: _ }
400 - { id: 2, class: _ }
401 - { id: 3, class: _ }
402 machineFunctionInfo: {}
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
426 tracksRegLiveness: true
428 - { id: 0, class: _ }
429 - { id: 1, class: _ }
430 - { id: 2, class: _ }
431 - { id: 3, class: _ }
432 machineFunctionInfo: {}
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
456 tracksRegLiveness: true
458 - { id: 0, class: _ }
459 - { id: 1, class: _ }
460 - { id: 2, class: _ }
461 - { id: 3, class: _ }
462 machineFunctionInfo: {}
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
486 tracksRegLiveness: true
488 - { id: 0, class: _ }
489 - { id: 1, class: _ }
490 - { id: 2, class: _ }
491 - { id: 3, class: _ }
492 machineFunctionInfo: {}
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
516 tracksRegLiveness: true
518 - { id: 0, class: _ }
519 - { id: 1, class: _ }
520 - { id: 2, class: _ }
521 - { id: 3, class: _ }
522 machineFunctionInfo: {}
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
546 tracksRegLiveness: true
548 - { id: 0, class: _ }
549 - { id: 1, class: _ }
550 - { id: 2, class: _ }
551 - { id: 3, class: _ }
552 machineFunctionInfo: {}
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
576 tracksRegLiveness: true
578 - { id: 0, class: _ }
579 - { id: 1, class: _ }
580 - { id: 2, class: _ }
581 - { id: 3, class: _ }
582 machineFunctionInfo: {}
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
606 tracksRegLiveness: true
608 - { id: 0, class: _ }
609 - { id: 1, class: _ }
610 - { id: 2, class: _ }
611 - { id: 3, class: _ }
612 machineFunctionInfo: {}
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
636 tracksRegLiveness: true
638 - { id: 0, class: _ }
639 - { id: 1, class: _ }
640 - { id: 2, class: _ }
641 - { id: 3, class: _ }
642 machineFunctionInfo: {}
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
666 tracksRegLiveness: true
668 - { id: 0, class: _ }
669 - { id: 1, class: _ }
670 - { id: 2, class: _ }
671 - { id: 3, class: _ }
672 machineFunctionInfo: {}
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
696 tracksRegLiveness: true
698 - { id: 0, class: _ }
699 - { id: 1, class: _ }
700 - { id: 2, class: _ }
701 - { id: 3, class: _ }
702 machineFunctionInfo: {}
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
726 tracksRegLiveness: true
728 - { id: 0, class: _ }
729 - { id: 1, class: _ }
730 - { id: 2, class: _ }
731 - { id: 3, class: _ }
732 machineFunctionInfo: {}
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
756 tracksRegLiveness: true
758 - { id: 0, class: _ }
759 - { id: 1, class: _ }
760 - { id: 2, class: _ }
761 - { id: 3, class: _ }
762 machineFunctionInfo: {}
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
786 tracksRegLiveness: true
788 - { id: 0, class: _ }
789 - { id: 1, class: _ }
790 - { id: 2, class: _ }
791 - { id: 3, class: _ }
792 machineFunctionInfo: {}
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
816 tracksRegLiveness: true
818 - { id: 0, class: _ }
819 - { id: 1, class: _ }
820 - { id: 2, class: _ }
821 - { id: 3, class: _ }
822 machineFunctionInfo: {}
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
846 tracksRegLiveness: true
848 - { id: 0, class: _ }
849 - { id: 1, class: _ }
850 - { id: 2, class: _ }
851 - { id: 3, class: _ }
852 machineFunctionInfo: {}
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
876 tracksRegLiveness: true
878 - { id: 0, class: _ }
879 - { id: 1, class: _ }
880 - { id: 2, class: _ }
881 - { id: 3, class: _ }
882 machineFunctionInfo: {}
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
906 tracksRegLiveness: true
908 - { id: 0, class: _ }
909 - { id: 1, class: _ }
910 - { id: 2, class: _ }
911 - { id: 3, class: _ }
912 machineFunctionInfo: {}
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
936 tracksRegLiveness: true
938 - { id: 0, class: _ }
939 - { id: 1, class: _ }
940 - { id: 2, class: _ }
941 - { id: 3, class: _ }
942 machineFunctionInfo: {}
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
966 tracksRegLiveness: true
968 - { id: 0, class: _ }
969 - { id: 1, class: _ }
970 - { id: 2, class: _ }
971 - { id: 3, class: _ }
972 machineFunctionInfo: {}
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
996 tracksRegLiveness: true
998 - { id: 0, class: _ }
999 - { id: 1, class: _ }
1000 - { id: 2, class: _ }
1001 - { id: 3, class: _ }
1002 machineFunctionInfo: {}
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
1026 tracksRegLiveness: true
1028 - { id: 0, class: _ }
1029 - { id: 1, class: _ }
1030 - { id: 2, class: _ }
1031 - { id: 3, class: _ }
1032 machineFunctionInfo: {}
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
1056 tracksRegLiveness: true
1058 - { id: 0, class: _ }
1059 - { id: 1, class: _ }
1060 - { id: 2, class: _ }
1061 - { id: 3, class: _ }
1062 machineFunctionInfo: {}
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
1086 tracksRegLiveness: true
1088 - { id: 0, class: _ }
1089 - { id: 1, class: _ }
1090 - { id: 2, class: _ }
1091 - { id: 3, class: _ }
1092 machineFunctionInfo: {}
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
1116 tracksRegLiveness: true
1118 - { id: 0, class: _ }
1119 - { id: 1, class: _ }
1120 - { id: 2, class: _ }
1121 - { id: 3, class: _ }
1122 machineFunctionInfo: {}
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
1146 tracksRegLiveness: true
1148 - { id: 0, class: _ }
1149 - { id: 1, class: _ }
1150 - { id: 2, class: _ }
1151 - { id: 3, class: _ }
1152 machineFunctionInfo: {}
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
1176 tracksRegLiveness: true
1178 - { id: 0, class: _ }
1179 - { id: 1, class: _ }
1180 - { id: 2, class: _ }
1181 - { id: 3, class: _ }
1182 machineFunctionInfo: {}
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
1206 tracksRegLiveness: true
1208 - { id: 0, class: _ }
1209 - { id: 1, class: _ }
1210 - { id: 2, class: _ }
1211 - { id: 3, class: _ }
1212 machineFunctionInfo: {}
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
1236 tracksRegLiveness: true
1238 - { id: 0, class: _ }
1239 - { id: 1, class: _ }
1240 - { id: 2, class: _ }
1241 - { id: 3, class: _ }
1242 machineFunctionInfo: {}
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
1266 tracksRegLiveness: true
1268 - { id: 0, class: _ }
1269 - { id: 1, class: _ }
1270 - { id: 2, class: _ }
1271 - { id: 3, class: _ }
1272 machineFunctionInfo: {}
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
1296 tracksRegLiveness: true
1298 - { id: 0, class: _ }
1299 - { id: 1, class: _ }
1300 - { id: 2, class: _ }
1301 - { id: 3, class: _ }
1302 machineFunctionInfo: {}
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
1326 tracksRegLiveness: true
1328 - { id: 0, class: _ }
1329 - { id: 1, class: _ }
1330 - { id: 2, class: _ }
1331 - { id: 3, class: _ }
1332 machineFunctionInfo: {}
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
1356 tracksRegLiveness: true
1358 - { id: 0, class: _ }
1359 - { id: 1, class: _ }
1360 - { id: 2, class: _ }
1361 - { id: 3, class: _ }
1362 machineFunctionInfo: {}
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
1386 tracksRegLiveness: true
1388 - { id: 0, class: _ }
1389 - { id: 1, class: _ }
1390 - { id: 2, class: _ }
1391 - { id: 3, class: _ }
1392 machineFunctionInfo: {}
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
1416 tracksRegLiveness: true
1418 - { id: 0, class: _ }
1419 - { id: 1, class: _ }
1420 - { id: 2, class: _ }
1421 - { id: 3, class: _ }
1422 machineFunctionInfo: {}
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
1446 tracksRegLiveness: true
1448 - { id: 0, class: _ }
1449 - { id: 1, class: _ }
1450 - { id: 2, class: _ }
1451 - { id: 3, class: _ }
1452 machineFunctionInfo: {}
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
1476 tracksRegLiveness: true
1478 - { id: 0, class: _ }
1479 - { id: 1, class: _ }
1480 - { id: 2, class: _ }
1481 - { id: 3, class: _ }
1482 machineFunctionInfo: {}
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
1506 tracksRegLiveness: true
1508 - { id: 0, class: _ }
1509 - { id: 1, class: _ }
1510 - { id: 2, class: _ }
1511 - { id: 3, class: _ }
1512 machineFunctionInfo: {}
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
1536 tracksRegLiveness: true
1538 - { id: 0, class: _ }
1539 - { id: 1, class: _ }
1540 - { id: 2, class: _ }
1541 - { id: 3, class: _ }
1542 machineFunctionInfo: {}
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
1566 tracksRegLiveness: true
1568 - { id: 0, class: _ }
1569 - { id: 1, class: _ }
1570 - { id: 2, class: _ }
1571 - { id: 3, class: _ }
1572 machineFunctionInfo: {}
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
1596 tracksRegLiveness: true
1598 - { id: 0, class: _ }
1599 - { id: 1, class: _ }
1600 - { id: 2, class: _ }
1601 - { id: 3, class: _ }
1602 machineFunctionInfo: {}
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
1626 tracksRegLiveness: true
1628 - { id: 0, class: _ }
1629 - { id: 1, class: _ }
1630 - { id: 2, class: _ }
1631 - { id: 3, class: _ }
1632 machineFunctionInfo: {}
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
1656 tracksRegLiveness: true
1658 - { id: 0, class: _ }
1659 - { id: 1, class: _ }
1660 - { id: 2, class: _ }
1661 - { id: 3, class: _ }
1662 machineFunctionInfo: {}
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
1686 tracksRegLiveness: true
1688 - { id: 0, class: _ }
1689 - { id: 1, class: _ }
1690 - { id: 2, class: _ }
1691 - { id: 3, class: _ }
1692 machineFunctionInfo: {}
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
1716 tracksRegLiveness: true
1718 - { id: 0, class: _ }
1719 - { id: 1, class: _ }
1720 - { id: 2, class: _ }
1721 - { id: 3, class: _ }
1722 machineFunctionInfo: {}
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
1746 tracksRegLiveness: true
1748 - { id: 0, class: _ }
1749 - { id: 1, class: _ }
1750 - { id: 2, class: _ }
1751 - { id: 3, class: _ }
1752 machineFunctionInfo: {}
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
1776 tracksRegLiveness: true
1778 - { id: 0, class: _ }
1779 - { id: 1, class: _ }
1780 - { id: 2, class: _ }
1781 - { id: 3, class: _ }
1782 machineFunctionInfo: {}
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
1806 tracksRegLiveness: true
1808 - { id: 0, class: _ }
1809 - { id: 1, class: _ }
1810 - { id: 2, class: _ }
1811 - { id: 3, class: _ }
1812 machineFunctionInfo: {}
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
1836 tracksRegLiveness: true
1838 - { id: 0, class: _ }
1839 - { id: 1, class: _ }
1840 - { id: 2, class: _ }
1841 - { id: 3, class: _ }
1842 machineFunctionInfo: {}
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
1866 tracksRegLiveness: true
1868 - { id: 0, class: _ }
1869 - { id: 1, class: _ }
1870 - { id: 2, class: _ }
1871 - { id: 3, class: _ }
1872 machineFunctionInfo: {}
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
1896 tracksRegLiveness: true
1898 - { id: 0, class: _ }
1899 - { id: 1, class: _ }
1900 - { id: 2, class: _ }
1901 - { id: 3, class: _ }
1902 machineFunctionInfo: {}
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