[clang][modules] Don't prevent translation of FW_Private includes when explicitly...
[llvm-project.git] / llvm / test / CodeGen / AArch64 / GlobalISel / select-vector-icmp.mir
blob21e84ecaed32f94d9b6fe8b52363936fd648f54b
1 # NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py
2 # RUN: llc -mtriple=aarch64-- -run-pass=instruction-select -verify-machineinstrs %s -o - | FileCheck %s
4 --- |
5   source_filename = "icmp-autogen-tests-with-ne.ll"
6   target datalayout = "e-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128"
7   target triple = "aarch64"
9   define <2 x i1> @test_v2i64_eq(<2 x i64> %v1, <2 x i64> %v2) {
10     %cmp = icmp eq <2 x i64> %v1, %v2
11     ret <2 x i1> %cmp
12   }
14   define <4 x i1> @test_v4i32_eq(<4 x i32> %v1, <4 x i32> %v2) {
15     %cmp = icmp eq <4 x i32> %v1, %v2
16     ret <4 x i1> %cmp
17   }
19   define <2 x i1> @test_v2i32_eq(<2 x i32> %v1, <2 x i32> %v2) {
20     %cmp = icmp eq <2 x i32> %v1, %v2
21     ret <2 x i1> %cmp
22   }
24   define <2 x i1> @test_v2i16_eq(<2 x i16> %v1, <2 x i16> %v2) {
25     %cmp = icmp eq <2 x i16> %v1, %v2
26     ret <2 x i1> %cmp
27   }
29   define <8 x i1> @test_v8i16_eq(<8 x i16> %v1, <8 x i16> %v2) {
30     %cmp = icmp eq <8 x i16> %v1, %v2
31     ret <8 x i1> %cmp
32   }
34   define <4 x i1> @test_v4i16_eq(<4 x i16> %v1, <4 x i16> %v2) {
35     %cmp = icmp eq <4 x i16> %v1, %v2
36     ret <4 x i1> %cmp
37   }
39   define <16 x i1> @test_v16i8_eq(<16 x i8> %v1, <16 x i8> %v2) {
40     %cmp = icmp eq <16 x i8> %v1, %v2
41     ret <16 x i1> %cmp
42   }
44   define <8 x i1> @test_v8i8_eq(<8 x i8> %v1, <8 x i8> %v2) {
45     %cmp = icmp eq <8 x i8> %v1, %v2
46     ret <8 x i1> %cmp
47   }
49   define <2 x i1> @test_v2i64_ne(<2 x i64> %v1, <2 x i64> %v2) {
50     %cmp = icmp ne <2 x i64> %v1, %v2
51     ret <2 x i1> %cmp
52   }
54   define <4 x i1> @test_v4i32_ne(<4 x i32> %v1, <4 x i32> %v2) {
55     %cmp = icmp ne <4 x i32> %v1, %v2
56     ret <4 x i1> %cmp
57   }
59   define <2 x i1> @test_v2i32_ne(<2 x i32> %v1, <2 x i32> %v2) {
60     %cmp = icmp ne <2 x i32> %v1, %v2
61     ret <2 x i1> %cmp
62   }
64   define <2 x i1> @test_v2i16_ne(<2 x i16> %v1, <2 x i16> %v2) {
65     %cmp = icmp ne <2 x i16> %v1, %v2
66     ret <2 x i1> %cmp
67   }
69   define <8 x i1> @test_v8i16_ne(<8 x i16> %v1, <8 x i16> %v2) {
70     %cmp = icmp ne <8 x i16> %v1, %v2
71     ret <8 x i1> %cmp
72   }
74   define <4 x i1> @test_v4i16_ne(<4 x i16> %v1, <4 x i16> %v2) {
75     %cmp = icmp ne <4 x i16> %v1, %v2
76     ret <4 x i1> %cmp
77   }
79   define <16 x i1> @test_v16i8_ne(<16 x i8> %v1, <16 x i8> %v2) {
80     %cmp = icmp ne <16 x i8> %v1, %v2
81     ret <16 x i1> %cmp
82   }
84   define <8 x i1> @test_v8i8_ne(<8 x i8> %v1, <8 x i8> %v2) {
85     %cmp = icmp ne <8 x i8> %v1, %v2
86     ret <8 x i1> %cmp
87   }
89   define <2 x i1> @test_v2i64_ugt(<2 x i64> %v1, <2 x i64> %v2) {
90     %cmp = icmp ugt <2 x i64> %v1, %v2
91     ret <2 x i1> %cmp
92   }
94   define <4 x i1> @test_v4i32_ugt(<4 x i32> %v1, <4 x i32> %v2) {
95     %cmp = icmp ugt <4 x i32> %v1, %v2
96     ret <4 x i1> %cmp
97   }
99   define <2 x i1> @test_v2i32_ugt(<2 x i32> %v1, <2 x i32> %v2) {
100     %cmp = icmp ugt <2 x i32> %v1, %v2
101     ret <2 x i1> %cmp
102   }
104   define <2 x i1> @test_v2i16_ugt(<2 x i16> %v1, <2 x i16> %v2) {
105     %cmp = icmp ugt <2 x i16> %v1, %v2
106     ret <2 x i1> %cmp
107   }
109   define <8 x i1> @test_v8i16_ugt(<8 x i16> %v1, <8 x i16> %v2) {
110     %cmp = icmp ugt <8 x i16> %v1, %v2
111     ret <8 x i1> %cmp
112   }
114   define <4 x i1> @test_v4i16_ugt(<4 x i16> %v1, <4 x i16> %v2) {
115     %cmp = icmp ugt <4 x i16> %v1, %v2
116     ret <4 x i1> %cmp
117   }
119   define <16 x i1> @test_v16i8_ugt(<16 x i8> %v1, <16 x i8> %v2) {
120     %cmp = icmp ugt <16 x i8> %v1, %v2
121     ret <16 x i1> %cmp
122   }
124   define <8 x i1> @test_v8i8_ugt(<8 x i8> %v1, <8 x i8> %v2) {
125     %cmp = icmp ugt <8 x i8> %v1, %v2
126     ret <8 x i1> %cmp
127   }
129   define <2 x i1> @test_v2i64_uge(<2 x i64> %v1, <2 x i64> %v2) {
130     %cmp = icmp uge <2 x i64> %v1, %v2
131     ret <2 x i1> %cmp
132   }
134   define <4 x i1> @test_v4i32_uge(<4 x i32> %v1, <4 x i32> %v2) {
135     %cmp = icmp uge <4 x i32> %v1, %v2
136     ret <4 x i1> %cmp
137   }
139   define <2 x i1> @test_v2i32_uge(<2 x i32> %v1, <2 x i32> %v2) {
140     %cmp = icmp uge <2 x i32> %v1, %v2
141     ret <2 x i1> %cmp
142   }
144   define <2 x i1> @test_v2i16_uge(<2 x i16> %v1, <2 x i16> %v2) {
145     %cmp = icmp uge <2 x i16> %v1, %v2
146     ret <2 x i1> %cmp
147   }
149   define <8 x i1> @test_v8i16_uge(<8 x i16> %v1, <8 x i16> %v2) {
150     %cmp = icmp uge <8 x i16> %v1, %v2
151     ret <8 x i1> %cmp
152   }
154   define <4 x i1> @test_v4i16_uge(<4 x i16> %v1, <4 x i16> %v2) {
155     %cmp = icmp uge <4 x i16> %v1, %v2
156     ret <4 x i1> %cmp
157   }
159   define <16 x i1> @test_v16i8_uge(<16 x i8> %v1, <16 x i8> %v2) {
160     %cmp = icmp uge <16 x i8> %v1, %v2
161     ret <16 x i1> %cmp
162   }
164   define <8 x i1> @test_v8i8_uge(<8 x i8> %v1, <8 x i8> %v2) {
165     %cmp = icmp uge <8 x i8> %v1, %v2
166     ret <8 x i1> %cmp
167   }
169   define <2 x i1> @test_v2i64_ult(<2 x i64> %v1, <2 x i64> %v2) {
170     %cmp = icmp ult <2 x i64> %v1, %v2
171     ret <2 x i1> %cmp
172   }
174   define <4 x i1> @test_v4i32_ult(<4 x i32> %v1, <4 x i32> %v2) {
175     %cmp = icmp ult <4 x i32> %v1, %v2
176     ret <4 x i1> %cmp
177   }
179   define <2 x i1> @test_v2i32_ult(<2 x i32> %v1, <2 x i32> %v2) {
180     %cmp = icmp ult <2 x i32> %v1, %v2
181     ret <2 x i1> %cmp
182   }
184   define <2 x i1> @test_v2i16_ult(<2 x i16> %v1, <2 x i16> %v2) {
185     %cmp = icmp ult <2 x i16> %v1, %v2
186     ret <2 x i1> %cmp
187   }
189   define <8 x i1> @test_v8i16_ult(<8 x i16> %v1, <8 x i16> %v2) {
190     %cmp = icmp ult <8 x i16> %v1, %v2
191     ret <8 x i1> %cmp
192   }
194   define <4 x i1> @test_v4i16_ult(<4 x i16> %v1, <4 x i16> %v2) {
195     %cmp = icmp ult <4 x i16> %v1, %v2
196     ret <4 x i1> %cmp
197   }
199   define <16 x i1> @test_v16i8_ult(<16 x i8> %v1, <16 x i8> %v2) {
200     %cmp = icmp ult <16 x i8> %v1, %v2
201     ret <16 x i1> %cmp
202   }
204   define <8 x i1> @test_v8i8_ult(<8 x i8> %v1, <8 x i8> %v2) {
205     %cmp = icmp ult <8 x i8> %v1, %v2
206     ret <8 x i1> %cmp
207   }
209   define <2 x i1> @test_v2i64_ule(<2 x i64> %v1, <2 x i64> %v2) {
210     %cmp = icmp ule <2 x i64> %v1, %v2
211     ret <2 x i1> %cmp
212   }
214   define <4 x i1> @test_v4i32_ule(<4 x i32> %v1, <4 x i32> %v2) {
215     %cmp = icmp ule <4 x i32> %v1, %v2
216     ret <4 x i1> %cmp
217   }
219   define <2 x i1> @test_v2i32_ule(<2 x i32> %v1, <2 x i32> %v2) {
220     %cmp = icmp ule <2 x i32> %v1, %v2
221     ret <2 x i1> %cmp
222   }
224   define <2 x i1> @test_v2i16_ule(<2 x i16> %v1, <2 x i16> %v2) {
225     %cmp = icmp ule <2 x i16> %v1, %v2
226     ret <2 x i1> %cmp
227   }
229   define <8 x i1> @test_v8i16_ule(<8 x i16> %v1, <8 x i16> %v2) {
230     %cmp = icmp ule <8 x i16> %v1, %v2
231     ret <8 x i1> %cmp
232   }
234   define <4 x i1> @test_v4i16_ule(<4 x i16> %v1, <4 x i16> %v2) {
235     %cmp = icmp ule <4 x i16> %v1, %v2
236     ret <4 x i1> %cmp
237   }
239   define <16 x i1> @test_v16i8_ule(<16 x i8> %v1, <16 x i8> %v2) {
240     %cmp = icmp ule <16 x i8> %v1, %v2
241     ret <16 x i1> %cmp
242   }
244   define <8 x i1> @test_v8i8_ule(<8 x i8> %v1, <8 x i8> %v2) {
245     %cmp = icmp ule <8 x i8> %v1, %v2
246     ret <8 x i1> %cmp
247   }
249   define <2 x i1> @test_v2i64_sgt(<2 x i64> %v1, <2 x i64> %v2) {
250     %cmp = icmp sgt <2 x i64> %v1, %v2
251     ret <2 x i1> %cmp
252   }
254   define <4 x i1> @test_v4i32_sgt(<4 x i32> %v1, <4 x i32> %v2) {
255     %cmp = icmp sgt <4 x i32> %v1, %v2
256     ret <4 x i1> %cmp
257   }
259   define <2 x i1> @test_v2i32_sgt(<2 x i32> %v1, <2 x i32> %v2) {
260     %cmp = icmp sgt <2 x i32> %v1, %v2
261     ret <2 x i1> %cmp
262   }
264   define <2 x i1> @test_v2i16_sgt(<2 x i16> %v1, <2 x i16> %v2) {
265     %cmp = icmp sgt <2 x i16> %v1, %v2
266     ret <2 x i1> %cmp
267   }
269   define <8 x i1> @test_v8i16_sgt(<8 x i16> %v1, <8 x i16> %v2) {
270     %cmp = icmp sgt <8 x i16> %v1, %v2
271     ret <8 x i1> %cmp
272   }
274   define <4 x i1> @test_v4i16_sgt(<4 x i16> %v1, <4 x i16> %v2) {
275     %cmp = icmp sgt <4 x i16> %v1, %v2
276     ret <4 x i1> %cmp
277   }
279   define <16 x i1> @test_v16i8_sgt(<16 x i8> %v1, <16 x i8> %v2) {
280     %cmp = icmp sgt <16 x i8> %v1, %v2
281     ret <16 x i1> %cmp
282   }
284   define <8 x i1> @test_v8i8_sgt(<8 x i8> %v1, <8 x i8> %v2) {
285     %cmp = icmp sgt <8 x i8> %v1, %v2
286     ret <8 x i1> %cmp
287   }
289   define <2 x i1> @test_v2i64_sge(<2 x i64> %v1, <2 x i64> %v2) {
290     %cmp = icmp sge <2 x i64> %v1, %v2
291     ret <2 x i1> %cmp
292   }
294   define <4 x i1> @test_v4i32_sge(<4 x i32> %v1, <4 x i32> %v2) {
295     %cmp = icmp sge <4 x i32> %v1, %v2
296     ret <4 x i1> %cmp
297   }
299   define <2 x i1> @test_v2i32_sge(<2 x i32> %v1, <2 x i32> %v2) {
300     %cmp = icmp sge <2 x i32> %v1, %v2
301     ret <2 x i1> %cmp
302   }
304   define <2 x i1> @test_v2i16_sge(<2 x i16> %v1, <2 x i16> %v2) {
305     %cmp = icmp sge <2 x i16> %v1, %v2
306     ret <2 x i1> %cmp
307   }
309   define <8 x i1> @test_v8i16_sge(<8 x i16> %v1, <8 x i16> %v2) {
310     %cmp = icmp sge <8 x i16> %v1, %v2
311     ret <8 x i1> %cmp
312   }
314   define <4 x i1> @test_v4i16_sge(<4 x i16> %v1, <4 x i16> %v2) {
315     %cmp = icmp sge <4 x i16> %v1, %v2
316     ret <4 x i1> %cmp
317   }
319   define <16 x i1> @test_v16i8_sge(<16 x i8> %v1, <16 x i8> %v2) {
320     %cmp = icmp sge <16 x i8> %v1, %v2
321     ret <16 x i1> %cmp
322   }
324   define <8 x i1> @test_v8i8_sge(<8 x i8> %v1, <8 x i8> %v2) {
325     %cmp = icmp sge <8 x i8> %v1, %v2
326     ret <8 x i1> %cmp
327   }
329   define <2 x i1> @test_v2i64_slt(<2 x i64> %v1, <2 x i64> %v2) {
330     %cmp = icmp slt <2 x i64> %v1, %v2
331     ret <2 x i1> %cmp
332   }
334   define <4 x i1> @test_v4i32_slt(<4 x i32> %v1, <4 x i32> %v2) {
335     %cmp = icmp slt <4 x i32> %v1, %v2
336     ret <4 x i1> %cmp
337   }
339   define <2 x i1> @test_v2i32_slt(<2 x i32> %v1, <2 x i32> %v2) {
340     %cmp = icmp slt <2 x i32> %v1, %v2
341     ret <2 x i1> %cmp
342   }
344   define <2 x i1> @test_v2i16_slt(<2 x i16> %v1, <2 x i16> %v2) {
345     %cmp = icmp slt <2 x i16> %v1, %v2
346     ret <2 x i1> %cmp
347   }
349   define <8 x i1> @test_v8i16_slt(<8 x i16> %v1, <8 x i16> %v2) {
350     %cmp = icmp slt <8 x i16> %v1, %v2
351     ret <8 x i1> %cmp
352   }
354   define <4 x i1> @test_v4i16_slt(<4 x i16> %v1, <4 x i16> %v2) {
355     %cmp = icmp slt <4 x i16> %v1, %v2
356     ret <4 x i1> %cmp
357   }
359   define <16 x i1> @test_v16i8_slt(<16 x i8> %v1, <16 x i8> %v2) {
360     %cmp = icmp slt <16 x i8> %v1, %v2
361     ret <16 x i1> %cmp
362   }
364   define <8 x i1> @test_v8i8_slt(<8 x i8> %v1, <8 x i8> %v2) {
365     %cmp = icmp slt <8 x i8> %v1, %v2
366     ret <8 x i1> %cmp
367   }
369   define <2 x i1> @test_v2i64_sle(<2 x i64> %v1, <2 x i64> %v2) {
370     %cmp = icmp sle <2 x i64> %v1, %v2
371     ret <2 x i1> %cmp
372   }
374   define <4 x i1> @test_v4i32_sle(<4 x i32> %v1, <4 x i32> %v2) {
375     %cmp = icmp sle <4 x i32> %v1, %v2
376     ret <4 x i1> %cmp
377   }
379   define <2 x i1> @test_v2i32_sle(<2 x i32> %v1, <2 x i32> %v2) {
380     %cmp = icmp sle <2 x i32> %v1, %v2
381     ret <2 x i1> %cmp
382   }
384   define <2 x i1> @test_v2i16_sle(<2 x i16> %v1, <2 x i16> %v2) {
385     %cmp = icmp sle <2 x i16> %v1, %v2
386     ret <2 x i1> %cmp
387   }
389   define <8 x i1> @test_v8i16_sle(<8 x i16> %v1, <8 x i16> %v2) {
390     %cmp = icmp sle <8 x i16> %v1, %v2
391     ret <8 x i1> %cmp
392   }
394   define <4 x i1> @test_v4i16_sle(<4 x i16> %v1, <4 x i16> %v2) {
395     %cmp = icmp sle <4 x i16> %v1, %v2
396     ret <4 x i1> %cmp
397   }
399   define <16 x i1> @test_v16i8_sle(<16 x i8> %v1, <16 x i8> %v2) {
400     %cmp = icmp sle <16 x i8> %v1, %v2
401     ret <16 x i1> %cmp
402   }
404   define <8 x i1> @test_v8i8_sle(<8 x i8> %v1, <8 x i8> %v2) {
405     %cmp = icmp sle <8 x i8> %v1, %v2
406     ret <8 x i1> %cmp
407   }
411 name:            test_v2i64_eq
412 alignment:       4
413 legalized:       true
414 regBankSelected: true
415 tracksRegLiveness: true
416 registers:
417   - { id: 0, class: fpr }
418   - { id: 1, class: fpr }
419   - { id: 2, class: _ }
420   - { id: 3, class: fpr }
421   - { id: 4, class: fpr }
422 machineFunctionInfo: {}
423 body:             |
424   bb.1 (%ir-block.0):
425     liveins: $q0, $q1
427     ; CHECK-LABEL: name: test_v2i64_eq
428     ; CHECK: liveins: $q0, $q1
429     ; CHECK-NEXT: {{  $}}
430     ; CHECK-NEXT: [[COPY:%[0-9]+]]:fpr128 = COPY $q0
431     ; CHECK-NEXT: [[COPY1:%[0-9]+]]:fpr128 = COPY $q1
432     ; CHECK-NEXT: [[CMEQv2i64_:%[0-9]+]]:fpr128 = CMEQv2i64 [[COPY]], [[COPY1]]
433     ; CHECK-NEXT: [[XTNv2i32_:%[0-9]+]]:fpr64 = XTNv2i32 [[CMEQv2i64_]]
434     ; CHECK-NEXT: $d0 = COPY [[XTNv2i32_]]
435     ; CHECK-NEXT: RET_ReallyLR implicit $d0
436     %0:fpr(<2 x s64>) = COPY $q0
437     %1:fpr(<2 x s64>) = COPY $q1
438     %4:fpr(<2 x s64>) = G_ICMP intpred(eq), %0(<2 x s64>), %1
439     %3:fpr(<2 x s32>) = G_TRUNC %4(<2 x s64>)
440     $d0 = COPY %3(<2 x s32>)
441     RET_ReallyLR implicit $d0
445 name:            test_v4i32_eq
446 alignment:       4
447 legalized:       true
448 regBankSelected: true
449 tracksRegLiveness: true
450 registers:
451   - { id: 0, class: fpr }
452   - { id: 1, class: fpr }
453   - { id: 2, class: _ }
454   - { id: 3, class: fpr }
455   - { id: 4, class: fpr }
456 machineFunctionInfo: {}
457 body:             |
458   bb.1 (%ir-block.0):
459     liveins: $q0, $q1
461     ; CHECK-LABEL: name: test_v4i32_eq
462     ; CHECK: liveins: $q0, $q1
463     ; CHECK-NEXT: {{  $}}
464     ; CHECK-NEXT: [[COPY:%[0-9]+]]:fpr128 = COPY $q0
465     ; CHECK-NEXT: [[COPY1:%[0-9]+]]:fpr128 = COPY $q1
466     ; CHECK-NEXT: [[CMEQv4i32_:%[0-9]+]]:fpr128 = CMEQv4i32 [[COPY]], [[COPY1]]
467     ; CHECK-NEXT: [[XTNv4i16_:%[0-9]+]]:fpr64 = XTNv4i16 [[CMEQv4i32_]]
468     ; CHECK-NEXT: $d0 = COPY [[XTNv4i16_]]
469     ; CHECK-NEXT: RET_ReallyLR implicit $d0
470     %0:fpr(<4 x s32>) = COPY $q0
471     %1:fpr(<4 x s32>) = COPY $q1
472     %4:fpr(<4 x s32>) = G_ICMP intpred(eq), %0(<4 x s32>), %1
473     %3:fpr(<4 x s16>) = G_TRUNC %4(<4 x s32>)
474     $d0 = COPY %3(<4 x s16>)
475     RET_ReallyLR implicit $d0
479 name:            test_v2i32_eq
480 alignment:       4
481 legalized:       true
482 regBankSelected: true
483 tracksRegLiveness: true
484 registers:
485   - { id: 0, class: fpr }
486   - { id: 1, class: fpr }
487   - { id: 2, class: _ }
488   - { id: 3, class: fpr }
489   - { id: 4, class: fpr }
490 machineFunctionInfo: {}
491 body:             |
492   bb.1 (%ir-block.0):
493     liveins: $d0, $d1
495     ; CHECK-LABEL: name: test_v2i32_eq
496     ; CHECK: liveins: $d0, $d1
497     ; CHECK-NEXT: {{  $}}
498     ; CHECK-NEXT: [[COPY:%[0-9]+]]:fpr64 = COPY $d0
499     ; CHECK-NEXT: [[COPY1:%[0-9]+]]:fpr64 = COPY $d1
500     ; CHECK-NEXT: [[CMEQv2i32_:%[0-9]+]]:fpr64 = CMEQv2i32 [[COPY]], [[COPY1]]
501     ; CHECK-NEXT: $d0 = COPY [[CMEQv2i32_]]
502     ; CHECK-NEXT: RET_ReallyLR implicit $d0
503     %0:fpr(<2 x s32>) = COPY $d0
504     %1:fpr(<2 x s32>) = COPY $d1
505     %4:fpr(<2 x s32>) = G_ICMP intpred(eq), %0(<2 x s32>), %1
506     %3:fpr(<2 x s32>) = COPY %4(<2 x s32>)
507     $d0 = COPY %3(<2 x s32>)
508     RET_ReallyLR implicit $d0
512 name:            test_v2i16_eq
513 alignment:       4
514 legalized:       true
515 regBankSelected: true
516 tracksRegLiveness: true
517 registers:
518   - { id: 0, class: _ }
519   - { id: 1, class: _ }
520   - { id: 2, class: fpr }
521   - { id: 3, class: fpr }
522   - { id: 4, class: _ }
523   - { id: 5, class: fpr }
524   - { id: 6, class: _ }
525   - { id: 7, class: fpr }
526   - { id: 8, class: fpr }
527   - { id: 9, class: fpr }
528   - { id: 10, class: gpr }
529   - { id: 11, class: fpr }
530   - { id: 12, class: fpr }
531   - { id: 13, class: gpr }
532   - { id: 14, class: fpr }
533   - { id: 15, class: fpr }
534 machineFunctionInfo: {}
535 body:             |
536   bb.1 (%ir-block.0):
537     liveins: $d0, $d1
539     ; CHECK-LABEL: name: test_v2i16_eq
540     ; CHECK: liveins: $d0, $d1
541     ; CHECK-NEXT: {{  $}}
542     ; CHECK-NEXT: [[COPY:%[0-9]+]]:fpr64 = COPY $d0
543     ; CHECK-NEXT: [[COPY1:%[0-9]+]]:fpr64 = COPY $d1
544     ; CHECK-NEXT: [[MOVID:%[0-9]+]]:fpr64 = MOVID 51
545     ; CHECK-NEXT: [[ANDv8i8_:%[0-9]+]]:fpr64 = ANDv8i8 [[COPY]], [[MOVID]]
546     ; CHECK-NEXT: [[MOVID1:%[0-9]+]]:fpr64 = MOVID 51
547     ; CHECK-NEXT: [[ANDv8i8_1:%[0-9]+]]:fpr64 = ANDv8i8 [[COPY1]], [[MOVID1]]
548     ; CHECK-NEXT: [[CMEQv2i32_:%[0-9]+]]:fpr64 = CMEQv2i32 [[ANDv8i8_]], [[ANDv8i8_1]]
549     ; CHECK-NEXT: $d0 = COPY [[CMEQv2i32_]]
550     ; CHECK-NEXT: RET_ReallyLR implicit $d0
551     %2:fpr(<2 x s32>) = COPY $d0
552     %3:fpr(<2 x s32>) = COPY $d1
553     %13:gpr(s32) = G_CONSTANT i32 65535
554     %14:fpr(<2 x s32>) = G_BUILD_VECTOR %13(s32), %13(s32)
555     %15:fpr(<2 x s32>) = COPY %2(<2 x s32>)
556     %7:fpr(<2 x s32>) = G_AND %15, %14
557     %10:gpr(s32) = G_CONSTANT i32 65535
558     %11:fpr(<2 x s32>) = G_BUILD_VECTOR %10(s32), %10(s32)
559     %12:fpr(<2 x s32>) = COPY %3(<2 x s32>)
560     %8:fpr(<2 x s32>) = G_AND %12, %11
561     %9:fpr(<2 x s32>) = G_ICMP intpred(eq), %7(<2 x s32>), %8
562     %5:fpr(<2 x s32>) = COPY %9(<2 x s32>)
563     $d0 = COPY %5(<2 x s32>)
564     RET_ReallyLR implicit $d0
568 name:            test_v8i16_eq
569 alignment:       4
570 legalized:       true
571 regBankSelected: true
572 tracksRegLiveness: true
573 registers:
574   - { id: 0, class: fpr }
575   - { id: 1, class: fpr }
576   - { id: 2, class: _ }
577   - { id: 3, class: fpr }
578   - { id: 4, class: fpr }
579 machineFunctionInfo: {}
580 body:             |
581   bb.1 (%ir-block.0):
582     liveins: $q0, $q1
584     ; CHECK-LABEL: name: test_v8i16_eq
585     ; CHECK: liveins: $q0, $q1
586     ; CHECK-NEXT: {{  $}}
587     ; CHECK-NEXT: [[COPY:%[0-9]+]]:fpr128 = COPY $q0
588     ; CHECK-NEXT: [[COPY1:%[0-9]+]]:fpr128 = COPY $q1
589     ; CHECK-NEXT: [[CMEQv8i16_:%[0-9]+]]:fpr128 = CMEQv8i16 [[COPY]], [[COPY1]]
590     ; CHECK-NEXT: [[XTNv8i8_:%[0-9]+]]:fpr64 = XTNv8i8 [[CMEQv8i16_]]
591     ; CHECK-NEXT: $d0 = COPY [[XTNv8i8_]]
592     ; CHECK-NEXT: RET_ReallyLR implicit $d0
593     %0:fpr(<8 x s16>) = COPY $q0
594     %1:fpr(<8 x s16>) = COPY $q1
595     %4:fpr(<8 x s16>) = G_ICMP intpred(eq), %0(<8 x s16>), %1
596     %3:fpr(<8 x s8>) = G_TRUNC %4(<8 x s16>)
597     $d0 = COPY %3(<8 x s8>)
598     RET_ReallyLR implicit $d0
602 name:            test_v4i16_eq
603 alignment:       4
604 legalized:       true
605 regBankSelected: true
606 tracksRegLiveness: true
607 registers:
608   - { id: 0, class: fpr }
609   - { id: 1, class: fpr }
610   - { id: 2, class: _ }
611   - { id: 3, class: fpr }
612   - { id: 4, class: fpr }
613 machineFunctionInfo: {}
614 body:             |
615   bb.1 (%ir-block.0):
616     liveins: $d0, $d1
618     ; CHECK-LABEL: name: test_v4i16_eq
619     ; CHECK: liveins: $d0, $d1
620     ; CHECK-NEXT: {{  $}}
621     ; CHECK-NEXT: [[COPY:%[0-9]+]]:fpr64 = COPY $d0
622     ; CHECK-NEXT: [[COPY1:%[0-9]+]]:fpr64 = COPY $d1
623     ; CHECK-NEXT: [[CMEQv4i16_:%[0-9]+]]:fpr64 = CMEQv4i16 [[COPY]], [[COPY1]]
624     ; CHECK-NEXT: $d0 = COPY [[CMEQv4i16_]]
625     ; CHECK-NEXT: RET_ReallyLR implicit $d0
626     %0:fpr(<4 x s16>) = COPY $d0
627     %1:fpr(<4 x s16>) = COPY $d1
628     %4:fpr(<4 x s16>) = G_ICMP intpred(eq), %0(<4 x s16>), %1
629     %3:fpr(<4 x s16>) = COPY %4(<4 x s16>)
630     $d0 = COPY %3(<4 x s16>)
631     RET_ReallyLR implicit $d0
635 name:            test_v16i8_eq
636 alignment:       4
637 legalized:       true
638 regBankSelected: true
639 tracksRegLiveness: true
640 registers:
641   - { id: 0, class: fpr }
642   - { id: 1, class: fpr }
643   - { id: 2, class: _ }
644   - { id: 3, class: fpr }
645   - { id: 4, class: fpr }
646 machineFunctionInfo: {}
647 body:             |
648   bb.1 (%ir-block.0):
649     liveins: $q0, $q1
651     ; CHECK-LABEL: name: test_v16i8_eq
652     ; CHECK: liveins: $q0, $q1
653     ; CHECK-NEXT: {{  $}}
654     ; CHECK-NEXT: [[COPY:%[0-9]+]]:fpr128 = COPY $q0
655     ; CHECK-NEXT: [[COPY1:%[0-9]+]]:fpr128 = COPY $q1
656     ; CHECK-NEXT: [[CMEQv16i8_:%[0-9]+]]:fpr128 = CMEQv16i8 [[COPY]], [[COPY1]]
657     ; CHECK-NEXT: $q0 = COPY [[CMEQv16i8_]]
658     ; CHECK-NEXT: RET_ReallyLR implicit $q0
659     %0:fpr(<16 x s8>) = COPY $q0
660     %1:fpr(<16 x s8>) = COPY $q1
661     %4:fpr(<16 x s8>) = G_ICMP intpred(eq), %0(<16 x s8>), %1
662     %3:fpr(<16 x s8>) = COPY %4(<16 x s8>)
663     $q0 = COPY %3(<16 x s8>)
664     RET_ReallyLR implicit $q0
668 name:            test_v8i8_eq
669 alignment:       4
670 legalized:       true
671 regBankSelected: true
672 tracksRegLiveness: true
673 registers:
674   - { id: 0, class: fpr }
675   - { id: 1, class: fpr }
676   - { id: 2, class: _ }
677   - { id: 3, class: fpr }
678   - { id: 4, class: fpr }
679 machineFunctionInfo: {}
680 body:             |
681   bb.1 (%ir-block.0):
682     liveins: $d0, $d1
684     ; CHECK-LABEL: name: test_v8i8_eq
685     ; CHECK: liveins: $d0, $d1
686     ; CHECK-NEXT: {{  $}}
687     ; CHECK-NEXT: [[COPY:%[0-9]+]]:fpr64 = COPY $d0
688     ; CHECK-NEXT: [[COPY1:%[0-9]+]]:fpr64 = COPY $d1
689     ; CHECK-NEXT: [[CMEQv8i8_:%[0-9]+]]:fpr64 = CMEQv8i8 [[COPY]], [[COPY1]]
690     ; CHECK-NEXT: $d0 = COPY [[CMEQv8i8_]]
691     ; CHECK-NEXT: RET_ReallyLR implicit $d0
692     %0:fpr(<8 x s8>) = COPY $d0
693     %1:fpr(<8 x s8>) = COPY $d1
694     %4:fpr(<8 x s8>) = G_ICMP intpred(eq), %0(<8 x s8>), %1
695     %3:fpr(<8 x s8>) = COPY %4(<8 x s8>)
696     $d0 = COPY %3(<8 x s8>)
697     RET_ReallyLR implicit $d0
701 name:            test_v2i64_ne
702 alignment:       4
703 legalized:       true
704 regBankSelected: true
705 tracksRegLiveness: true
706 registers:
707   - { id: 0, class: fpr }
708   - { id: 1, class: fpr }
709   - { id: 2, class: _ }
710   - { id: 3, class: fpr }
711   - { id: 4, class: fpr }
712 machineFunctionInfo: {}
713 body:             |
714   bb.1 (%ir-block.0):
715     liveins: $q0, $q1
717     ; CHECK-LABEL: name: test_v2i64_ne
718     ; CHECK: liveins: $q0, $q1
719     ; CHECK-NEXT: {{  $}}
720     ; CHECK-NEXT: [[COPY:%[0-9]+]]:fpr128 = COPY $q0
721     ; CHECK-NEXT: [[COPY1:%[0-9]+]]:fpr128 = COPY $q1
722     ; CHECK-NEXT: [[CMEQv2i64_:%[0-9]+]]:fpr128 = CMEQv2i64 [[COPY]], [[COPY1]]
723     ; CHECK-NEXT: [[NOTv16i8_:%[0-9]+]]:fpr128 = NOTv16i8 [[CMEQv2i64_]]
724     ; CHECK-NEXT: [[XTNv2i32_:%[0-9]+]]:fpr64 = XTNv2i32 [[NOTv16i8_]]
725     ; CHECK-NEXT: $d0 = COPY [[XTNv2i32_]]
726     ; CHECK-NEXT: RET_ReallyLR implicit $d0
727     %0:fpr(<2 x s64>) = COPY $q0
728     %1:fpr(<2 x s64>) = COPY $q1
729     %4:fpr(<2 x s64>) = G_ICMP intpred(ne), %0(<2 x s64>), %1
730     %3:fpr(<2 x s32>) = G_TRUNC %4(<2 x s64>)
731     $d0 = COPY %3(<2 x s32>)
732     RET_ReallyLR implicit $d0
736 name:            test_v4i32_ne
737 alignment:       4
738 legalized:       true
739 regBankSelected: true
740 tracksRegLiveness: true
741 registers:
742   - { id: 0, class: fpr }
743   - { id: 1, class: fpr }
744   - { id: 2, class: _ }
745   - { id: 3, class: fpr }
746   - { id: 4, class: fpr }
747 machineFunctionInfo: {}
748 body:             |
749   bb.1 (%ir-block.0):
750     liveins: $q0, $q1
752     ; CHECK-LABEL: name: test_v4i32_ne
753     ; CHECK: liveins: $q0, $q1
754     ; CHECK-NEXT: {{  $}}
755     ; CHECK-NEXT: [[COPY:%[0-9]+]]:fpr128 = COPY $q0
756     ; CHECK-NEXT: [[COPY1:%[0-9]+]]:fpr128 = COPY $q1
757     ; CHECK-NEXT: [[CMEQv4i32_:%[0-9]+]]:fpr128 = CMEQv4i32 [[COPY]], [[COPY1]]
758     ; CHECK-NEXT: [[NOTv16i8_:%[0-9]+]]:fpr128 = NOTv16i8 [[CMEQv4i32_]]
759     ; CHECK-NEXT: [[XTNv4i16_:%[0-9]+]]:fpr64 = XTNv4i16 [[NOTv16i8_]]
760     ; CHECK-NEXT: $d0 = COPY [[XTNv4i16_]]
761     ; CHECK-NEXT: RET_ReallyLR implicit $d0
762     %0:fpr(<4 x s32>) = COPY $q0
763     %1:fpr(<4 x s32>) = COPY $q1
764     %4:fpr(<4 x s32>) = G_ICMP intpred(ne), %0(<4 x s32>), %1
765     %3:fpr(<4 x s16>) = G_TRUNC %4(<4 x s32>)
766     $d0 = COPY %3(<4 x s16>)
767     RET_ReallyLR implicit $d0
771 name:            test_v2i32_ne
772 alignment:       4
773 legalized:       true
774 regBankSelected: true
775 tracksRegLiveness: true
776 registers:
777   - { id: 0, class: fpr }
778   - { id: 1, class: fpr }
779   - { id: 2, class: _ }
780   - { id: 3, class: fpr }
781   - { id: 4, class: fpr }
782 machineFunctionInfo: {}
783 body:             |
784   bb.1 (%ir-block.0):
785     liveins: $d0, $d1
787     ; CHECK-LABEL: name: test_v2i32_ne
788     ; CHECK: liveins: $d0, $d1
789     ; CHECK-NEXT: {{  $}}
790     ; CHECK-NEXT: [[COPY:%[0-9]+]]:fpr64 = COPY $d0
791     ; CHECK-NEXT: [[COPY1:%[0-9]+]]:fpr64 = COPY $d1
792     ; CHECK-NEXT: [[CMEQv2i32_:%[0-9]+]]:fpr64 = CMEQv2i32 [[COPY]], [[COPY1]]
793     ; CHECK-NEXT: [[NOTv8i8_:%[0-9]+]]:fpr64 = NOTv8i8 [[CMEQv2i32_]]
794     ; CHECK-NEXT: $d0 = COPY [[NOTv8i8_]]
795     ; CHECK-NEXT: RET_ReallyLR implicit $d0
796     %0:fpr(<2 x s32>) = COPY $d0
797     %1:fpr(<2 x s32>) = COPY $d1
798     %4:fpr(<2 x s32>) = G_ICMP intpred(ne), %0(<2 x s32>), %1
799     %3:fpr(<2 x s32>) = COPY %4(<2 x s32>)
800     $d0 = COPY %3(<2 x s32>)
801     RET_ReallyLR implicit $d0
805 name:            test_v2i16_ne
806 alignment:       4
807 legalized:       true
808 regBankSelected: true
809 tracksRegLiveness: true
810 registers:
811   - { id: 0, class: _ }
812   - { id: 1, class: _ }
813   - { id: 2, class: fpr }
814   - { id: 3, class: fpr }
815   - { id: 4, class: _ }
816   - { id: 5, class: fpr }
817   - { id: 6, class: _ }
818   - { id: 7, class: fpr }
819   - { id: 8, class: fpr }
820   - { id: 9, class: fpr }
821   - { id: 10, class: gpr }
822   - { id: 11, class: fpr }
823   - { id: 12, class: fpr }
824   - { id: 13, class: gpr }
825   - { id: 14, class: fpr }
826   - { id: 15, class: fpr }
827 machineFunctionInfo: {}
828 body:             |
829   bb.1 (%ir-block.0):
830     liveins: $d0, $d1
832     ; CHECK-LABEL: name: test_v2i16_ne
833     ; CHECK: liveins: $d0, $d1
834     ; CHECK-NEXT: {{  $}}
835     ; CHECK-NEXT: [[COPY:%[0-9]+]]:fpr64 = COPY $d0
836     ; CHECK-NEXT: [[COPY1:%[0-9]+]]:fpr64 = COPY $d1
837     ; CHECK-NEXT: [[MOVID:%[0-9]+]]:fpr64 = MOVID 51
838     ; CHECK-NEXT: [[ANDv8i8_:%[0-9]+]]:fpr64 = ANDv8i8 [[COPY]], [[MOVID]]
839     ; CHECK-NEXT: [[MOVID1:%[0-9]+]]:fpr64 = MOVID 51
840     ; CHECK-NEXT: [[ANDv8i8_1:%[0-9]+]]:fpr64 = ANDv8i8 [[COPY1]], [[MOVID1]]
841     ; CHECK-NEXT: [[CMEQv2i32_:%[0-9]+]]:fpr64 = CMEQv2i32 [[ANDv8i8_]], [[ANDv8i8_1]]
842     ; CHECK-NEXT: [[NOTv8i8_:%[0-9]+]]:fpr64 = NOTv8i8 [[CMEQv2i32_]]
843     ; CHECK-NEXT: $d0 = COPY [[NOTv8i8_]]
844     ; CHECK-NEXT: RET_ReallyLR implicit $d0
845     %2:fpr(<2 x s32>) = COPY $d0
846     %3:fpr(<2 x s32>) = COPY $d1
847     %13:gpr(s32) = G_CONSTANT i32 65535
848     %14:fpr(<2 x s32>) = G_BUILD_VECTOR %13(s32), %13(s32)
849     %15:fpr(<2 x s32>) = COPY %2(<2 x s32>)
850     %7:fpr(<2 x s32>) = G_AND %15, %14
851     %10:gpr(s32) = G_CONSTANT i32 65535
852     %11:fpr(<2 x s32>) = G_BUILD_VECTOR %10(s32), %10(s32)
853     %12:fpr(<2 x s32>) = COPY %3(<2 x s32>)
854     %8:fpr(<2 x s32>) = G_AND %12, %11
855     %9:fpr(<2 x s32>) = G_ICMP intpred(ne), %7(<2 x s32>), %8
856     %5:fpr(<2 x s32>) = COPY %9(<2 x s32>)
857     $d0 = COPY %5(<2 x s32>)
858     RET_ReallyLR implicit $d0
862 name:            test_v8i16_ne
863 alignment:       4
864 legalized:       true
865 regBankSelected: true
866 tracksRegLiveness: true
867 registers:
868   - { id: 0, class: fpr }
869   - { id: 1, class: fpr }
870   - { id: 2, class: _ }
871   - { id: 3, class: fpr }
872   - { id: 4, class: fpr }
873 machineFunctionInfo: {}
874 body:             |
875   bb.1 (%ir-block.0):
876     liveins: $q0, $q1
878     ; CHECK-LABEL: name: test_v8i16_ne
879     ; CHECK: liveins: $q0, $q1
880     ; CHECK-NEXT: {{  $}}
881     ; CHECK-NEXT: [[COPY:%[0-9]+]]:fpr128 = COPY $q0
882     ; CHECK-NEXT: [[COPY1:%[0-9]+]]:fpr128 = COPY $q1
883     ; CHECK-NEXT: [[CMEQv8i16_:%[0-9]+]]:fpr128 = CMEQv8i16 [[COPY]], [[COPY1]]
884     ; CHECK-NEXT: [[NOTv16i8_:%[0-9]+]]:fpr128 = NOTv16i8 [[CMEQv8i16_]]
885     ; CHECK-NEXT: [[XTNv8i8_:%[0-9]+]]:fpr64 = XTNv8i8 [[NOTv16i8_]]
886     ; CHECK-NEXT: $d0 = COPY [[XTNv8i8_]]
887     ; CHECK-NEXT: RET_ReallyLR implicit $d0
888     %0:fpr(<8 x s16>) = COPY $q0
889     %1:fpr(<8 x s16>) = COPY $q1
890     %4:fpr(<8 x s16>) = G_ICMP intpred(ne), %0(<8 x s16>), %1
891     %3:fpr(<8 x s8>) = G_TRUNC %4(<8 x s16>)
892     $d0 = COPY %3(<8 x s8>)
893     RET_ReallyLR implicit $d0
897 name:            test_v4i16_ne
898 alignment:       4
899 legalized:       true
900 regBankSelected: true
901 tracksRegLiveness: true
902 registers:
903   - { id: 0, class: fpr }
904   - { id: 1, class: fpr }
905   - { id: 2, class: _ }
906   - { id: 3, class: fpr }
907   - { id: 4, class: fpr }
908 machineFunctionInfo: {}
909 body:             |
910   bb.1 (%ir-block.0):
911     liveins: $d0, $d1
913     ; CHECK-LABEL: name: test_v4i16_ne
914     ; CHECK: liveins: $d0, $d1
915     ; CHECK-NEXT: {{  $}}
916     ; CHECK-NEXT: [[COPY:%[0-9]+]]:fpr64 = COPY $d0
917     ; CHECK-NEXT: [[COPY1:%[0-9]+]]:fpr64 = COPY $d1
918     ; CHECK-NEXT: [[CMEQv4i16_:%[0-9]+]]:fpr64 = CMEQv4i16 [[COPY]], [[COPY1]]
919     ; CHECK-NEXT: [[NOTv8i8_:%[0-9]+]]:fpr64 = NOTv8i8 [[CMEQv4i16_]]
920     ; CHECK-NEXT: $d0 = COPY [[NOTv8i8_]]
921     ; CHECK-NEXT: RET_ReallyLR implicit $d0
922     %0:fpr(<4 x s16>) = COPY $d0
923     %1:fpr(<4 x s16>) = COPY $d1
924     %4:fpr(<4 x s16>) = G_ICMP intpred(ne), %0(<4 x s16>), %1
925     %3:fpr(<4 x s16>) = COPY %4(<4 x s16>)
926     $d0 = COPY %3(<4 x s16>)
927     RET_ReallyLR implicit $d0
931 name:            test_v16i8_ne
932 alignment:       4
933 legalized:       true
934 regBankSelected: true
935 tracksRegLiveness: true
936 registers:
937   - { id: 0, class: fpr }
938   - { id: 1, class: fpr }
939   - { id: 2, class: _ }
940   - { id: 3, class: fpr }
941   - { id: 4, class: fpr }
942 machineFunctionInfo: {}
943 body:             |
944   bb.1 (%ir-block.0):
945     liveins: $q0, $q1
947     ; CHECK-LABEL: name: test_v16i8_ne
948     ; CHECK: liveins: $q0, $q1
949     ; CHECK-NEXT: {{  $}}
950     ; CHECK-NEXT: [[COPY:%[0-9]+]]:fpr128 = COPY $q0
951     ; CHECK-NEXT: [[COPY1:%[0-9]+]]:fpr128 = COPY $q1
952     ; CHECK-NEXT: [[CMEQv16i8_:%[0-9]+]]:fpr128 = CMEQv16i8 [[COPY]], [[COPY1]]
953     ; CHECK-NEXT: [[NOTv16i8_:%[0-9]+]]:fpr128 = NOTv16i8 [[CMEQv16i8_]]
954     ; CHECK-NEXT: $q0 = COPY [[NOTv16i8_]]
955     ; CHECK-NEXT: RET_ReallyLR implicit $q0
956     %0:fpr(<16 x s8>) = COPY $q0
957     %1:fpr(<16 x s8>) = COPY $q1
958     %4:fpr(<16 x s8>) = G_ICMP intpred(ne), %0(<16 x s8>), %1
959     %3:fpr(<16 x s8>) = COPY %4(<16 x s8>)
960     $q0 = COPY %3(<16 x s8>)
961     RET_ReallyLR implicit $q0
965 name:            test_v8i8_ne
966 alignment:       4
967 legalized:       true
968 regBankSelected: true
969 tracksRegLiveness: true
970 registers:
971   - { id: 0, class: fpr }
972   - { id: 1, class: fpr }
973   - { id: 2, class: _ }
974   - { id: 3, class: fpr }
975   - { id: 4, class: fpr }
976 machineFunctionInfo: {}
977 body:             |
978   bb.1 (%ir-block.0):
979     liveins: $d0, $d1
981     ; CHECK-LABEL: name: test_v8i8_ne
982     ; CHECK: liveins: $d0, $d1
983     ; CHECK-NEXT: {{  $}}
984     ; CHECK-NEXT: [[COPY:%[0-9]+]]:fpr64 = COPY $d0
985     ; CHECK-NEXT: [[COPY1:%[0-9]+]]:fpr64 = COPY $d1
986     ; CHECK-NEXT: [[CMEQv8i8_:%[0-9]+]]:fpr64 = CMEQv8i8 [[COPY]], [[COPY1]]
987     ; CHECK-NEXT: [[NOTv8i8_:%[0-9]+]]:fpr64 = NOTv8i8 [[CMEQv8i8_]]
988     ; CHECK-NEXT: $d0 = COPY [[NOTv8i8_]]
989     ; CHECK-NEXT: RET_ReallyLR implicit $d0
990     %0:fpr(<8 x s8>) = COPY $d0
991     %1:fpr(<8 x s8>) = COPY $d1
992     %4:fpr(<8 x s8>) = G_ICMP intpred(ne), %0(<8 x s8>), %1
993     %3:fpr(<8 x s8>) = COPY %4(<8 x s8>)
994     $d0 = COPY %3(<8 x s8>)
995     RET_ReallyLR implicit $d0
999 name:            test_v2i64_ugt
1000 alignment:       4
1001 legalized:       true
1002 regBankSelected: true
1003 tracksRegLiveness: true
1004 registers:
1005   - { id: 0, class: fpr }
1006   - { id: 1, class: fpr }
1007   - { id: 2, class: _ }
1008   - { id: 3, class: fpr }
1009   - { id: 4, class: fpr }
1010 machineFunctionInfo: {}
1011 body:             |
1012   bb.1 (%ir-block.0):
1013     liveins: $q0, $q1
1015     ; CHECK-LABEL: name: test_v2i64_ugt
1016     ; CHECK: liveins: $q0, $q1
1017     ; CHECK-NEXT: {{  $}}
1018     ; CHECK-NEXT: [[COPY:%[0-9]+]]:fpr128 = COPY $q0
1019     ; CHECK-NEXT: [[COPY1:%[0-9]+]]:fpr128 = COPY $q1
1020     ; CHECK-NEXT: [[CMHIv2i64_:%[0-9]+]]:fpr128 = CMHIv2i64 [[COPY]], [[COPY1]]
1021     ; CHECK-NEXT: [[XTNv2i32_:%[0-9]+]]:fpr64 = XTNv2i32 [[CMHIv2i64_]]
1022     ; CHECK-NEXT: $d0 = COPY [[XTNv2i32_]]
1023     ; CHECK-NEXT: RET_ReallyLR implicit $d0
1024     %0:fpr(<2 x s64>) = COPY $q0
1025     %1:fpr(<2 x s64>) = COPY $q1
1026     %4:fpr(<2 x s64>) = G_ICMP intpred(ugt), %0(<2 x s64>), %1
1027     %3:fpr(<2 x s32>) = G_TRUNC %4(<2 x s64>)
1028     $d0 = COPY %3(<2 x s32>)
1029     RET_ReallyLR implicit $d0
1033 name:            test_v4i32_ugt
1034 alignment:       4
1035 legalized:       true
1036 regBankSelected: true
1037 tracksRegLiveness: true
1038 registers:
1039   - { id: 0, class: fpr }
1040   - { id: 1, class: fpr }
1041   - { id: 2, class: _ }
1042   - { id: 3, class: fpr }
1043   - { id: 4, class: fpr }
1044 machineFunctionInfo: {}
1045 body:             |
1046   bb.1 (%ir-block.0):
1047     liveins: $q0, $q1
1049     ; CHECK-LABEL: name: test_v4i32_ugt
1050     ; CHECK: liveins: $q0, $q1
1051     ; CHECK-NEXT: {{  $}}
1052     ; CHECK-NEXT: [[COPY:%[0-9]+]]:fpr128 = COPY $q0
1053     ; CHECK-NEXT: [[COPY1:%[0-9]+]]:fpr128 = COPY $q1
1054     ; CHECK-NEXT: [[CMHIv4i32_:%[0-9]+]]:fpr128 = CMHIv4i32 [[COPY]], [[COPY1]]
1055     ; CHECK-NEXT: [[XTNv4i16_:%[0-9]+]]:fpr64 = XTNv4i16 [[CMHIv4i32_]]
1056     ; CHECK-NEXT: $d0 = COPY [[XTNv4i16_]]
1057     ; CHECK-NEXT: RET_ReallyLR implicit $d0
1058     %0:fpr(<4 x s32>) = COPY $q0
1059     %1:fpr(<4 x s32>) = COPY $q1
1060     %4:fpr(<4 x s32>) = G_ICMP intpred(ugt), %0(<4 x s32>), %1
1061     %3:fpr(<4 x s16>) = G_TRUNC %4(<4 x s32>)
1062     $d0 = COPY %3(<4 x s16>)
1063     RET_ReallyLR implicit $d0
1067 name:            test_v2i32_ugt
1068 alignment:       4
1069 legalized:       true
1070 regBankSelected: true
1071 tracksRegLiveness: true
1072 registers:
1073   - { id: 0, class: fpr }
1074   - { id: 1, class: fpr }
1075   - { id: 2, class: _ }
1076   - { id: 3, class: fpr }
1077   - { id: 4, class: fpr }
1078 machineFunctionInfo: {}
1079 body:             |
1080   bb.1 (%ir-block.0):
1081     liveins: $d0, $d1
1083     ; CHECK-LABEL: name: test_v2i32_ugt
1084     ; CHECK: liveins: $d0, $d1
1085     ; CHECK-NEXT: {{  $}}
1086     ; CHECK-NEXT: [[COPY:%[0-9]+]]:fpr64 = COPY $d0
1087     ; CHECK-NEXT: [[COPY1:%[0-9]+]]:fpr64 = COPY $d1
1088     ; CHECK-NEXT: [[CMHIv2i32_:%[0-9]+]]:fpr64 = CMHIv2i32 [[COPY]], [[COPY1]]
1089     ; CHECK-NEXT: $d0 = COPY [[CMHIv2i32_]]
1090     ; CHECK-NEXT: RET_ReallyLR implicit $d0
1091     %0:fpr(<2 x s32>) = COPY $d0
1092     %1:fpr(<2 x s32>) = COPY $d1
1093     %4:fpr(<2 x s32>) = G_ICMP intpred(ugt), %0(<2 x s32>), %1
1094     %3:fpr(<2 x s32>) = COPY %4(<2 x s32>)
1095     $d0 = COPY %3(<2 x s32>)
1096     RET_ReallyLR implicit $d0
1100 name:            test_v2i16_ugt
1101 alignment:       4
1102 legalized:       true
1103 regBankSelected: true
1104 tracksRegLiveness: true
1105 registers:
1106   - { id: 0, class: _ }
1107   - { id: 1, class: _ }
1108   - { id: 2, class: fpr }
1109   - { id: 3, class: fpr }
1110   - { id: 4, class: _ }
1111   - { id: 5, class: fpr }
1112   - { id: 6, class: _ }
1113   - { id: 7, class: fpr }
1114   - { id: 8, class: fpr }
1115   - { id: 9, class: fpr }
1116   - { id: 10, class: gpr }
1117   - { id: 11, class: fpr }
1118   - { id: 12, class: fpr }
1119   - { id: 13, class: gpr }
1120   - { id: 14, class: fpr }
1121   - { id: 15, class: fpr }
1122 machineFunctionInfo: {}
1123 body:             |
1124   bb.1 (%ir-block.0):
1125     liveins: $d0, $d1
1127     ; CHECK-LABEL: name: test_v2i16_ugt
1128     ; CHECK: liveins: $d0, $d1
1129     ; CHECK-NEXT: {{  $}}
1130     ; CHECK-NEXT: [[COPY:%[0-9]+]]:fpr64 = COPY $d0
1131     ; CHECK-NEXT: [[COPY1:%[0-9]+]]:fpr64 = COPY $d1
1132     ; CHECK-NEXT: [[MOVID:%[0-9]+]]:fpr64 = MOVID 51
1133     ; CHECK-NEXT: [[ANDv8i8_:%[0-9]+]]:fpr64 = ANDv8i8 [[COPY]], [[MOVID]]
1134     ; CHECK-NEXT: [[MOVID1:%[0-9]+]]:fpr64 = MOVID 51
1135     ; CHECK-NEXT: [[ANDv8i8_1:%[0-9]+]]:fpr64 = ANDv8i8 [[COPY1]], [[MOVID1]]
1136     ; CHECK-NEXT: [[CMHIv2i32_:%[0-9]+]]:fpr64 = CMHIv2i32 [[ANDv8i8_]], [[ANDv8i8_1]]
1137     ; CHECK-NEXT: $d0 = COPY [[CMHIv2i32_]]
1138     ; CHECK-NEXT: RET_ReallyLR implicit $d0
1139     %2:fpr(<2 x s32>) = COPY $d0
1140     %3:fpr(<2 x s32>) = COPY $d1
1141     %13:gpr(s32) = G_CONSTANT i32 65535
1142     %14:fpr(<2 x s32>) = G_BUILD_VECTOR %13(s32), %13(s32)
1143     %15:fpr(<2 x s32>) = COPY %2(<2 x s32>)
1144     %7:fpr(<2 x s32>) = G_AND %15, %14
1145     %10:gpr(s32) = G_CONSTANT i32 65535
1146     %11:fpr(<2 x s32>) = G_BUILD_VECTOR %10(s32), %10(s32)
1147     %12:fpr(<2 x s32>) = COPY %3(<2 x s32>)
1148     %8:fpr(<2 x s32>) = G_AND %12, %11
1149     %9:fpr(<2 x s32>) = G_ICMP intpred(ugt), %7(<2 x s32>), %8
1150     %5:fpr(<2 x s32>) = COPY %9(<2 x s32>)
1151     $d0 = COPY %5(<2 x s32>)
1152     RET_ReallyLR implicit $d0
1156 name:            test_v8i16_ugt
1157 alignment:       4
1158 legalized:       true
1159 regBankSelected: true
1160 tracksRegLiveness: true
1161 registers:
1162   - { id: 0, class: fpr }
1163   - { id: 1, class: fpr }
1164   - { id: 2, class: _ }
1165   - { id: 3, class: fpr }
1166   - { id: 4, class: fpr }
1167 machineFunctionInfo: {}
1168 body:             |
1169   bb.1 (%ir-block.0):
1170     liveins: $q0, $q1
1172     ; CHECK-LABEL: name: test_v8i16_ugt
1173     ; CHECK: liveins: $q0, $q1
1174     ; CHECK-NEXT: {{  $}}
1175     ; CHECK-NEXT: [[COPY:%[0-9]+]]:fpr128 = COPY $q0
1176     ; CHECK-NEXT: [[COPY1:%[0-9]+]]:fpr128 = COPY $q1
1177     ; CHECK-NEXT: [[CMHIv8i16_:%[0-9]+]]:fpr128 = CMHIv8i16 [[COPY]], [[COPY1]]
1178     ; CHECK-NEXT: [[XTNv8i8_:%[0-9]+]]:fpr64 = XTNv8i8 [[CMHIv8i16_]]
1179     ; CHECK-NEXT: $d0 = COPY [[XTNv8i8_]]
1180     ; CHECK-NEXT: RET_ReallyLR implicit $d0
1181     %0:fpr(<8 x s16>) = COPY $q0
1182     %1:fpr(<8 x s16>) = COPY $q1
1183     %4:fpr(<8 x s16>) = G_ICMP intpred(ugt), %0(<8 x s16>), %1
1184     %3:fpr(<8 x s8>) = G_TRUNC %4(<8 x s16>)
1185     $d0 = COPY %3(<8 x s8>)
1186     RET_ReallyLR implicit $d0
1190 name:            test_v4i16_ugt
1191 alignment:       4
1192 legalized:       true
1193 regBankSelected: true
1194 tracksRegLiveness: true
1195 registers:
1196   - { id: 0, class: fpr }
1197   - { id: 1, class: fpr }
1198   - { id: 2, class: _ }
1199   - { id: 3, class: fpr }
1200   - { id: 4, class: fpr }
1201 machineFunctionInfo: {}
1202 body:             |
1203   bb.1 (%ir-block.0):
1204     liveins: $d0, $d1
1206     ; CHECK-LABEL: name: test_v4i16_ugt
1207     ; CHECK: liveins: $d0, $d1
1208     ; CHECK-NEXT: {{  $}}
1209     ; CHECK-NEXT: [[COPY:%[0-9]+]]:fpr64 = COPY $d0
1210     ; CHECK-NEXT: [[COPY1:%[0-9]+]]:fpr64 = COPY $d1
1211     ; CHECK-NEXT: [[CMHIv4i16_:%[0-9]+]]:fpr64 = CMHIv4i16 [[COPY]], [[COPY1]]
1212     ; CHECK-NEXT: $d0 = COPY [[CMHIv4i16_]]
1213     ; CHECK-NEXT: RET_ReallyLR implicit $d0
1214     %0:fpr(<4 x s16>) = COPY $d0
1215     %1:fpr(<4 x s16>) = COPY $d1
1216     %4:fpr(<4 x s16>) = G_ICMP intpred(ugt), %0(<4 x s16>), %1
1217     %3:fpr(<4 x s16>) = COPY %4(<4 x s16>)
1218     $d0 = COPY %3(<4 x s16>)
1219     RET_ReallyLR implicit $d0
1223 name:            test_v16i8_ugt
1224 alignment:       4
1225 legalized:       true
1226 regBankSelected: true
1227 tracksRegLiveness: true
1228 registers:
1229   - { id: 0, class: fpr }
1230   - { id: 1, class: fpr }
1231   - { id: 2, class: _ }
1232   - { id: 3, class: fpr }
1233   - { id: 4, class: fpr }
1234 machineFunctionInfo: {}
1235 body:             |
1236   bb.1 (%ir-block.0):
1237     liveins: $q0, $q1
1239     ; CHECK-LABEL: name: test_v16i8_ugt
1240     ; CHECK: liveins: $q0, $q1
1241     ; CHECK-NEXT: {{  $}}
1242     ; CHECK-NEXT: [[COPY:%[0-9]+]]:fpr128 = COPY $q0
1243     ; CHECK-NEXT: [[COPY1:%[0-9]+]]:fpr128 = COPY $q1
1244     ; CHECK-NEXT: [[CMHIv16i8_:%[0-9]+]]:fpr128 = CMHIv16i8 [[COPY]], [[COPY1]]
1245     ; CHECK-NEXT: $q0 = COPY [[CMHIv16i8_]]
1246     ; CHECK-NEXT: RET_ReallyLR implicit $q0
1247     %0:fpr(<16 x s8>) = COPY $q0
1248     %1:fpr(<16 x s8>) = COPY $q1
1249     %4:fpr(<16 x s8>) = G_ICMP intpred(ugt), %0(<16 x s8>), %1
1250     %3:fpr(<16 x s8>) = COPY %4(<16 x s8>)
1251     $q0 = COPY %3(<16 x s8>)
1252     RET_ReallyLR implicit $q0
1256 name:            test_v8i8_ugt
1257 alignment:       4
1258 legalized:       true
1259 regBankSelected: true
1260 tracksRegLiveness: true
1261 registers:
1262   - { id: 0, class: fpr }
1263   - { id: 1, class: fpr }
1264   - { id: 2, class: _ }
1265   - { id: 3, class: fpr }
1266   - { id: 4, class: fpr }
1267 machineFunctionInfo: {}
1268 body:             |
1269   bb.1 (%ir-block.0):
1270     liveins: $d0, $d1
1272     ; CHECK-LABEL: name: test_v8i8_ugt
1273     ; CHECK: liveins: $d0, $d1
1274     ; CHECK-NEXT: {{  $}}
1275     ; CHECK-NEXT: [[COPY:%[0-9]+]]:fpr64 = COPY $d0
1276     ; CHECK-NEXT: [[COPY1:%[0-9]+]]:fpr64 = COPY $d1
1277     ; CHECK-NEXT: [[CMHIv8i8_:%[0-9]+]]:fpr64 = CMHIv8i8 [[COPY]], [[COPY1]]
1278     ; CHECK-NEXT: $d0 = COPY [[CMHIv8i8_]]
1279     ; CHECK-NEXT: RET_ReallyLR implicit $d0
1280     %0:fpr(<8 x s8>) = COPY $d0
1281     %1:fpr(<8 x s8>) = COPY $d1
1282     %4:fpr(<8 x s8>) = G_ICMP intpred(ugt), %0(<8 x s8>), %1
1283     %3:fpr(<8 x s8>) = COPY %4(<8 x s8>)
1284     $d0 = COPY %3(<8 x s8>)
1285     RET_ReallyLR implicit $d0
1289 name:            test_v2i64_uge
1290 alignment:       4
1291 legalized:       true
1292 regBankSelected: true
1293 tracksRegLiveness: true
1294 registers:
1295   - { id: 0, class: fpr }
1296   - { id: 1, class: fpr }
1297   - { id: 2, class: _ }
1298   - { id: 3, class: fpr }
1299   - { id: 4, class: fpr }
1300 machineFunctionInfo: {}
1301 body:             |
1302   bb.1 (%ir-block.0):
1303     liveins: $q0, $q1
1305     ; CHECK-LABEL: name: test_v2i64_uge
1306     ; CHECK: liveins: $q0, $q1
1307     ; CHECK-NEXT: {{  $}}
1308     ; CHECK-NEXT: [[COPY:%[0-9]+]]:fpr128 = COPY $q0
1309     ; CHECK-NEXT: [[COPY1:%[0-9]+]]:fpr128 = COPY $q1
1310     ; CHECK-NEXT: [[CMHSv2i64_:%[0-9]+]]:fpr128 = CMHSv2i64 [[COPY]], [[COPY1]]
1311     ; CHECK-NEXT: [[XTNv2i32_:%[0-9]+]]:fpr64 = XTNv2i32 [[CMHSv2i64_]]
1312     ; CHECK-NEXT: $d0 = COPY [[XTNv2i32_]]
1313     ; CHECK-NEXT: RET_ReallyLR implicit $d0
1314     %0:fpr(<2 x s64>) = COPY $q0
1315     %1:fpr(<2 x s64>) = COPY $q1
1316     %4:fpr(<2 x s64>) = G_ICMP intpred(uge), %0(<2 x s64>), %1
1317     %3:fpr(<2 x s32>) = G_TRUNC %4(<2 x s64>)
1318     $d0 = COPY %3(<2 x s32>)
1319     RET_ReallyLR implicit $d0
1323 name:            test_v4i32_uge
1324 alignment:       4
1325 legalized:       true
1326 regBankSelected: true
1327 tracksRegLiveness: true
1328 registers:
1329   - { id: 0, class: fpr }
1330   - { id: 1, class: fpr }
1331   - { id: 2, class: _ }
1332   - { id: 3, class: fpr }
1333   - { id: 4, class: fpr }
1334 machineFunctionInfo: {}
1335 body:             |
1336   bb.1 (%ir-block.0):
1337     liveins: $q0, $q1
1339     ; CHECK-LABEL: name: test_v4i32_uge
1340     ; CHECK: liveins: $q0, $q1
1341     ; CHECK-NEXT: {{  $}}
1342     ; CHECK-NEXT: [[COPY:%[0-9]+]]:fpr128 = COPY $q0
1343     ; CHECK-NEXT: [[COPY1:%[0-9]+]]:fpr128 = COPY $q1
1344     ; CHECK-NEXT: [[CMHSv4i32_:%[0-9]+]]:fpr128 = CMHSv4i32 [[COPY]], [[COPY1]]
1345     ; CHECK-NEXT: [[XTNv4i16_:%[0-9]+]]:fpr64 = XTNv4i16 [[CMHSv4i32_]]
1346     ; CHECK-NEXT: $d0 = COPY [[XTNv4i16_]]
1347     ; CHECK-NEXT: RET_ReallyLR implicit $d0
1348     %0:fpr(<4 x s32>) = COPY $q0
1349     %1:fpr(<4 x s32>) = COPY $q1
1350     %4:fpr(<4 x s32>) = G_ICMP intpred(uge), %0(<4 x s32>), %1
1351     %3:fpr(<4 x s16>) = G_TRUNC %4(<4 x s32>)
1352     $d0 = COPY %3(<4 x s16>)
1353     RET_ReallyLR implicit $d0
1357 name:            test_v2i32_uge
1358 alignment:       4
1359 legalized:       true
1360 regBankSelected: true
1361 tracksRegLiveness: true
1362 registers:
1363   - { id: 0, class: fpr }
1364   - { id: 1, class: fpr }
1365   - { id: 2, class: _ }
1366   - { id: 3, class: fpr }
1367   - { id: 4, class: fpr }
1368 machineFunctionInfo: {}
1369 body:             |
1370   bb.1 (%ir-block.0):
1371     liveins: $d0, $d1
1373     ; CHECK-LABEL: name: test_v2i32_uge
1374     ; CHECK: liveins: $d0, $d1
1375     ; CHECK-NEXT: {{  $}}
1376     ; CHECK-NEXT: [[COPY:%[0-9]+]]:fpr64 = COPY $d0
1377     ; CHECK-NEXT: [[COPY1:%[0-9]+]]:fpr64 = COPY $d1
1378     ; CHECK-NEXT: [[CMHSv2i32_:%[0-9]+]]:fpr64 = CMHSv2i32 [[COPY]], [[COPY1]]
1379     ; CHECK-NEXT: $d0 = COPY [[CMHSv2i32_]]
1380     ; CHECK-NEXT: RET_ReallyLR implicit $d0
1381     %0:fpr(<2 x s32>) = COPY $d0
1382     %1:fpr(<2 x s32>) = COPY $d1
1383     %4:fpr(<2 x s32>) = G_ICMP intpred(uge), %0(<2 x s32>), %1
1384     %3:fpr(<2 x s32>) = COPY %4(<2 x s32>)
1385     $d0 = COPY %3(<2 x s32>)
1386     RET_ReallyLR implicit $d0
1390 name:            test_v2i16_uge
1391 alignment:       4
1392 legalized:       true
1393 regBankSelected: true
1394 tracksRegLiveness: true
1395 registers:
1396   - { id: 0, class: _ }
1397   - { id: 1, class: _ }
1398   - { id: 2, class: fpr }
1399   - { id: 3, class: fpr }
1400   - { id: 4, class: _ }
1401   - { id: 5, class: fpr }
1402   - { id: 6, class: _ }
1403   - { id: 7, class: fpr }
1404   - { id: 8, class: fpr }
1405   - { id: 9, class: fpr }
1406   - { id: 10, class: gpr }
1407   - { id: 11, class: fpr }
1408   - { id: 12, class: fpr }
1409   - { id: 13, class: gpr }
1410   - { id: 14, class: fpr }
1411   - { id: 15, class: fpr }
1412 machineFunctionInfo: {}
1413 body:             |
1414   bb.1 (%ir-block.0):
1415     liveins: $d0, $d1
1417     ; CHECK-LABEL: name: test_v2i16_uge
1418     ; CHECK: liveins: $d0, $d1
1419     ; CHECK-NEXT: {{  $}}
1420     ; CHECK-NEXT: [[COPY:%[0-9]+]]:fpr64 = COPY $d0
1421     ; CHECK-NEXT: [[COPY1:%[0-9]+]]:fpr64 = COPY $d1
1422     ; CHECK-NEXT: [[MOVID:%[0-9]+]]:fpr64 = MOVID 51
1423     ; CHECK-NEXT: [[ANDv8i8_:%[0-9]+]]:fpr64 = ANDv8i8 [[COPY]], [[MOVID]]
1424     ; CHECK-NEXT: [[MOVID1:%[0-9]+]]:fpr64 = MOVID 51
1425     ; CHECK-NEXT: [[ANDv8i8_1:%[0-9]+]]:fpr64 = ANDv8i8 [[COPY1]], [[MOVID1]]
1426     ; CHECK-NEXT: [[CMHSv2i32_:%[0-9]+]]:fpr64 = CMHSv2i32 [[ANDv8i8_]], [[ANDv8i8_1]]
1427     ; CHECK-NEXT: $d0 = COPY [[CMHSv2i32_]]
1428     ; CHECK-NEXT: RET_ReallyLR implicit $d0
1429     %2:fpr(<2 x s32>) = COPY $d0
1430     %3:fpr(<2 x s32>) = COPY $d1
1431     %13:gpr(s32) = G_CONSTANT i32 65535
1432     %14:fpr(<2 x s32>) = G_BUILD_VECTOR %13(s32), %13(s32)
1433     %15:fpr(<2 x s32>) = COPY %2(<2 x s32>)
1434     %7:fpr(<2 x s32>) = G_AND %15, %14
1435     %10:gpr(s32) = G_CONSTANT i32 65535
1436     %11:fpr(<2 x s32>) = G_BUILD_VECTOR %10(s32), %10(s32)
1437     %12:fpr(<2 x s32>) = COPY %3(<2 x s32>)
1438     %8:fpr(<2 x s32>) = G_AND %12, %11
1439     %9:fpr(<2 x s32>) = G_ICMP intpred(uge), %7(<2 x s32>), %8
1440     %5:fpr(<2 x s32>) = COPY %9(<2 x s32>)
1441     $d0 = COPY %5(<2 x s32>)
1442     RET_ReallyLR implicit $d0
1446 name:            test_v8i16_uge
1447 alignment:       4
1448 legalized:       true
1449 regBankSelected: true
1450 tracksRegLiveness: true
1451 registers:
1452   - { id: 0, class: fpr }
1453   - { id: 1, class: fpr }
1454   - { id: 2, class: _ }
1455   - { id: 3, class: fpr }
1456   - { id: 4, class: fpr }
1457 machineFunctionInfo: {}
1458 body:             |
1459   bb.1 (%ir-block.0):
1460     liveins: $q0, $q1
1462     ; CHECK-LABEL: name: test_v8i16_uge
1463     ; CHECK: liveins: $q0, $q1
1464     ; CHECK-NEXT: {{  $}}
1465     ; CHECK-NEXT: [[COPY:%[0-9]+]]:fpr128 = COPY $q0
1466     ; CHECK-NEXT: [[COPY1:%[0-9]+]]:fpr128 = COPY $q1
1467     ; CHECK-NEXT: [[CMHSv8i16_:%[0-9]+]]:fpr128 = CMHSv8i16 [[COPY]], [[COPY1]]
1468     ; CHECK-NEXT: [[XTNv8i8_:%[0-9]+]]:fpr64 = XTNv8i8 [[CMHSv8i16_]]
1469     ; CHECK-NEXT: $d0 = COPY [[XTNv8i8_]]
1470     ; CHECK-NEXT: RET_ReallyLR implicit $d0
1471     %0:fpr(<8 x s16>) = COPY $q0
1472     %1:fpr(<8 x s16>) = COPY $q1
1473     %4:fpr(<8 x s16>) = G_ICMP intpred(uge), %0(<8 x s16>), %1
1474     %3:fpr(<8 x s8>) = G_TRUNC %4(<8 x s16>)
1475     $d0 = COPY %3(<8 x s8>)
1476     RET_ReallyLR implicit $d0
1480 name:            test_v4i16_uge
1481 alignment:       4
1482 legalized:       true
1483 regBankSelected: true
1484 tracksRegLiveness: true
1485 registers:
1486   - { id: 0, class: fpr }
1487   - { id: 1, class: fpr }
1488   - { id: 2, class: _ }
1489   - { id: 3, class: fpr }
1490   - { id: 4, class: fpr }
1491 machineFunctionInfo: {}
1492 body:             |
1493   bb.1 (%ir-block.0):
1494     liveins: $d0, $d1
1496     ; CHECK-LABEL: name: test_v4i16_uge
1497     ; CHECK: liveins: $d0, $d1
1498     ; CHECK-NEXT: {{  $}}
1499     ; CHECK-NEXT: [[COPY:%[0-9]+]]:fpr64 = COPY $d0
1500     ; CHECK-NEXT: [[COPY1:%[0-9]+]]:fpr64 = COPY $d1
1501     ; CHECK-NEXT: [[CMHSv4i16_:%[0-9]+]]:fpr64 = CMHSv4i16 [[COPY]], [[COPY1]]
1502     ; CHECK-NEXT: $d0 = COPY [[CMHSv4i16_]]
1503     ; CHECK-NEXT: RET_ReallyLR implicit $d0
1504     %0:fpr(<4 x s16>) = COPY $d0
1505     %1:fpr(<4 x s16>) = COPY $d1
1506     %4:fpr(<4 x s16>) = G_ICMP intpred(uge), %0(<4 x s16>), %1
1507     %3:fpr(<4 x s16>) = COPY %4(<4 x s16>)
1508     $d0 = COPY %3(<4 x s16>)
1509     RET_ReallyLR implicit $d0
1513 name:            test_v16i8_uge
1514 alignment:       4
1515 legalized:       true
1516 regBankSelected: true
1517 tracksRegLiveness: true
1518 registers:
1519   - { id: 0, class: fpr }
1520   - { id: 1, class: fpr }
1521   - { id: 2, class: _ }
1522   - { id: 3, class: fpr }
1523   - { id: 4, class: fpr }
1524 machineFunctionInfo: {}
1525 body:             |
1526   bb.1 (%ir-block.0):
1527     liveins: $q0, $q1
1529     ; CHECK-LABEL: name: test_v16i8_uge
1530     ; CHECK: liveins: $q0, $q1
1531     ; CHECK-NEXT: {{  $}}
1532     ; CHECK-NEXT: [[COPY:%[0-9]+]]:fpr128 = COPY $q0
1533     ; CHECK-NEXT: [[COPY1:%[0-9]+]]:fpr128 = COPY $q1
1534     ; CHECK-NEXT: [[CMHSv16i8_:%[0-9]+]]:fpr128 = CMHSv16i8 [[COPY]], [[COPY1]]
1535     ; CHECK-NEXT: $q0 = COPY [[CMHSv16i8_]]
1536     ; CHECK-NEXT: RET_ReallyLR implicit $q0
1537     %0:fpr(<16 x s8>) = COPY $q0
1538     %1:fpr(<16 x s8>) = COPY $q1
1539     %4:fpr(<16 x s8>) = G_ICMP intpred(uge), %0(<16 x s8>), %1
1540     %3:fpr(<16 x s8>) = COPY %4(<16 x s8>)
1541     $q0 = COPY %3(<16 x s8>)
1542     RET_ReallyLR implicit $q0
1546 name:            test_v8i8_uge
1547 alignment:       4
1548 legalized:       true
1549 regBankSelected: true
1550 tracksRegLiveness: true
1551 registers:
1552   - { id: 0, class: fpr }
1553   - { id: 1, class: fpr }
1554   - { id: 2, class: _ }
1555   - { id: 3, class: fpr }
1556   - { id: 4, class: fpr }
1557 machineFunctionInfo: {}
1558 body:             |
1559   bb.1 (%ir-block.0):
1560     liveins: $d0, $d1
1562     ; CHECK-LABEL: name: test_v8i8_uge
1563     ; CHECK: liveins: $d0, $d1
1564     ; CHECK-NEXT: {{  $}}
1565     ; CHECK-NEXT: [[COPY:%[0-9]+]]:fpr64 = COPY $d0
1566     ; CHECK-NEXT: [[COPY1:%[0-9]+]]:fpr64 = COPY $d1
1567     ; CHECK-NEXT: [[CMHSv8i8_:%[0-9]+]]:fpr64 = CMHSv8i8 [[COPY]], [[COPY1]]
1568     ; CHECK-NEXT: $d0 = COPY [[CMHSv8i8_]]
1569     ; CHECK-NEXT: RET_ReallyLR implicit $d0
1570     %0:fpr(<8 x s8>) = COPY $d0
1571     %1:fpr(<8 x s8>) = COPY $d1
1572     %4:fpr(<8 x s8>) = G_ICMP intpred(uge), %0(<8 x s8>), %1
1573     %3:fpr(<8 x s8>) = COPY %4(<8 x s8>)
1574     $d0 = COPY %3(<8 x s8>)
1575     RET_ReallyLR implicit $d0
1579 name:            test_v2i64_ult
1580 alignment:       4
1581 legalized:       true
1582 regBankSelected: true
1583 tracksRegLiveness: true
1584 registers:
1585   - { id: 0, class: fpr }
1586   - { id: 1, class: fpr }
1587   - { id: 2, class: _ }
1588   - { id: 3, class: fpr }
1589   - { id: 4, class: fpr }
1590 machineFunctionInfo: {}
1591 body:             |
1592   bb.1 (%ir-block.0):
1593     liveins: $q0, $q1
1595     ; CHECK-LABEL: name: test_v2i64_ult
1596     ; CHECK: liveins: $q0, $q1
1597     ; CHECK-NEXT: {{  $}}
1598     ; CHECK-NEXT: [[COPY:%[0-9]+]]:fpr128 = COPY $q0
1599     ; CHECK-NEXT: [[COPY1:%[0-9]+]]:fpr128 = COPY $q1
1600     ; CHECK-NEXT: [[CMHIv2i64_:%[0-9]+]]:fpr128 = CMHIv2i64 [[COPY1]], [[COPY]]
1601     ; CHECK-NEXT: [[XTNv2i32_:%[0-9]+]]:fpr64 = XTNv2i32 [[CMHIv2i64_]]
1602     ; CHECK-NEXT: $d0 = COPY [[XTNv2i32_]]
1603     ; CHECK-NEXT: RET_ReallyLR implicit $d0
1604     %0:fpr(<2 x s64>) = COPY $q0
1605     %1:fpr(<2 x s64>) = COPY $q1
1606     %4:fpr(<2 x s64>) = G_ICMP intpred(ult), %0(<2 x s64>), %1
1607     %3:fpr(<2 x s32>) = G_TRUNC %4(<2 x s64>)
1608     $d0 = COPY %3(<2 x s32>)
1609     RET_ReallyLR implicit $d0
1613 name:            test_v4i32_ult
1614 alignment:       4
1615 legalized:       true
1616 regBankSelected: true
1617 tracksRegLiveness: true
1618 registers:
1619   - { id: 0, class: fpr }
1620   - { id: 1, class: fpr }
1621   - { id: 2, class: _ }
1622   - { id: 3, class: fpr }
1623   - { id: 4, class: fpr }
1624 machineFunctionInfo: {}
1625 body:             |
1626   bb.1 (%ir-block.0):
1627     liveins: $q0, $q1
1629     ; CHECK-LABEL: name: test_v4i32_ult
1630     ; CHECK: liveins: $q0, $q1
1631     ; CHECK-NEXT: {{  $}}
1632     ; CHECK-NEXT: [[COPY:%[0-9]+]]:fpr128 = COPY $q0
1633     ; CHECK-NEXT: [[COPY1:%[0-9]+]]:fpr128 = COPY $q1
1634     ; CHECK-NEXT: [[CMHIv4i32_:%[0-9]+]]:fpr128 = CMHIv4i32 [[COPY1]], [[COPY]]
1635     ; CHECK-NEXT: [[XTNv4i16_:%[0-9]+]]:fpr64 = XTNv4i16 [[CMHIv4i32_]]
1636     ; CHECK-NEXT: $d0 = COPY [[XTNv4i16_]]
1637     ; CHECK-NEXT: RET_ReallyLR implicit $d0
1638     %0:fpr(<4 x s32>) = COPY $q0
1639     %1:fpr(<4 x s32>) = COPY $q1
1640     %4:fpr(<4 x s32>) = G_ICMP intpred(ult), %0(<4 x s32>), %1
1641     %3:fpr(<4 x s16>) = G_TRUNC %4(<4 x s32>)
1642     $d0 = COPY %3(<4 x s16>)
1643     RET_ReallyLR implicit $d0
1647 name:            test_v2i32_ult
1648 alignment:       4
1649 legalized:       true
1650 regBankSelected: true
1651 tracksRegLiveness: true
1652 registers:
1653   - { id: 0, class: fpr }
1654   - { id: 1, class: fpr }
1655   - { id: 2, class: _ }
1656   - { id: 3, class: fpr }
1657   - { id: 4, class: fpr }
1658 machineFunctionInfo: {}
1659 body:             |
1660   bb.1 (%ir-block.0):
1661     liveins: $d0, $d1
1663     ; CHECK-LABEL: name: test_v2i32_ult
1664     ; CHECK: liveins: $d0, $d1
1665     ; CHECK-NEXT: {{  $}}
1666     ; CHECK-NEXT: [[COPY:%[0-9]+]]:fpr64 = COPY $d0
1667     ; CHECK-NEXT: [[COPY1:%[0-9]+]]:fpr64 = COPY $d1
1668     ; CHECK-NEXT: [[CMHIv2i32_:%[0-9]+]]:fpr64 = CMHIv2i32 [[COPY1]], [[COPY]]
1669     ; CHECK-NEXT: $d0 = COPY [[CMHIv2i32_]]
1670     ; CHECK-NEXT: RET_ReallyLR implicit $d0
1671     %0:fpr(<2 x s32>) = COPY $d0
1672     %1:fpr(<2 x s32>) = COPY $d1
1673     %4:fpr(<2 x s32>) = G_ICMP intpred(ult), %0(<2 x s32>), %1
1674     %3:fpr(<2 x s32>) = COPY %4(<2 x s32>)
1675     $d0 = COPY %3(<2 x s32>)
1676     RET_ReallyLR implicit $d0
1680 name:            test_v2i16_ult
1681 alignment:       4
1682 legalized:       true
1683 regBankSelected: true
1684 tracksRegLiveness: true
1685 registers:
1686   - { id: 0, class: _ }
1687   - { id: 1, class: _ }
1688   - { id: 2, class: fpr }
1689   - { id: 3, class: fpr }
1690   - { id: 4, class: _ }
1691   - { id: 5, class: fpr }
1692   - { id: 6, class: _ }
1693   - { id: 7, class: fpr }
1694   - { id: 8, class: fpr }
1695   - { id: 9, class: fpr }
1696   - { id: 10, class: gpr }
1697   - { id: 11, class: fpr }
1698   - { id: 12, class: fpr }
1699   - { id: 13, class: gpr }
1700   - { id: 14, class: fpr }
1701   - { id: 15, class: fpr }
1702 machineFunctionInfo: {}
1703 body:             |
1704   bb.1 (%ir-block.0):
1705     liveins: $d0, $d1
1707     ; CHECK-LABEL: name: test_v2i16_ult
1708     ; CHECK: liveins: $d0, $d1
1709     ; CHECK-NEXT: {{  $}}
1710     ; CHECK-NEXT: [[COPY:%[0-9]+]]:fpr64 = COPY $d0
1711     ; CHECK-NEXT: [[COPY1:%[0-9]+]]:fpr64 = COPY $d1
1712     ; CHECK-NEXT: [[MOVID:%[0-9]+]]:fpr64 = MOVID 51
1713     ; CHECK-NEXT: [[ANDv8i8_:%[0-9]+]]:fpr64 = ANDv8i8 [[COPY]], [[MOVID]]
1714     ; CHECK-NEXT: [[MOVID1:%[0-9]+]]:fpr64 = MOVID 51
1715     ; CHECK-NEXT: [[ANDv8i8_1:%[0-9]+]]:fpr64 = ANDv8i8 [[COPY1]], [[MOVID1]]
1716     ; CHECK-NEXT: [[CMHIv2i32_:%[0-9]+]]:fpr64 = CMHIv2i32 [[ANDv8i8_1]], [[ANDv8i8_]]
1717     ; CHECK-NEXT: $d0 = COPY [[CMHIv2i32_]]
1718     ; CHECK-NEXT: RET_ReallyLR implicit $d0
1719     %2:fpr(<2 x s32>) = COPY $d0
1720     %3:fpr(<2 x s32>) = COPY $d1
1721     %13:gpr(s32) = G_CONSTANT i32 65535
1722     %14:fpr(<2 x s32>) = G_BUILD_VECTOR %13(s32), %13(s32)
1723     %15:fpr(<2 x s32>) = COPY %2(<2 x s32>)
1724     %7:fpr(<2 x s32>) = G_AND %15, %14
1725     %10:gpr(s32) = G_CONSTANT i32 65535
1726     %11:fpr(<2 x s32>) = G_BUILD_VECTOR %10(s32), %10(s32)
1727     %12:fpr(<2 x s32>) = COPY %3(<2 x s32>)
1728     %8:fpr(<2 x s32>) = G_AND %12, %11
1729     %9:fpr(<2 x s32>) = G_ICMP intpred(ult), %7(<2 x s32>), %8
1730     %5:fpr(<2 x s32>) = COPY %9(<2 x s32>)
1731     $d0 = COPY %5(<2 x s32>)
1732     RET_ReallyLR implicit $d0
1736 name:            test_v8i16_ult
1737 alignment:       4
1738 legalized:       true
1739 regBankSelected: true
1740 tracksRegLiveness: true
1741 registers:
1742   - { id: 0, class: fpr }
1743   - { id: 1, class: fpr }
1744   - { id: 2, class: _ }
1745   - { id: 3, class: fpr }
1746   - { id: 4, class: fpr }
1747 machineFunctionInfo: {}
1748 body:             |
1749   bb.1 (%ir-block.0):
1750     liveins: $q0, $q1
1752     ; CHECK-LABEL: name: test_v8i16_ult
1753     ; CHECK: liveins: $q0, $q1
1754     ; CHECK-NEXT: {{  $}}
1755     ; CHECK-NEXT: [[COPY:%[0-9]+]]:fpr128 = COPY $q0
1756     ; CHECK-NEXT: [[COPY1:%[0-9]+]]:fpr128 = COPY $q1
1757     ; CHECK-NEXT: [[CMHIv8i16_:%[0-9]+]]:fpr128 = CMHIv8i16 [[COPY1]], [[COPY]]
1758     ; CHECK-NEXT: [[XTNv8i8_:%[0-9]+]]:fpr64 = XTNv8i8 [[CMHIv8i16_]]
1759     ; CHECK-NEXT: $d0 = COPY [[XTNv8i8_]]
1760     ; CHECK-NEXT: RET_ReallyLR implicit $d0
1761     %0:fpr(<8 x s16>) = COPY $q0
1762     %1:fpr(<8 x s16>) = COPY $q1
1763     %4:fpr(<8 x s16>) = G_ICMP intpred(ult), %0(<8 x s16>), %1
1764     %3:fpr(<8 x s8>) = G_TRUNC %4(<8 x s16>)
1765     $d0 = COPY %3(<8 x s8>)
1766     RET_ReallyLR implicit $d0
1770 name:            test_v4i16_ult
1771 alignment:       4
1772 legalized:       true
1773 regBankSelected: true
1774 tracksRegLiveness: true
1775 registers:
1776   - { id: 0, class: fpr }
1777   - { id: 1, class: fpr }
1778   - { id: 2, class: _ }
1779   - { id: 3, class: fpr }
1780   - { id: 4, class: fpr }
1781 machineFunctionInfo: {}
1782 body:             |
1783   bb.1 (%ir-block.0):
1784     liveins: $d0, $d1
1786     ; CHECK-LABEL: name: test_v4i16_ult
1787     ; CHECK: liveins: $d0, $d1
1788     ; CHECK-NEXT: {{  $}}
1789     ; CHECK-NEXT: [[COPY:%[0-9]+]]:fpr64 = COPY $d0
1790     ; CHECK-NEXT: [[COPY1:%[0-9]+]]:fpr64 = COPY $d1
1791     ; CHECK-NEXT: [[CMHIv4i16_:%[0-9]+]]:fpr64 = CMHIv4i16 [[COPY1]], [[COPY]]
1792     ; CHECK-NEXT: $d0 = COPY [[CMHIv4i16_]]
1793     ; CHECK-NEXT: RET_ReallyLR implicit $d0
1794     %0:fpr(<4 x s16>) = COPY $d0
1795     %1:fpr(<4 x s16>) = COPY $d1
1796     %4:fpr(<4 x s16>) = G_ICMP intpred(ult), %0(<4 x s16>), %1
1797     %3:fpr(<4 x s16>) = COPY %4(<4 x s16>)
1798     $d0 = COPY %3(<4 x s16>)
1799     RET_ReallyLR implicit $d0
1803 name:            test_v16i8_ult
1804 alignment:       4
1805 legalized:       true
1806 regBankSelected: true
1807 tracksRegLiveness: true
1808 registers:
1809   - { id: 0, class: fpr }
1810   - { id: 1, class: fpr }
1811   - { id: 2, class: _ }
1812   - { id: 3, class: fpr }
1813   - { id: 4, class: fpr }
1814 machineFunctionInfo: {}
1815 body:             |
1816   bb.1 (%ir-block.0):
1817     liveins: $q0, $q1
1819     ; CHECK-LABEL: name: test_v16i8_ult
1820     ; CHECK: liveins: $q0, $q1
1821     ; CHECK-NEXT: {{  $}}
1822     ; CHECK-NEXT: [[COPY:%[0-9]+]]:fpr128 = COPY $q0
1823     ; CHECK-NEXT: [[COPY1:%[0-9]+]]:fpr128 = COPY $q1
1824     ; CHECK-NEXT: [[CMHIv16i8_:%[0-9]+]]:fpr128 = CMHIv16i8 [[COPY1]], [[COPY]]
1825     ; CHECK-NEXT: $q0 = COPY [[CMHIv16i8_]]
1826     ; CHECK-NEXT: RET_ReallyLR implicit $q0
1827     %0:fpr(<16 x s8>) = COPY $q0
1828     %1:fpr(<16 x s8>) = COPY $q1
1829     %4:fpr(<16 x s8>) = G_ICMP intpred(ult), %0(<16 x s8>), %1
1830     %3:fpr(<16 x s8>) = COPY %4(<16 x s8>)
1831     $q0 = COPY %3(<16 x s8>)
1832     RET_ReallyLR implicit $q0
1836 name:            test_v8i8_ult
1837 alignment:       4
1838 legalized:       true
1839 regBankSelected: true
1840 tracksRegLiveness: true
1841 registers:
1842   - { id: 0, class: fpr }
1843   - { id: 1, class: fpr }
1844   - { id: 2, class: _ }
1845   - { id: 3, class: fpr }
1846   - { id: 4, class: fpr }
1847 machineFunctionInfo: {}
1848 body:             |
1849   bb.1 (%ir-block.0):
1850     liveins: $d0, $d1
1852     ; CHECK-LABEL: name: test_v8i8_ult
1853     ; CHECK: liveins: $d0, $d1
1854     ; CHECK-NEXT: {{  $}}
1855     ; CHECK-NEXT: [[COPY:%[0-9]+]]:fpr64 = COPY $d0
1856     ; CHECK-NEXT: [[COPY1:%[0-9]+]]:fpr64 = COPY $d1
1857     ; CHECK-NEXT: [[CMHIv8i8_:%[0-9]+]]:fpr64 = CMHIv8i8 [[COPY1]], [[COPY]]
1858     ; CHECK-NEXT: $d0 = COPY [[CMHIv8i8_]]
1859     ; CHECK-NEXT: RET_ReallyLR implicit $d0
1860     %0:fpr(<8 x s8>) = COPY $d0
1861     %1:fpr(<8 x s8>) = COPY $d1
1862     %4:fpr(<8 x s8>) = G_ICMP intpred(ult), %0(<8 x s8>), %1
1863     %3:fpr(<8 x s8>) = COPY %4(<8 x s8>)
1864     $d0 = COPY %3(<8 x s8>)
1865     RET_ReallyLR implicit $d0
1869 name:            test_v2i64_ule
1870 alignment:       4
1871 legalized:       true
1872 regBankSelected: true
1873 tracksRegLiveness: true
1874 registers:
1875   - { id: 0, class: fpr }
1876   - { id: 1, class: fpr }
1877   - { id: 2, class: _ }
1878   - { id: 3, class: fpr }
1879   - { id: 4, class: fpr }
1880 machineFunctionInfo: {}
1881 body:             |
1882   bb.1 (%ir-block.0):
1883     liveins: $q0, $q1
1885     ; CHECK-LABEL: name: test_v2i64_ule
1886     ; CHECK: liveins: $q0, $q1
1887     ; CHECK-NEXT: {{  $}}
1888     ; CHECK-NEXT: [[COPY:%[0-9]+]]:fpr128 = COPY $q0
1889     ; CHECK-NEXT: [[COPY1:%[0-9]+]]:fpr128 = COPY $q1
1890     ; CHECK-NEXT: [[CMHSv2i64_:%[0-9]+]]:fpr128 = CMHSv2i64 [[COPY1]], [[COPY]]
1891     ; CHECK-NEXT: [[XTNv2i32_:%[0-9]+]]:fpr64 = XTNv2i32 [[CMHSv2i64_]]
1892     ; CHECK-NEXT: $d0 = COPY [[XTNv2i32_]]
1893     ; CHECK-NEXT: RET_ReallyLR implicit $d0
1894     %0:fpr(<2 x s64>) = COPY $q0
1895     %1:fpr(<2 x s64>) = COPY $q1
1896     %4:fpr(<2 x s64>) = G_ICMP intpred(ule), %0(<2 x s64>), %1
1897     %3:fpr(<2 x s32>) = G_TRUNC %4(<2 x s64>)
1898     $d0 = COPY %3(<2 x s32>)
1899     RET_ReallyLR implicit $d0
1903 name:            test_v4i32_ule
1904 alignment:       4
1905 legalized:       true
1906 regBankSelected: true
1907 tracksRegLiveness: true
1908 registers:
1909   - { id: 0, class: fpr }
1910   - { id: 1, class: fpr }
1911   - { id: 2, class: _ }
1912   - { id: 3, class: fpr }
1913   - { id: 4, class: fpr }
1914 machineFunctionInfo: {}
1915 body:             |
1916   bb.1 (%ir-block.0):
1917     liveins: $q0, $q1
1919     ; CHECK-LABEL: name: test_v4i32_ule
1920     ; CHECK: liveins: $q0, $q1
1921     ; CHECK-NEXT: {{  $}}
1922     ; CHECK-NEXT: [[COPY:%[0-9]+]]:fpr128 = COPY $q0
1923     ; CHECK-NEXT: [[COPY1:%[0-9]+]]:fpr128 = COPY $q1
1924     ; CHECK-NEXT: [[CMHSv4i32_:%[0-9]+]]:fpr128 = CMHSv4i32 [[COPY1]], [[COPY]]
1925     ; CHECK-NEXT: [[XTNv4i16_:%[0-9]+]]:fpr64 = XTNv4i16 [[CMHSv4i32_]]
1926     ; CHECK-NEXT: $d0 = COPY [[XTNv4i16_]]
1927     ; CHECK-NEXT: RET_ReallyLR implicit $d0
1928     %0:fpr(<4 x s32>) = COPY $q0
1929     %1:fpr(<4 x s32>) = COPY $q1
1930     %4:fpr(<4 x s32>) = G_ICMP intpred(ule), %0(<4 x s32>), %1
1931     %3:fpr(<4 x s16>) = G_TRUNC %4(<4 x s32>)
1932     $d0 = COPY %3(<4 x s16>)
1933     RET_ReallyLR implicit $d0
1937 name:            test_v2i32_ule
1938 alignment:       4
1939 legalized:       true
1940 regBankSelected: true
1941 tracksRegLiveness: true
1942 registers:
1943   - { id: 0, class: fpr }
1944   - { id: 1, class: fpr }
1945   - { id: 2, class: _ }
1946   - { id: 3, class: fpr }
1947   - { id: 4, class: fpr }
1948 machineFunctionInfo: {}
1949 body:             |
1950   bb.1 (%ir-block.0):
1951     liveins: $d0, $d1
1953     ; CHECK-LABEL: name: test_v2i32_ule
1954     ; CHECK: liveins: $d0, $d1
1955     ; CHECK-NEXT: {{  $}}
1956     ; CHECK-NEXT: [[COPY:%[0-9]+]]:fpr64 = COPY $d0
1957     ; CHECK-NEXT: [[COPY1:%[0-9]+]]:fpr64 = COPY $d1
1958     ; CHECK-NEXT: [[CMHSv2i32_:%[0-9]+]]:fpr64 = CMHSv2i32 [[COPY1]], [[COPY]]
1959     ; CHECK-NEXT: $d0 = COPY [[CMHSv2i32_]]
1960     ; CHECK-NEXT: RET_ReallyLR implicit $d0
1961     %0:fpr(<2 x s32>) = COPY $d0
1962     %1:fpr(<2 x s32>) = COPY $d1
1963     %4:fpr(<2 x s32>) = G_ICMP intpred(ule), %0(<2 x s32>), %1
1964     %3:fpr(<2 x s32>) = COPY %4(<2 x s32>)
1965     $d0 = COPY %3(<2 x s32>)
1966     RET_ReallyLR implicit $d0
1970 name:            test_v2i16_ule
1971 alignment:       4
1972 legalized:       true
1973 regBankSelected: true
1974 tracksRegLiveness: true
1975 registers:
1976   - { id: 0, class: _ }
1977   - { id: 1, class: _ }
1978   - { id: 2, class: fpr }
1979   - { id: 3, class: fpr }
1980   - { id: 4, class: _ }
1981   - { id: 5, class: fpr }
1982   - { id: 6, class: _ }
1983   - { id: 7, class: fpr }
1984   - { id: 8, class: fpr }
1985   - { id: 9, class: fpr }
1986   - { id: 10, class: gpr }
1987   - { id: 11, class: fpr }
1988   - { id: 12, class: fpr }
1989   - { id: 13, class: gpr }
1990   - { id: 14, class: fpr }
1991   - { id: 15, class: fpr }
1992 machineFunctionInfo: {}
1993 body:             |
1994   bb.1 (%ir-block.0):
1995     liveins: $d0, $d1
1997     ; CHECK-LABEL: name: test_v2i16_ule
1998     ; CHECK: liveins: $d0, $d1
1999     ; CHECK-NEXT: {{  $}}
2000     ; CHECK-NEXT: [[COPY:%[0-9]+]]:fpr64 = COPY $d0
2001     ; CHECK-NEXT: [[COPY1:%[0-9]+]]:fpr64 = COPY $d1
2002     ; CHECK-NEXT: [[MOVID:%[0-9]+]]:fpr64 = MOVID 51
2003     ; CHECK-NEXT: [[ANDv8i8_:%[0-9]+]]:fpr64 = ANDv8i8 [[COPY]], [[MOVID]]
2004     ; CHECK-NEXT: [[MOVID1:%[0-9]+]]:fpr64 = MOVID 51
2005     ; CHECK-NEXT: [[ANDv8i8_1:%[0-9]+]]:fpr64 = ANDv8i8 [[COPY1]], [[MOVID1]]
2006     ; CHECK-NEXT: [[CMHSv2i32_:%[0-9]+]]:fpr64 = CMHSv2i32 [[ANDv8i8_1]], [[ANDv8i8_]]
2007     ; CHECK-NEXT: $d0 = COPY [[CMHSv2i32_]]
2008     ; CHECK-NEXT: RET_ReallyLR implicit $d0
2009     %2:fpr(<2 x s32>) = COPY $d0
2010     %3:fpr(<2 x s32>) = COPY $d1
2011     %13:gpr(s32) = G_CONSTANT i32 65535
2012     %14:fpr(<2 x s32>) = G_BUILD_VECTOR %13(s32), %13(s32)
2013     %15:fpr(<2 x s32>) = COPY %2(<2 x s32>)
2014     %7:fpr(<2 x s32>) = G_AND %15, %14
2015     %10:gpr(s32) = G_CONSTANT i32 65535
2016     %11:fpr(<2 x s32>) = G_BUILD_VECTOR %10(s32), %10(s32)
2017     %12:fpr(<2 x s32>) = COPY %3(<2 x s32>)
2018     %8:fpr(<2 x s32>) = G_AND %12, %11
2019     %9:fpr(<2 x s32>) = G_ICMP intpred(ule), %7(<2 x s32>), %8
2020     %5:fpr(<2 x s32>) = COPY %9(<2 x s32>)
2021     $d0 = COPY %5(<2 x s32>)
2022     RET_ReallyLR implicit $d0
2026 name:            test_v8i16_ule
2027 alignment:       4
2028 legalized:       true
2029 regBankSelected: true
2030 tracksRegLiveness: true
2031 registers:
2032   - { id: 0, class: fpr }
2033   - { id: 1, class: fpr }
2034   - { id: 2, class: _ }
2035   - { id: 3, class: fpr }
2036   - { id: 4, class: fpr }
2037 machineFunctionInfo: {}
2038 body:             |
2039   bb.1 (%ir-block.0):
2040     liveins: $q0, $q1
2042     ; CHECK-LABEL: name: test_v8i16_ule
2043     ; CHECK: liveins: $q0, $q1
2044     ; CHECK-NEXT: {{  $}}
2045     ; CHECK-NEXT: [[COPY:%[0-9]+]]:fpr128 = COPY $q0
2046     ; CHECK-NEXT: [[COPY1:%[0-9]+]]:fpr128 = COPY $q1
2047     ; CHECK-NEXT: [[CMHSv8i16_:%[0-9]+]]:fpr128 = CMHSv8i16 [[COPY1]], [[COPY]]
2048     ; CHECK-NEXT: [[XTNv8i8_:%[0-9]+]]:fpr64 = XTNv8i8 [[CMHSv8i16_]]
2049     ; CHECK-NEXT: $d0 = COPY [[XTNv8i8_]]
2050     ; CHECK-NEXT: RET_ReallyLR implicit $d0
2051     %0:fpr(<8 x s16>) = COPY $q0
2052     %1:fpr(<8 x s16>) = COPY $q1
2053     %4:fpr(<8 x s16>) = G_ICMP intpred(ule), %0(<8 x s16>), %1
2054     %3:fpr(<8 x s8>) = G_TRUNC %4(<8 x s16>)
2055     $d0 = COPY %3(<8 x s8>)
2056     RET_ReallyLR implicit $d0
2060 name:            test_v4i16_ule
2061 alignment:       4
2062 legalized:       true
2063 regBankSelected: true
2064 tracksRegLiveness: true
2065 registers:
2066   - { id: 0, class: fpr }
2067   - { id: 1, class: fpr }
2068   - { id: 2, class: _ }
2069   - { id: 3, class: fpr }
2070   - { id: 4, class: fpr }
2071 machineFunctionInfo: {}
2072 body:             |
2073   bb.1 (%ir-block.0):
2074     liveins: $d0, $d1
2076     ; CHECK-LABEL: name: test_v4i16_ule
2077     ; CHECK: liveins: $d0, $d1
2078     ; CHECK-NEXT: {{  $}}
2079     ; CHECK-NEXT: [[COPY:%[0-9]+]]:fpr64 = COPY $d0
2080     ; CHECK-NEXT: [[COPY1:%[0-9]+]]:fpr64 = COPY $d1
2081     ; CHECK-NEXT: [[CMHSv4i16_:%[0-9]+]]:fpr64 = CMHSv4i16 [[COPY1]], [[COPY]]
2082     ; CHECK-NEXT: $d0 = COPY [[CMHSv4i16_]]
2083     ; CHECK-NEXT: RET_ReallyLR implicit $d0
2084     %0:fpr(<4 x s16>) = COPY $d0
2085     %1:fpr(<4 x s16>) = COPY $d1
2086     %4:fpr(<4 x s16>) = G_ICMP intpred(ule), %0(<4 x s16>), %1
2087     %3:fpr(<4 x s16>) = COPY %4(<4 x s16>)
2088     $d0 = COPY %3(<4 x s16>)
2089     RET_ReallyLR implicit $d0
2093 name:            test_v16i8_ule
2094 alignment:       4
2095 legalized:       true
2096 regBankSelected: true
2097 tracksRegLiveness: true
2098 registers:
2099   - { id: 0, class: fpr }
2100   - { id: 1, class: fpr }
2101   - { id: 2, class: _ }
2102   - { id: 3, class: fpr }
2103   - { id: 4, class: fpr }
2104 machineFunctionInfo: {}
2105 body:             |
2106   bb.1 (%ir-block.0):
2107     liveins: $q0, $q1
2109     ; CHECK-LABEL: name: test_v16i8_ule
2110     ; CHECK: liveins: $q0, $q1
2111     ; CHECK-NEXT: {{  $}}
2112     ; CHECK-NEXT: [[COPY:%[0-9]+]]:fpr128 = COPY $q0
2113     ; CHECK-NEXT: [[COPY1:%[0-9]+]]:fpr128 = COPY $q1
2114     ; CHECK-NEXT: [[CMHSv16i8_:%[0-9]+]]:fpr128 = CMHSv16i8 [[COPY1]], [[COPY]]
2115     ; CHECK-NEXT: $q0 = COPY [[CMHSv16i8_]]
2116     ; CHECK-NEXT: RET_ReallyLR implicit $q0
2117     %0:fpr(<16 x s8>) = COPY $q0
2118     %1:fpr(<16 x s8>) = COPY $q1
2119     %4:fpr(<16 x s8>) = G_ICMP intpred(ule), %0(<16 x s8>), %1
2120     %3:fpr(<16 x s8>) = COPY %4(<16 x s8>)
2121     $q0 = COPY %3(<16 x s8>)
2122     RET_ReallyLR implicit $q0
2126 name:            test_v8i8_ule
2127 alignment:       4
2128 legalized:       true
2129 regBankSelected: true
2130 tracksRegLiveness: true
2131 registers:
2132   - { id: 0, class: fpr }
2133   - { id: 1, class: fpr }
2134   - { id: 2, class: _ }
2135   - { id: 3, class: fpr }
2136   - { id: 4, class: fpr }
2137 machineFunctionInfo: {}
2138 body:             |
2139   bb.1 (%ir-block.0):
2140     liveins: $d0, $d1
2142     ; CHECK-LABEL: name: test_v8i8_ule
2143     ; CHECK: liveins: $d0, $d1
2144     ; CHECK-NEXT: {{  $}}
2145     ; CHECK-NEXT: [[COPY:%[0-9]+]]:fpr64 = COPY $d0
2146     ; CHECK-NEXT: [[COPY1:%[0-9]+]]:fpr64 = COPY $d1
2147     ; CHECK-NEXT: [[CMHSv8i8_:%[0-9]+]]:fpr64 = CMHSv8i8 [[COPY1]], [[COPY]]
2148     ; CHECK-NEXT: $d0 = COPY [[CMHSv8i8_]]
2149     ; CHECK-NEXT: RET_ReallyLR implicit $d0
2150     %0:fpr(<8 x s8>) = COPY $d0
2151     %1:fpr(<8 x s8>) = COPY $d1
2152     %4:fpr(<8 x s8>) = G_ICMP intpred(ule), %0(<8 x s8>), %1
2153     %3:fpr(<8 x s8>) = COPY %4(<8 x s8>)
2154     $d0 = COPY %3(<8 x s8>)
2155     RET_ReallyLR implicit $d0
2159 name:            test_v2i64_sgt
2160 alignment:       4
2161 legalized:       true
2162 regBankSelected: true
2163 tracksRegLiveness: true
2164 registers:
2165   - { id: 0, class: fpr }
2166   - { id: 1, class: fpr }
2167   - { id: 2, class: _ }
2168   - { id: 3, class: fpr }
2169   - { id: 4, class: fpr }
2170 machineFunctionInfo: {}
2171 body:             |
2172   bb.1 (%ir-block.0):
2173     liveins: $q0, $q1
2175     ; CHECK-LABEL: name: test_v2i64_sgt
2176     ; CHECK: liveins: $q0, $q1
2177     ; CHECK-NEXT: {{  $}}
2178     ; CHECK-NEXT: [[COPY:%[0-9]+]]:fpr128 = COPY $q0
2179     ; CHECK-NEXT: [[COPY1:%[0-9]+]]:fpr128 = COPY $q1
2180     ; CHECK-NEXT: [[CMGTv2i64_:%[0-9]+]]:fpr128 = CMGTv2i64 [[COPY]], [[COPY1]]
2181     ; CHECK-NEXT: [[XTNv2i32_:%[0-9]+]]:fpr64 = XTNv2i32 [[CMGTv2i64_]]
2182     ; CHECK-NEXT: $d0 = COPY [[XTNv2i32_]]
2183     ; CHECK-NEXT: RET_ReallyLR implicit $d0
2184     %0:fpr(<2 x s64>) = COPY $q0
2185     %1:fpr(<2 x s64>) = COPY $q1
2186     %4:fpr(<2 x s64>) = G_ICMP intpred(sgt), %0(<2 x s64>), %1
2187     %3:fpr(<2 x s32>) = G_TRUNC %4(<2 x s64>)
2188     $d0 = COPY %3(<2 x s32>)
2189     RET_ReallyLR implicit $d0
2193 name:            test_v4i32_sgt
2194 alignment:       4
2195 legalized:       true
2196 regBankSelected: true
2197 tracksRegLiveness: true
2198 registers:
2199   - { id: 0, class: fpr }
2200   - { id: 1, class: fpr }
2201   - { id: 2, class: _ }
2202   - { id: 3, class: fpr }
2203   - { id: 4, class: fpr }
2204 machineFunctionInfo: {}
2205 body:             |
2206   bb.1 (%ir-block.0):
2207     liveins: $q0, $q1
2209     ; CHECK-LABEL: name: test_v4i32_sgt
2210     ; CHECK: liveins: $q0, $q1
2211     ; CHECK-NEXT: {{  $}}
2212     ; CHECK-NEXT: [[COPY:%[0-9]+]]:fpr128 = COPY $q0
2213     ; CHECK-NEXT: [[COPY1:%[0-9]+]]:fpr128 = COPY $q1
2214     ; CHECK-NEXT: [[CMGTv4i32_:%[0-9]+]]:fpr128 = CMGTv4i32 [[COPY]], [[COPY1]]
2215     ; CHECK-NEXT: [[XTNv4i16_:%[0-9]+]]:fpr64 = XTNv4i16 [[CMGTv4i32_]]
2216     ; CHECK-NEXT: $d0 = COPY [[XTNv4i16_]]
2217     ; CHECK-NEXT: RET_ReallyLR implicit $d0
2218     %0:fpr(<4 x s32>) = COPY $q0
2219     %1:fpr(<4 x s32>) = COPY $q1
2220     %4:fpr(<4 x s32>) = G_ICMP intpred(sgt), %0(<4 x s32>), %1
2221     %3:fpr(<4 x s16>) = G_TRUNC %4(<4 x s32>)
2222     $d0 = COPY %3(<4 x s16>)
2223     RET_ReallyLR implicit $d0
2227 name:            test_v2i32_sgt
2228 alignment:       4
2229 legalized:       true
2230 regBankSelected: true
2231 tracksRegLiveness: true
2232 registers:
2233   - { id: 0, class: fpr }
2234   - { id: 1, class: fpr }
2235   - { id: 2, class: _ }
2236   - { id: 3, class: fpr }
2237   - { id: 4, class: fpr }
2238 machineFunctionInfo: {}
2239 body:             |
2240   bb.1 (%ir-block.0):
2241     liveins: $d0, $d1
2243     ; CHECK-LABEL: name: test_v2i32_sgt
2244     ; CHECK: liveins: $d0, $d1
2245     ; CHECK-NEXT: {{  $}}
2246     ; CHECK-NEXT: [[COPY:%[0-9]+]]:fpr64 = COPY $d0
2247     ; CHECK-NEXT: [[COPY1:%[0-9]+]]:fpr64 = COPY $d1
2248     ; CHECK-NEXT: [[CMGTv2i32_:%[0-9]+]]:fpr64 = CMGTv2i32 [[COPY]], [[COPY1]]
2249     ; CHECK-NEXT: $d0 = COPY [[CMGTv2i32_]]
2250     ; CHECK-NEXT: RET_ReallyLR implicit $d0
2251     %0:fpr(<2 x s32>) = COPY $d0
2252     %1:fpr(<2 x s32>) = COPY $d1
2253     %4:fpr(<2 x s32>) = G_ICMP intpred(sgt), %0(<2 x s32>), %1
2254     %3:fpr(<2 x s32>) = COPY %4(<2 x s32>)
2255     $d0 = COPY %3(<2 x s32>)
2256     RET_ReallyLR implicit $d0
2260 name:            test_v2i16_sgt
2261 alignment:       4
2262 legalized:       true
2263 regBankSelected: true
2264 tracksRegLiveness: true
2265 registers:
2266   - { id: 0, class: _ }
2267   - { id: 1, class: _ }
2268   - { id: 2, class: fpr }
2269   - { id: 3, class: fpr }
2270   - { id: 4, class: _ }
2271   - { id: 5, class: fpr }
2272   - { id: 6, class: _ }
2273   - { id: 7, class: fpr }
2274   - { id: 8, class: fpr }
2275   - { id: 9, class: fpr }
2276   - { id: 10, class: gpr }
2277   - { id: 11, class: fpr }
2278   - { id: 12, class: fpr }
2279   - { id: 13, class: fpr }
2280   - { id: 14, class: gpr }
2281   - { id: 15, class: fpr }
2282   - { id: 16, class: fpr }
2283   - { id: 17, class: fpr }
2284 machineFunctionInfo: {}
2285 body:             |
2286   bb.1 (%ir-block.0):
2287     liveins: $d0, $d1
2289     ; CHECK-LABEL: name: test_v2i16_sgt
2290     ; CHECK: liveins: $d0, $d1
2291     ; CHECK-NEXT: {{  $}}
2292     ; CHECK-NEXT: [[COPY:%[0-9]+]]:fpr64 = COPY $d0
2293     ; CHECK-NEXT: [[COPY1:%[0-9]+]]:fpr64 = COPY $d1
2294     ; CHECK-NEXT: [[MOVIv2i32_:%[0-9]+]]:fpr64 = MOVIv2i32 16, 0
2295     ; CHECK-NEXT: [[SHLv2i32_shift:%[0-9]+]]:fpr64 = SHLv2i32_shift [[COPY]], 16
2296     ; CHECK-NEXT: [[NEGv2i32_:%[0-9]+]]:fpr64 = NEGv2i32 [[MOVIv2i32_]]
2297     ; CHECK-NEXT: [[SSHLv2i32_:%[0-9]+]]:fpr64 = SSHLv2i32 [[SHLv2i32_shift]], [[NEGv2i32_]]
2298     ; CHECK-NEXT: [[MOVIv2i32_1:%[0-9]+]]:fpr64 = MOVIv2i32 16, 0
2299     ; CHECK-NEXT: [[SHLv2i32_shift1:%[0-9]+]]:fpr64 = SHLv2i32_shift [[COPY1]], 16
2300     ; CHECK-NEXT: [[NEGv2i32_1:%[0-9]+]]:fpr64 = NEGv2i32 [[MOVIv2i32_1]]
2301     ; CHECK-NEXT: [[SSHLv2i32_1:%[0-9]+]]:fpr64 = SSHLv2i32 [[SHLv2i32_shift1]], [[NEGv2i32_1]]
2302     ; CHECK-NEXT: [[CMGTv2i32_:%[0-9]+]]:fpr64 = CMGTv2i32 [[SSHLv2i32_]], [[SSHLv2i32_1]]
2303     ; CHECK-NEXT: $d0 = COPY [[CMGTv2i32_]]
2304     ; CHECK-NEXT: RET_ReallyLR implicit $d0
2305     %2:fpr(<2 x s32>) = COPY $d0
2306     %3:fpr(<2 x s32>) = COPY $d1
2307     %14:gpr(s32) = G_CONSTANT i32 16
2308     %15:fpr(<2 x s32>) = G_BUILD_VECTOR %14(s32), %14(s32)
2309     %16:fpr(<2 x s32>) = COPY %2(<2 x s32>)
2310     %17:fpr(<2 x s32>) = G_SHL %16, %15(<2 x s32>)
2311     %7:fpr(<2 x s32>) = G_ASHR %17, %15(<2 x s32>)
2312     %10:gpr(s32) = G_CONSTANT i32 16
2313     %11:fpr(<2 x s32>) = G_BUILD_VECTOR %10(s32), %10(s32)
2314     %12:fpr(<2 x s32>) = COPY %3(<2 x s32>)
2315     %13:fpr(<2 x s32>) = G_SHL %12, %11(<2 x s32>)
2316     %8:fpr(<2 x s32>) = G_ASHR %13, %11(<2 x s32>)
2317     %9:fpr(<2 x s32>) = G_ICMP intpred(sgt), %7(<2 x s32>), %8
2318     %5:fpr(<2 x s32>) = COPY %9(<2 x s32>)
2319     $d0 = COPY %5(<2 x s32>)
2320     RET_ReallyLR implicit $d0
2324 name:            test_v8i16_sgt
2325 alignment:       4
2326 legalized:       true
2327 regBankSelected: true
2328 tracksRegLiveness: true
2329 registers:
2330   - { id: 0, class: fpr }
2331   - { id: 1, class: fpr }
2332   - { id: 2, class: _ }
2333   - { id: 3, class: fpr }
2334   - { id: 4, class: fpr }
2335 machineFunctionInfo: {}
2336 body:             |
2337   bb.1 (%ir-block.0):
2338     liveins: $q0, $q1
2340     ; CHECK-LABEL: name: test_v8i16_sgt
2341     ; CHECK: liveins: $q0, $q1
2342     ; CHECK-NEXT: {{  $}}
2343     ; CHECK-NEXT: [[COPY:%[0-9]+]]:fpr128 = COPY $q0
2344     ; CHECK-NEXT: [[COPY1:%[0-9]+]]:fpr128 = COPY $q1
2345     ; CHECK-NEXT: [[CMGTv8i16_:%[0-9]+]]:fpr128 = CMGTv8i16 [[COPY]], [[COPY1]]
2346     ; CHECK-NEXT: [[XTNv8i8_:%[0-9]+]]:fpr64 = XTNv8i8 [[CMGTv8i16_]]
2347     ; CHECK-NEXT: $d0 = COPY [[XTNv8i8_]]
2348     ; CHECK-NEXT: RET_ReallyLR implicit $d0
2349     %0:fpr(<8 x s16>) = COPY $q0
2350     %1:fpr(<8 x s16>) = COPY $q1
2351     %4:fpr(<8 x s16>) = G_ICMP intpred(sgt), %0(<8 x s16>), %1
2352     %3:fpr(<8 x s8>) = G_TRUNC %4(<8 x s16>)
2353     $d0 = COPY %3(<8 x s8>)
2354     RET_ReallyLR implicit $d0
2358 name:            test_v4i16_sgt
2359 alignment:       4
2360 legalized:       true
2361 regBankSelected: true
2362 tracksRegLiveness: true
2363 registers:
2364   - { id: 0, class: fpr }
2365   - { id: 1, class: fpr }
2366   - { id: 2, class: _ }
2367   - { id: 3, class: fpr }
2368   - { id: 4, class: fpr }
2369 machineFunctionInfo: {}
2370 body:             |
2371   bb.1 (%ir-block.0):
2372     liveins: $d0, $d1
2374     ; CHECK-LABEL: name: test_v4i16_sgt
2375     ; CHECK: liveins: $d0, $d1
2376     ; CHECK-NEXT: {{  $}}
2377     ; CHECK-NEXT: [[COPY:%[0-9]+]]:fpr64 = COPY $d0
2378     ; CHECK-NEXT: [[COPY1:%[0-9]+]]:fpr64 = COPY $d1
2379     ; CHECK-NEXT: [[CMGTv4i16_:%[0-9]+]]:fpr64 = CMGTv4i16 [[COPY]], [[COPY1]]
2380     ; CHECK-NEXT: $d0 = COPY [[CMGTv4i16_]]
2381     ; CHECK-NEXT: RET_ReallyLR implicit $d0
2382     %0:fpr(<4 x s16>) = COPY $d0
2383     %1:fpr(<4 x s16>) = COPY $d1
2384     %4:fpr(<4 x s16>) = G_ICMP intpred(sgt), %0(<4 x s16>), %1
2385     %3:fpr(<4 x s16>) = COPY %4(<4 x s16>)
2386     $d0 = COPY %3(<4 x s16>)
2387     RET_ReallyLR implicit $d0
2391 name:            test_v16i8_sgt
2392 alignment:       4
2393 legalized:       true
2394 regBankSelected: true
2395 tracksRegLiveness: true
2396 registers:
2397   - { id: 0, class: fpr }
2398   - { id: 1, class: fpr }
2399   - { id: 2, class: _ }
2400   - { id: 3, class: fpr }
2401   - { id: 4, class: fpr }
2402 machineFunctionInfo: {}
2403 body:             |
2404   bb.1 (%ir-block.0):
2405     liveins: $q0, $q1
2407     ; CHECK-LABEL: name: test_v16i8_sgt
2408     ; CHECK: liveins: $q0, $q1
2409     ; CHECK-NEXT: {{  $}}
2410     ; CHECK-NEXT: [[COPY:%[0-9]+]]:fpr128 = COPY $q0
2411     ; CHECK-NEXT: [[COPY1:%[0-9]+]]:fpr128 = COPY $q1
2412     ; CHECK-NEXT: [[CMGTv16i8_:%[0-9]+]]:fpr128 = CMGTv16i8 [[COPY]], [[COPY1]]
2413     ; CHECK-NEXT: $q0 = COPY [[CMGTv16i8_]]
2414     ; CHECK-NEXT: RET_ReallyLR implicit $q0
2415     %0:fpr(<16 x s8>) = COPY $q0
2416     %1:fpr(<16 x s8>) = COPY $q1
2417     %4:fpr(<16 x s8>) = G_ICMP intpred(sgt), %0(<16 x s8>), %1
2418     %3:fpr(<16 x s8>) = COPY %4(<16 x s8>)
2419     $q0 = COPY %3(<16 x s8>)
2420     RET_ReallyLR implicit $q0
2424 name:            test_v8i8_sgt
2425 alignment:       4
2426 legalized:       true
2427 regBankSelected: true
2428 tracksRegLiveness: true
2429 registers:
2430   - { id: 0, class: fpr }
2431   - { id: 1, class: fpr }
2432   - { id: 2, class: _ }
2433   - { id: 3, class: fpr }
2434   - { id: 4, class: fpr }
2435 machineFunctionInfo: {}
2436 body:             |
2437   bb.1 (%ir-block.0):
2438     liveins: $d0, $d1
2440     ; CHECK-LABEL: name: test_v8i8_sgt
2441     ; CHECK: liveins: $d0, $d1
2442     ; CHECK-NEXT: {{  $}}
2443     ; CHECK-NEXT: [[COPY:%[0-9]+]]:fpr64 = COPY $d0
2444     ; CHECK-NEXT: [[COPY1:%[0-9]+]]:fpr64 = COPY $d1
2445     ; CHECK-NEXT: [[CMGTv8i8_:%[0-9]+]]:fpr64 = CMGTv8i8 [[COPY]], [[COPY1]]
2446     ; CHECK-NEXT: $d0 = COPY [[CMGTv8i8_]]
2447     ; CHECK-NEXT: RET_ReallyLR implicit $d0
2448     %0:fpr(<8 x s8>) = COPY $d0
2449     %1:fpr(<8 x s8>) = COPY $d1
2450     %4:fpr(<8 x s8>) = G_ICMP intpred(sgt), %0(<8 x s8>), %1
2451     %3:fpr(<8 x s8>) = COPY %4(<8 x s8>)
2452     $d0 = COPY %3(<8 x s8>)
2453     RET_ReallyLR implicit $d0
2457 name:            test_v2i64_sge
2458 alignment:       4
2459 legalized:       true
2460 regBankSelected: true
2461 tracksRegLiveness: true
2462 registers:
2463   - { id: 0, class: fpr }
2464   - { id: 1, class: fpr }
2465   - { id: 2, class: _ }
2466   - { id: 3, class: fpr }
2467   - { id: 4, class: fpr }
2468 machineFunctionInfo: {}
2469 body:             |
2470   bb.1 (%ir-block.0):
2471     liveins: $q0, $q1
2473     ; CHECK-LABEL: name: test_v2i64_sge
2474     ; CHECK: liveins: $q0, $q1
2475     ; CHECK-NEXT: {{  $}}
2476     ; CHECK-NEXT: [[COPY:%[0-9]+]]:fpr128 = COPY $q0
2477     ; CHECK-NEXT: [[COPY1:%[0-9]+]]:fpr128 = COPY $q1
2478     ; CHECK-NEXT: [[CMGEv2i64_:%[0-9]+]]:fpr128 = CMGEv2i64 [[COPY]], [[COPY1]]
2479     ; CHECK-NEXT: [[XTNv2i32_:%[0-9]+]]:fpr64 = XTNv2i32 [[CMGEv2i64_]]
2480     ; CHECK-NEXT: $d0 = COPY [[XTNv2i32_]]
2481     ; CHECK-NEXT: RET_ReallyLR implicit $d0
2482     %0:fpr(<2 x s64>) = COPY $q0
2483     %1:fpr(<2 x s64>) = COPY $q1
2484     %4:fpr(<2 x s64>) = G_ICMP intpred(sge), %0(<2 x s64>), %1
2485     %3:fpr(<2 x s32>) = G_TRUNC %4(<2 x s64>)
2486     $d0 = COPY %3(<2 x s32>)
2487     RET_ReallyLR implicit $d0
2491 name:            test_v4i32_sge
2492 alignment:       4
2493 legalized:       true
2494 regBankSelected: true
2495 tracksRegLiveness: true
2496 registers:
2497   - { id: 0, class: fpr }
2498   - { id: 1, class: fpr }
2499   - { id: 2, class: _ }
2500   - { id: 3, class: fpr }
2501   - { id: 4, class: fpr }
2502 machineFunctionInfo: {}
2503 body:             |
2504   bb.1 (%ir-block.0):
2505     liveins: $q0, $q1
2507     ; CHECK-LABEL: name: test_v4i32_sge
2508     ; CHECK: liveins: $q0, $q1
2509     ; CHECK-NEXT: {{  $}}
2510     ; CHECK-NEXT: [[COPY:%[0-9]+]]:fpr128 = COPY $q0
2511     ; CHECK-NEXT: [[COPY1:%[0-9]+]]:fpr128 = COPY $q1
2512     ; CHECK-NEXT: [[CMGEv4i32_:%[0-9]+]]:fpr128 = CMGEv4i32 [[COPY]], [[COPY1]]
2513     ; CHECK-NEXT: [[XTNv4i16_:%[0-9]+]]:fpr64 = XTNv4i16 [[CMGEv4i32_]]
2514     ; CHECK-NEXT: $d0 = COPY [[XTNv4i16_]]
2515     ; CHECK-NEXT: RET_ReallyLR implicit $d0
2516     %0:fpr(<4 x s32>) = COPY $q0
2517     %1:fpr(<4 x s32>) = COPY $q1
2518     %4:fpr(<4 x s32>) = G_ICMP intpred(sge), %0(<4 x s32>), %1
2519     %3:fpr(<4 x s16>) = G_TRUNC %4(<4 x s32>)
2520     $d0 = COPY %3(<4 x s16>)
2521     RET_ReallyLR implicit $d0
2525 name:            test_v2i32_sge
2526 alignment:       4
2527 legalized:       true
2528 regBankSelected: true
2529 tracksRegLiveness: true
2530 registers:
2531   - { id: 0, class: fpr }
2532   - { id: 1, class: fpr }
2533   - { id: 2, class: _ }
2534   - { id: 3, class: fpr }
2535   - { id: 4, class: fpr }
2536 machineFunctionInfo: {}
2537 body:             |
2538   bb.1 (%ir-block.0):
2539     liveins: $d0, $d1
2541     ; CHECK-LABEL: name: test_v2i32_sge
2542     ; CHECK: liveins: $d0, $d1
2543     ; CHECK-NEXT: {{  $}}
2544     ; CHECK-NEXT: [[COPY:%[0-9]+]]:fpr64 = COPY $d0
2545     ; CHECK-NEXT: [[COPY1:%[0-9]+]]:fpr64 = COPY $d1
2546     ; CHECK-NEXT: [[CMGEv2i32_:%[0-9]+]]:fpr64 = CMGEv2i32 [[COPY]], [[COPY1]]
2547     ; CHECK-NEXT: $d0 = COPY [[CMGEv2i32_]]
2548     ; CHECK-NEXT: RET_ReallyLR implicit $d0
2549     %0:fpr(<2 x s32>) = COPY $d0
2550     %1:fpr(<2 x s32>) = COPY $d1
2551     %4:fpr(<2 x s32>) = G_ICMP intpred(sge), %0(<2 x s32>), %1
2552     %3:fpr(<2 x s32>) = COPY %4(<2 x s32>)
2553     $d0 = COPY %3(<2 x s32>)
2554     RET_ReallyLR implicit $d0
2558 name:            test_v2i16_sge
2559 alignment:       4
2560 legalized:       true
2561 regBankSelected: true
2562 tracksRegLiveness: true
2563 registers:
2564   - { id: 0, class: _ }
2565   - { id: 1, class: _ }
2566   - { id: 2, class: fpr }
2567   - { id: 3, class: fpr }
2568   - { id: 4, class: _ }
2569   - { id: 5, class: fpr }
2570   - { id: 6, class: _ }
2571   - { id: 7, class: fpr }
2572   - { id: 8, class: fpr }
2573   - { id: 9, class: fpr }
2574   - { id: 10, class: gpr }
2575   - { id: 11, class: fpr }
2576   - { id: 12, class: fpr }
2577   - { id: 13, class: fpr }
2578   - { id: 14, class: gpr }
2579   - { id: 15, class: fpr }
2580   - { id: 16, class: fpr }
2581   - { id: 17, class: fpr }
2582 machineFunctionInfo: {}
2583 body:             |
2584   bb.1 (%ir-block.0):
2585     liveins: $d0, $d1
2587     ; CHECK-LABEL: name: test_v2i16_sge
2588     ; CHECK: liveins: $d0, $d1
2589     ; CHECK-NEXT: {{  $}}
2590     ; CHECK-NEXT: [[COPY:%[0-9]+]]:fpr64 = COPY $d0
2591     ; CHECK-NEXT: [[COPY1:%[0-9]+]]:fpr64 = COPY $d1
2592     ; CHECK-NEXT: [[MOVIv2i32_:%[0-9]+]]:fpr64 = MOVIv2i32 16, 0
2593     ; CHECK-NEXT: [[SHLv2i32_shift:%[0-9]+]]:fpr64 = SHLv2i32_shift [[COPY]], 16
2594     ; CHECK-NEXT: [[NEGv2i32_:%[0-9]+]]:fpr64 = NEGv2i32 [[MOVIv2i32_]]
2595     ; CHECK-NEXT: [[SSHLv2i32_:%[0-9]+]]:fpr64 = SSHLv2i32 [[SHLv2i32_shift]], [[NEGv2i32_]]
2596     ; CHECK-NEXT: [[MOVIv2i32_1:%[0-9]+]]:fpr64 = MOVIv2i32 16, 0
2597     ; CHECK-NEXT: [[SHLv2i32_shift1:%[0-9]+]]:fpr64 = SHLv2i32_shift [[COPY1]], 16
2598     ; CHECK-NEXT: [[NEGv2i32_1:%[0-9]+]]:fpr64 = NEGv2i32 [[MOVIv2i32_1]]
2599     ; CHECK-NEXT: [[SSHLv2i32_1:%[0-9]+]]:fpr64 = SSHLv2i32 [[SHLv2i32_shift1]], [[NEGv2i32_1]]
2600     ; CHECK-NEXT: [[CMGEv2i32_:%[0-9]+]]:fpr64 = CMGEv2i32 [[SSHLv2i32_]], [[SSHLv2i32_1]]
2601     ; CHECK-NEXT: $d0 = COPY [[CMGEv2i32_]]
2602     ; CHECK-NEXT: RET_ReallyLR implicit $d0
2603     %2:fpr(<2 x s32>) = COPY $d0
2604     %3:fpr(<2 x s32>) = COPY $d1
2605     %14:gpr(s32) = G_CONSTANT i32 16
2606     %15:fpr(<2 x s32>) = G_BUILD_VECTOR %14(s32), %14(s32)
2607     %16:fpr(<2 x s32>) = COPY %2(<2 x s32>)
2608     %17:fpr(<2 x s32>) = G_SHL %16, %15(<2 x s32>)
2609     %7:fpr(<2 x s32>) = G_ASHR %17, %15(<2 x s32>)
2610     %10:gpr(s32) = G_CONSTANT i32 16
2611     %11:fpr(<2 x s32>) = G_BUILD_VECTOR %10(s32), %10(s32)
2612     %12:fpr(<2 x s32>) = COPY %3(<2 x s32>)
2613     %13:fpr(<2 x s32>) = G_SHL %12, %11(<2 x s32>)
2614     %8:fpr(<2 x s32>) = G_ASHR %13, %11(<2 x s32>)
2615     %9:fpr(<2 x s32>) = G_ICMP intpred(sge), %7(<2 x s32>), %8
2616     %5:fpr(<2 x s32>) = COPY %9(<2 x s32>)
2617     $d0 = COPY %5(<2 x s32>)
2618     RET_ReallyLR implicit $d0
2622 name:            test_v8i16_sge
2623 alignment:       4
2624 legalized:       true
2625 regBankSelected: true
2626 tracksRegLiveness: true
2627 registers:
2628   - { id: 0, class: fpr }
2629   - { id: 1, class: fpr }
2630   - { id: 2, class: _ }
2631   - { id: 3, class: fpr }
2632   - { id: 4, class: fpr }
2633 machineFunctionInfo: {}
2634 body:             |
2635   bb.1 (%ir-block.0):
2636     liveins: $q0, $q1
2638     ; CHECK-LABEL: name: test_v8i16_sge
2639     ; CHECK: liveins: $q0, $q1
2640     ; CHECK-NEXT: {{  $}}
2641     ; CHECK-NEXT: [[COPY:%[0-9]+]]:fpr128 = COPY $q0
2642     ; CHECK-NEXT: [[COPY1:%[0-9]+]]:fpr128 = COPY $q1
2643     ; CHECK-NEXT: [[CMGEv8i16_:%[0-9]+]]:fpr128 = CMGEv8i16 [[COPY]], [[COPY1]]
2644     ; CHECK-NEXT: [[XTNv8i8_:%[0-9]+]]:fpr64 = XTNv8i8 [[CMGEv8i16_]]
2645     ; CHECK-NEXT: $d0 = COPY [[XTNv8i8_]]
2646     ; CHECK-NEXT: RET_ReallyLR implicit $d0
2647     %0:fpr(<8 x s16>) = COPY $q0
2648     %1:fpr(<8 x s16>) = COPY $q1
2649     %4:fpr(<8 x s16>) = G_ICMP intpred(sge), %0(<8 x s16>), %1
2650     %3:fpr(<8 x s8>) = G_TRUNC %4(<8 x s16>)
2651     $d0 = COPY %3(<8 x s8>)
2652     RET_ReallyLR implicit $d0
2656 name:            test_v4i16_sge
2657 alignment:       4
2658 legalized:       true
2659 regBankSelected: true
2660 tracksRegLiveness: true
2661 registers:
2662   - { id: 0, class: fpr }
2663   - { id: 1, class: fpr }
2664   - { id: 2, class: _ }
2665   - { id: 3, class: fpr }
2666   - { id: 4, class: fpr }
2667 machineFunctionInfo: {}
2668 body:             |
2669   bb.1 (%ir-block.0):
2670     liveins: $d0, $d1
2672     ; CHECK-LABEL: name: test_v4i16_sge
2673     ; CHECK: liveins: $d0, $d1
2674     ; CHECK-NEXT: {{  $}}
2675     ; CHECK-NEXT: [[COPY:%[0-9]+]]:fpr64 = COPY $d0
2676     ; CHECK-NEXT: [[COPY1:%[0-9]+]]:fpr64 = COPY $d1
2677     ; CHECK-NEXT: [[CMGEv4i16_:%[0-9]+]]:fpr64 = CMGEv4i16 [[COPY]], [[COPY1]]
2678     ; CHECK-NEXT: $d0 = COPY [[CMGEv4i16_]]
2679     ; CHECK-NEXT: RET_ReallyLR implicit $d0
2680     %0:fpr(<4 x s16>) = COPY $d0
2681     %1:fpr(<4 x s16>) = COPY $d1
2682     %4:fpr(<4 x s16>) = G_ICMP intpred(sge), %0(<4 x s16>), %1
2683     %3:fpr(<4 x s16>) = COPY %4(<4 x s16>)
2684     $d0 = COPY %3(<4 x s16>)
2685     RET_ReallyLR implicit $d0
2689 name:            test_v16i8_sge
2690 alignment:       4
2691 legalized:       true
2692 regBankSelected: true
2693 tracksRegLiveness: true
2694 registers:
2695   - { id: 0, class: fpr }
2696   - { id: 1, class: fpr }
2697   - { id: 2, class: _ }
2698   - { id: 3, class: fpr }
2699   - { id: 4, class: fpr }
2700 machineFunctionInfo: {}
2701 body:             |
2702   bb.1 (%ir-block.0):
2703     liveins: $q0, $q1
2705     ; CHECK-LABEL: name: test_v16i8_sge
2706     ; CHECK: liveins: $q0, $q1
2707     ; CHECK-NEXT: {{  $}}
2708     ; CHECK-NEXT: [[COPY:%[0-9]+]]:fpr128 = COPY $q0
2709     ; CHECK-NEXT: [[COPY1:%[0-9]+]]:fpr128 = COPY $q1
2710     ; CHECK-NEXT: [[CMGEv16i8_:%[0-9]+]]:fpr128 = CMGEv16i8 [[COPY]], [[COPY1]]
2711     ; CHECK-NEXT: $q0 = COPY [[CMGEv16i8_]]
2712     ; CHECK-NEXT: RET_ReallyLR implicit $q0
2713     %0:fpr(<16 x s8>) = COPY $q0
2714     %1:fpr(<16 x s8>) = COPY $q1
2715     %4:fpr(<16 x s8>) = G_ICMP intpred(sge), %0(<16 x s8>), %1
2716     %3:fpr(<16 x s8>) = COPY %4(<16 x s8>)
2717     $q0 = COPY %3(<16 x s8>)
2718     RET_ReallyLR implicit $q0
2722 name:            test_v8i8_sge
2723 alignment:       4
2724 legalized:       true
2725 regBankSelected: true
2726 tracksRegLiveness: true
2727 registers:
2728   - { id: 0, class: fpr }
2729   - { id: 1, class: fpr }
2730   - { id: 2, class: _ }
2731   - { id: 3, class: fpr }
2732   - { id: 4, class: fpr }
2733 machineFunctionInfo: {}
2734 body:             |
2735   bb.1 (%ir-block.0):
2736     liveins: $d0, $d1
2738     ; CHECK-LABEL: name: test_v8i8_sge
2739     ; CHECK: liveins: $d0, $d1
2740     ; CHECK-NEXT: {{  $}}
2741     ; CHECK-NEXT: [[COPY:%[0-9]+]]:fpr64 = COPY $d0
2742     ; CHECK-NEXT: [[COPY1:%[0-9]+]]:fpr64 = COPY $d1
2743     ; CHECK-NEXT: [[CMGEv8i8_:%[0-9]+]]:fpr64 = CMGEv8i8 [[COPY]], [[COPY1]]
2744     ; CHECK-NEXT: $d0 = COPY [[CMGEv8i8_]]
2745     ; CHECK-NEXT: RET_ReallyLR implicit $d0
2746     %0:fpr(<8 x s8>) = COPY $d0
2747     %1:fpr(<8 x s8>) = COPY $d1
2748     %4:fpr(<8 x s8>) = G_ICMP intpred(sge), %0(<8 x s8>), %1
2749     %3:fpr(<8 x s8>) = COPY %4(<8 x s8>)
2750     $d0 = COPY %3(<8 x s8>)
2751     RET_ReallyLR implicit $d0
2755 name:            test_v2i64_slt
2756 alignment:       4
2757 legalized:       true
2758 regBankSelected: true
2759 tracksRegLiveness: true
2760 registers:
2761   - { id: 0, class: fpr }
2762   - { id: 1, class: fpr }
2763   - { id: 2, class: _ }
2764   - { id: 3, class: fpr }
2765   - { id: 4, class: fpr }
2766 machineFunctionInfo: {}
2767 body:             |
2768   bb.1 (%ir-block.0):
2769     liveins: $q0, $q1
2771     ; CHECK-LABEL: name: test_v2i64_slt
2772     ; CHECK: liveins: $q0, $q1
2773     ; CHECK-NEXT: {{  $}}
2774     ; CHECK-NEXT: [[COPY:%[0-9]+]]:fpr128 = COPY $q0
2775     ; CHECK-NEXT: [[COPY1:%[0-9]+]]:fpr128 = COPY $q1
2776     ; CHECK-NEXT: [[CMGTv2i64_:%[0-9]+]]:fpr128 = CMGTv2i64 [[COPY1]], [[COPY]]
2777     ; CHECK-NEXT: [[XTNv2i32_:%[0-9]+]]:fpr64 = XTNv2i32 [[CMGTv2i64_]]
2778     ; CHECK-NEXT: $d0 = COPY [[XTNv2i32_]]
2779     ; CHECK-NEXT: RET_ReallyLR implicit $d0
2780     %0:fpr(<2 x s64>) = COPY $q0
2781     %1:fpr(<2 x s64>) = COPY $q1
2782     %4:fpr(<2 x s64>) = G_ICMP intpred(slt), %0(<2 x s64>), %1
2783     %3:fpr(<2 x s32>) = G_TRUNC %4(<2 x s64>)
2784     $d0 = COPY %3(<2 x s32>)
2785     RET_ReallyLR implicit $d0
2789 name:            test_v4i32_slt
2790 alignment:       4
2791 legalized:       true
2792 regBankSelected: true
2793 tracksRegLiveness: true
2794 registers:
2795   - { id: 0, class: fpr }
2796   - { id: 1, class: fpr }
2797   - { id: 2, class: _ }
2798   - { id: 3, class: fpr }
2799   - { id: 4, class: fpr }
2800 machineFunctionInfo: {}
2801 body:             |
2802   bb.1 (%ir-block.0):
2803     liveins: $q0, $q1
2805     ; CHECK-LABEL: name: test_v4i32_slt
2806     ; CHECK: liveins: $q0, $q1
2807     ; CHECK-NEXT: {{  $}}
2808     ; CHECK-NEXT: [[COPY:%[0-9]+]]:fpr128 = COPY $q0
2809     ; CHECK-NEXT: [[COPY1:%[0-9]+]]:fpr128 = COPY $q1
2810     ; CHECK-NEXT: [[CMGTv4i32_:%[0-9]+]]:fpr128 = CMGTv4i32 [[COPY1]], [[COPY]]
2811     ; CHECK-NEXT: [[XTNv4i16_:%[0-9]+]]:fpr64 = XTNv4i16 [[CMGTv4i32_]]
2812     ; CHECK-NEXT: $d0 = COPY [[XTNv4i16_]]
2813     ; CHECK-NEXT: RET_ReallyLR implicit $d0
2814     %0:fpr(<4 x s32>) = COPY $q0
2815     %1:fpr(<4 x s32>) = COPY $q1
2816     %4:fpr(<4 x s32>) = G_ICMP intpred(slt), %0(<4 x s32>), %1
2817     %3:fpr(<4 x s16>) = G_TRUNC %4(<4 x s32>)
2818     $d0 = COPY %3(<4 x s16>)
2819     RET_ReallyLR implicit $d0
2823 name:            test_v2i32_slt
2824 alignment:       4
2825 legalized:       true
2826 regBankSelected: true
2827 tracksRegLiveness: true
2828 registers:
2829   - { id: 0, class: fpr }
2830   - { id: 1, class: fpr }
2831   - { id: 2, class: _ }
2832   - { id: 3, class: fpr }
2833   - { id: 4, class: fpr }
2834 machineFunctionInfo: {}
2835 body:             |
2836   bb.1 (%ir-block.0):
2837     liveins: $d0, $d1
2839     ; CHECK-LABEL: name: test_v2i32_slt
2840     ; CHECK: liveins: $d0, $d1
2841     ; CHECK-NEXT: {{  $}}
2842     ; CHECK-NEXT: [[COPY:%[0-9]+]]:fpr64 = COPY $d0
2843     ; CHECK-NEXT: [[COPY1:%[0-9]+]]:fpr64 = COPY $d1
2844     ; CHECK-NEXT: [[CMGTv2i32_:%[0-9]+]]:fpr64 = CMGTv2i32 [[COPY1]], [[COPY]]
2845     ; CHECK-NEXT: $d0 = COPY [[CMGTv2i32_]]
2846     ; CHECK-NEXT: RET_ReallyLR implicit $d0
2847     %0:fpr(<2 x s32>) = COPY $d0
2848     %1:fpr(<2 x s32>) = COPY $d1
2849     %4:fpr(<2 x s32>) = G_ICMP intpred(slt), %0(<2 x s32>), %1
2850     %3:fpr(<2 x s32>) = COPY %4(<2 x s32>)
2851     $d0 = COPY %3(<2 x s32>)
2852     RET_ReallyLR implicit $d0
2856 name:            test_v2i16_slt
2857 alignment:       4
2858 legalized:       true
2859 regBankSelected: true
2860 tracksRegLiveness: true
2861 registers:
2862   - { id: 0, class: _ }
2863   - { id: 1, class: _ }
2864   - { id: 2, class: fpr }
2865   - { id: 3, class: fpr }
2866   - { id: 4, class: _ }
2867   - { id: 5, class: fpr }
2868   - { id: 6, class: _ }
2869   - { id: 7, class: fpr }
2870   - { id: 8, class: fpr }
2871   - { id: 9, class: fpr }
2872   - { id: 10, class: gpr }
2873   - { id: 11, class: fpr }
2874   - { id: 12, class: fpr }
2875   - { id: 13, class: fpr }
2876   - { id: 14, class: gpr }
2877   - { id: 15, class: fpr }
2878   - { id: 16, class: fpr }
2879   - { id: 17, class: fpr }
2880 machineFunctionInfo: {}
2881 body:             |
2882   bb.1 (%ir-block.0):
2883     liveins: $d0, $d1
2885     ; CHECK-LABEL: name: test_v2i16_slt
2886     ; CHECK: liveins: $d0, $d1
2887     ; CHECK-NEXT: {{  $}}
2888     ; CHECK-NEXT: [[COPY:%[0-9]+]]:fpr64 = COPY $d0
2889     ; CHECK-NEXT: [[COPY1:%[0-9]+]]:fpr64 = COPY $d1
2890     ; CHECK-NEXT: [[MOVIv2i32_:%[0-9]+]]:fpr64 = MOVIv2i32 16, 0
2891     ; CHECK-NEXT: [[SHLv2i32_shift:%[0-9]+]]:fpr64 = SHLv2i32_shift [[COPY]], 16
2892     ; CHECK-NEXT: [[NEGv2i32_:%[0-9]+]]:fpr64 = NEGv2i32 [[MOVIv2i32_]]
2893     ; CHECK-NEXT: [[SSHLv2i32_:%[0-9]+]]:fpr64 = SSHLv2i32 [[SHLv2i32_shift]], [[NEGv2i32_]]
2894     ; CHECK-NEXT: [[MOVIv2i32_1:%[0-9]+]]:fpr64 = MOVIv2i32 16, 0
2895     ; CHECK-NEXT: [[SHLv2i32_shift1:%[0-9]+]]:fpr64 = SHLv2i32_shift [[COPY1]], 16
2896     ; CHECK-NEXT: [[NEGv2i32_1:%[0-9]+]]:fpr64 = NEGv2i32 [[MOVIv2i32_1]]
2897     ; CHECK-NEXT: [[SSHLv2i32_1:%[0-9]+]]:fpr64 = SSHLv2i32 [[SHLv2i32_shift1]], [[NEGv2i32_1]]
2898     ; CHECK-NEXT: [[CMGTv2i32_:%[0-9]+]]:fpr64 = CMGTv2i32 [[SSHLv2i32_1]], [[SSHLv2i32_]]
2899     ; CHECK-NEXT: $d0 = COPY [[CMGTv2i32_]]
2900     ; CHECK-NEXT: RET_ReallyLR implicit $d0
2901     %2:fpr(<2 x s32>) = COPY $d0
2902     %3:fpr(<2 x s32>) = COPY $d1
2903     %14:gpr(s32) = G_CONSTANT i32 16
2904     %15:fpr(<2 x s32>) = G_BUILD_VECTOR %14(s32), %14(s32)
2905     %16:fpr(<2 x s32>) = COPY %2(<2 x s32>)
2906     %17:fpr(<2 x s32>) = G_SHL %16, %15(<2 x s32>)
2907     %7:fpr(<2 x s32>) = G_ASHR %17, %15(<2 x s32>)
2908     %10:gpr(s32) = G_CONSTANT i32 16
2909     %11:fpr(<2 x s32>) = G_BUILD_VECTOR %10(s32), %10(s32)
2910     %12:fpr(<2 x s32>) = COPY %3(<2 x s32>)
2911     %13:fpr(<2 x s32>) = G_SHL %12, %11(<2 x s32>)
2912     %8:fpr(<2 x s32>) = G_ASHR %13, %11(<2 x s32>)
2913     %9:fpr(<2 x s32>) = G_ICMP intpred(slt), %7(<2 x s32>), %8
2914     %5:fpr(<2 x s32>) = COPY %9(<2 x s32>)
2915     $d0 = COPY %5(<2 x s32>)
2916     RET_ReallyLR implicit $d0
2920 name:            test_v8i16_slt
2921 alignment:       4
2922 legalized:       true
2923 regBankSelected: true
2924 tracksRegLiveness: true
2925 registers:
2926   - { id: 0, class: fpr }
2927   - { id: 1, class: fpr }
2928   - { id: 2, class: _ }
2929   - { id: 3, class: fpr }
2930   - { id: 4, class: fpr }
2931 machineFunctionInfo: {}
2932 body:             |
2933   bb.1 (%ir-block.0):
2934     liveins: $q0, $q1
2936     ; CHECK-LABEL: name: test_v8i16_slt
2937     ; CHECK: liveins: $q0, $q1
2938     ; CHECK-NEXT: {{  $}}
2939     ; CHECK-NEXT: [[COPY:%[0-9]+]]:fpr128 = COPY $q0
2940     ; CHECK-NEXT: [[COPY1:%[0-9]+]]:fpr128 = COPY $q1
2941     ; CHECK-NEXT: [[CMGTv8i16_:%[0-9]+]]:fpr128 = CMGTv8i16 [[COPY1]], [[COPY]]
2942     ; CHECK-NEXT: [[XTNv8i8_:%[0-9]+]]:fpr64 = XTNv8i8 [[CMGTv8i16_]]
2943     ; CHECK-NEXT: $d0 = COPY [[XTNv8i8_]]
2944     ; CHECK-NEXT: RET_ReallyLR implicit $d0
2945     %0:fpr(<8 x s16>) = COPY $q0
2946     %1:fpr(<8 x s16>) = COPY $q1
2947     %4:fpr(<8 x s16>) = G_ICMP intpred(slt), %0(<8 x s16>), %1
2948     %3:fpr(<8 x s8>) = G_TRUNC %4(<8 x s16>)
2949     $d0 = COPY %3(<8 x s8>)
2950     RET_ReallyLR implicit $d0
2954 name:            test_v4i16_slt
2955 alignment:       4
2956 legalized:       true
2957 regBankSelected: true
2958 tracksRegLiveness: true
2959 registers:
2960   - { id: 0, class: fpr }
2961   - { id: 1, class: fpr }
2962   - { id: 2, class: _ }
2963   - { id: 3, class: fpr }
2964   - { id: 4, class: fpr }
2965 machineFunctionInfo: {}
2966 body:             |
2967   bb.1 (%ir-block.0):
2968     liveins: $d0, $d1
2970     ; CHECK-LABEL: name: test_v4i16_slt
2971     ; CHECK: liveins: $d0, $d1
2972     ; CHECK-NEXT: {{  $}}
2973     ; CHECK-NEXT: [[COPY:%[0-9]+]]:fpr64 = COPY $d0
2974     ; CHECK-NEXT: [[COPY1:%[0-9]+]]:fpr64 = COPY $d1
2975     ; CHECK-NEXT: [[CMGTv4i16_:%[0-9]+]]:fpr64 = CMGTv4i16 [[COPY1]], [[COPY]]
2976     ; CHECK-NEXT: $d0 = COPY [[CMGTv4i16_]]
2977     ; CHECK-NEXT: RET_ReallyLR implicit $d0
2978     %0:fpr(<4 x s16>) = COPY $d0
2979     %1:fpr(<4 x s16>) = COPY $d1
2980     %4:fpr(<4 x s16>) = G_ICMP intpred(slt), %0(<4 x s16>), %1
2981     %3:fpr(<4 x s16>) = COPY %4(<4 x s16>)
2982     $d0 = COPY %3(<4 x s16>)
2983     RET_ReallyLR implicit $d0
2987 name:            test_v16i8_slt
2988 alignment:       4
2989 legalized:       true
2990 regBankSelected: true
2991 tracksRegLiveness: true
2992 registers:
2993   - { id: 0, class: fpr }
2994   - { id: 1, class: fpr }
2995   - { id: 2, class: _ }
2996   - { id: 3, class: fpr }
2997   - { id: 4, class: fpr }
2998 machineFunctionInfo: {}
2999 body:             |
3000   bb.1 (%ir-block.0):
3001     liveins: $q0, $q1
3003     ; CHECK-LABEL: name: test_v16i8_slt
3004     ; CHECK: liveins: $q0, $q1
3005     ; CHECK-NEXT: {{  $}}
3006     ; CHECK-NEXT: [[COPY:%[0-9]+]]:fpr128 = COPY $q0
3007     ; CHECK-NEXT: [[COPY1:%[0-9]+]]:fpr128 = COPY $q1
3008     ; CHECK-NEXT: [[CMGTv16i8_:%[0-9]+]]:fpr128 = CMGTv16i8 [[COPY1]], [[COPY]]
3009     ; CHECK-NEXT: $q0 = COPY [[CMGTv16i8_]]
3010     ; CHECK-NEXT: RET_ReallyLR implicit $q0
3011     %0:fpr(<16 x s8>) = COPY $q0
3012     %1:fpr(<16 x s8>) = COPY $q1
3013     %4:fpr(<16 x s8>) = G_ICMP intpred(slt), %0(<16 x s8>), %1
3014     %3:fpr(<16 x s8>) = COPY %4(<16 x s8>)
3015     $q0 = COPY %3(<16 x s8>)
3016     RET_ReallyLR implicit $q0
3020 name:            test_v8i8_slt
3021 alignment:       4
3022 legalized:       true
3023 regBankSelected: true
3024 tracksRegLiveness: true
3025 registers:
3026   - { id: 0, class: fpr }
3027   - { id: 1, class: fpr }
3028   - { id: 2, class: _ }
3029   - { id: 3, class: fpr }
3030   - { id: 4, class: fpr }
3031 machineFunctionInfo: {}
3032 body:             |
3033   bb.1 (%ir-block.0):
3034     liveins: $d0, $d1
3036     ; CHECK-LABEL: name: test_v8i8_slt
3037     ; CHECK: liveins: $d0, $d1
3038     ; CHECK-NEXT: {{  $}}
3039     ; CHECK-NEXT: [[COPY:%[0-9]+]]:fpr64 = COPY $d0
3040     ; CHECK-NEXT: [[COPY1:%[0-9]+]]:fpr64 = COPY $d1
3041     ; CHECK-NEXT: [[CMGTv8i8_:%[0-9]+]]:fpr64 = CMGTv8i8 [[COPY1]], [[COPY]]
3042     ; CHECK-NEXT: $d0 = COPY [[CMGTv8i8_]]
3043     ; CHECK-NEXT: RET_ReallyLR implicit $d0
3044     %0:fpr(<8 x s8>) = COPY $d0
3045     %1:fpr(<8 x s8>) = COPY $d1
3046     %4:fpr(<8 x s8>) = G_ICMP intpred(slt), %0(<8 x s8>), %1
3047     %3:fpr(<8 x s8>) = COPY %4(<8 x s8>)
3048     $d0 = COPY %3(<8 x s8>)
3049     RET_ReallyLR implicit $d0
3053 name:            test_v2i64_sle
3054 alignment:       4
3055 legalized:       true
3056 regBankSelected: true
3057 tracksRegLiveness: true
3058 registers:
3059   - { id: 0, class: fpr }
3060   - { id: 1, class: fpr }
3061   - { id: 2, class: _ }
3062   - { id: 3, class: fpr }
3063   - { id: 4, class: fpr }
3064 machineFunctionInfo: {}
3065 body:             |
3066   bb.1 (%ir-block.0):
3067     liveins: $q0, $q1
3069     ; CHECK-LABEL: name: test_v2i64_sle
3070     ; CHECK: liveins: $q0, $q1
3071     ; CHECK-NEXT: {{  $}}
3072     ; CHECK-NEXT: [[COPY:%[0-9]+]]:fpr128 = COPY $q0
3073     ; CHECK-NEXT: [[COPY1:%[0-9]+]]:fpr128 = COPY $q1
3074     ; CHECK-NEXT: [[CMGEv2i64_:%[0-9]+]]:fpr128 = CMGEv2i64 [[COPY1]], [[COPY]]
3075     ; CHECK-NEXT: [[XTNv2i32_:%[0-9]+]]:fpr64 = XTNv2i32 [[CMGEv2i64_]]
3076     ; CHECK-NEXT: $d0 = COPY [[XTNv2i32_]]
3077     ; CHECK-NEXT: RET_ReallyLR implicit $d0
3078     %0:fpr(<2 x s64>) = COPY $q0
3079     %1:fpr(<2 x s64>) = COPY $q1
3080     %4:fpr(<2 x s64>) = G_ICMP intpred(sle), %0(<2 x s64>), %1
3081     %3:fpr(<2 x s32>) = G_TRUNC %4(<2 x s64>)
3082     $d0 = COPY %3(<2 x s32>)
3083     RET_ReallyLR implicit $d0
3087 name:            test_v4i32_sle
3088 alignment:       4
3089 legalized:       true
3090 regBankSelected: true
3091 tracksRegLiveness: true
3092 registers:
3093   - { id: 0, class: fpr }
3094   - { id: 1, class: fpr }
3095   - { id: 2, class: _ }
3096   - { id: 3, class: fpr }
3097   - { id: 4, class: fpr }
3098 machineFunctionInfo: {}
3099 body:             |
3100   bb.1 (%ir-block.0):
3101     liveins: $q0, $q1
3103     ; CHECK-LABEL: name: test_v4i32_sle
3104     ; CHECK: liveins: $q0, $q1
3105     ; CHECK-NEXT: {{  $}}
3106     ; CHECK-NEXT: [[COPY:%[0-9]+]]:fpr128 = COPY $q0
3107     ; CHECK-NEXT: [[COPY1:%[0-9]+]]:fpr128 = COPY $q1
3108     ; CHECK-NEXT: [[CMGEv4i32_:%[0-9]+]]:fpr128 = CMGEv4i32 [[COPY1]], [[COPY]]
3109     ; CHECK-NEXT: [[XTNv4i16_:%[0-9]+]]:fpr64 = XTNv4i16 [[CMGEv4i32_]]
3110     ; CHECK-NEXT: $d0 = COPY [[XTNv4i16_]]
3111     ; CHECK-NEXT: RET_ReallyLR implicit $d0
3112     %0:fpr(<4 x s32>) = COPY $q0
3113     %1:fpr(<4 x s32>) = COPY $q1
3114     %4:fpr(<4 x s32>) = G_ICMP intpred(sle), %0(<4 x s32>), %1
3115     %3:fpr(<4 x s16>) = G_TRUNC %4(<4 x s32>)
3116     $d0 = COPY %3(<4 x s16>)
3117     RET_ReallyLR implicit $d0
3121 name:            test_v2i32_sle
3122 alignment:       4
3123 legalized:       true
3124 regBankSelected: true
3125 tracksRegLiveness: true
3126 registers:
3127   - { id: 0, class: fpr }
3128   - { id: 1, class: fpr }
3129   - { id: 2, class: _ }
3130   - { id: 3, class: fpr }
3131   - { id: 4, class: fpr }
3132 machineFunctionInfo: {}
3133 body:             |
3134   bb.1 (%ir-block.0):
3135     liveins: $d0, $d1
3137     ; CHECK-LABEL: name: test_v2i32_sle
3138     ; CHECK: liveins: $d0, $d1
3139     ; CHECK-NEXT: {{  $}}
3140     ; CHECK-NEXT: [[COPY:%[0-9]+]]:fpr64 = COPY $d0
3141     ; CHECK-NEXT: [[COPY1:%[0-9]+]]:fpr64 = COPY $d1
3142     ; CHECK-NEXT: [[CMGEv2i32_:%[0-9]+]]:fpr64 = CMGEv2i32 [[COPY1]], [[COPY]]
3143     ; CHECK-NEXT: $d0 = COPY [[CMGEv2i32_]]
3144     ; CHECK-NEXT: RET_ReallyLR implicit $d0
3145     %0:fpr(<2 x s32>) = COPY $d0
3146     %1:fpr(<2 x s32>) = COPY $d1
3147     %4:fpr(<2 x s32>) = G_ICMP intpred(sle), %0(<2 x s32>), %1
3148     %3:fpr(<2 x s32>) = COPY %4(<2 x s32>)
3149     $d0 = COPY %3(<2 x s32>)
3150     RET_ReallyLR implicit $d0
3154 name:            test_v2i16_sle
3155 alignment:       4
3156 legalized:       true
3157 regBankSelected: true
3158 tracksRegLiveness: true
3159 registers:
3160   - { id: 0, class: _ }
3161   - { id: 1, class: _ }
3162   - { id: 2, class: fpr }
3163   - { id: 3, class: fpr }
3164   - { id: 4, class: _ }
3165   - { id: 5, class: fpr }
3166   - { id: 6, class: _ }
3167   - { id: 7, class: fpr }
3168   - { id: 8, class: fpr }
3169   - { id: 9, class: fpr }
3170   - { id: 10, class: gpr }
3171   - { id: 11, class: fpr }
3172   - { id: 12, class: fpr }
3173   - { id: 13, class: fpr }
3174   - { id: 14, class: gpr }
3175   - { id: 15, class: fpr }
3176   - { id: 16, class: fpr }
3177   - { id: 17, class: fpr }
3178 machineFunctionInfo: {}
3179 body:             |
3180   bb.1 (%ir-block.0):
3181     liveins: $d0, $d1
3183     ; CHECK-LABEL: name: test_v2i16_sle
3184     ; CHECK: liveins: $d0, $d1
3185     ; CHECK-NEXT: {{  $}}
3186     ; CHECK-NEXT: [[COPY:%[0-9]+]]:fpr64 = COPY $d0
3187     ; CHECK-NEXT: [[COPY1:%[0-9]+]]:fpr64 = COPY $d1
3188     ; CHECK-NEXT: [[MOVIv2i32_:%[0-9]+]]:fpr64 = MOVIv2i32 16, 0
3189     ; CHECK-NEXT: [[SHLv2i32_shift:%[0-9]+]]:fpr64 = SHLv2i32_shift [[COPY]], 16
3190     ; CHECK-NEXT: [[NEGv2i32_:%[0-9]+]]:fpr64 = NEGv2i32 [[MOVIv2i32_]]
3191     ; CHECK-NEXT: [[SSHLv2i32_:%[0-9]+]]:fpr64 = SSHLv2i32 [[SHLv2i32_shift]], [[NEGv2i32_]]
3192     ; CHECK-NEXT: [[MOVIv2i32_1:%[0-9]+]]:fpr64 = MOVIv2i32 16, 0
3193     ; CHECK-NEXT: [[SHLv2i32_shift1:%[0-9]+]]:fpr64 = SHLv2i32_shift [[COPY1]], 16
3194     ; CHECK-NEXT: [[NEGv2i32_1:%[0-9]+]]:fpr64 = NEGv2i32 [[MOVIv2i32_1]]
3195     ; CHECK-NEXT: [[SSHLv2i32_1:%[0-9]+]]:fpr64 = SSHLv2i32 [[SHLv2i32_shift1]], [[NEGv2i32_1]]
3196     ; CHECK-NEXT: [[CMGEv2i32_:%[0-9]+]]:fpr64 = CMGEv2i32 [[SSHLv2i32_1]], [[SSHLv2i32_]]
3197     ; CHECK-NEXT: $d0 = COPY [[CMGEv2i32_]]
3198     ; CHECK-NEXT: RET_ReallyLR implicit $d0
3199     %2:fpr(<2 x s32>) = COPY $d0
3200     %3:fpr(<2 x s32>) = COPY $d1
3201     %14:gpr(s32) = G_CONSTANT i32 16
3202     %15:fpr(<2 x s32>) = G_BUILD_VECTOR %14(s32), %14(s32)
3203     %16:fpr(<2 x s32>) = COPY %2(<2 x s32>)
3204     %17:fpr(<2 x s32>) = G_SHL %16, %15(<2 x s32>)
3205     %7:fpr(<2 x s32>) = G_ASHR %17, %15(<2 x s32>)
3206     %10:gpr(s32) = G_CONSTANT i32 16
3207     %11:fpr(<2 x s32>) = G_BUILD_VECTOR %10(s32), %10(s32)
3208     %12:fpr(<2 x s32>) = COPY %3(<2 x s32>)
3209     %13:fpr(<2 x s32>) = G_SHL %12, %11(<2 x s32>)
3210     %8:fpr(<2 x s32>) = G_ASHR %13, %11(<2 x s32>)
3211     %9:fpr(<2 x s32>) = G_ICMP intpred(sle), %7(<2 x s32>), %8
3212     %5:fpr(<2 x s32>) = COPY %9(<2 x s32>)
3213     $d0 = COPY %5(<2 x s32>)
3214     RET_ReallyLR implicit $d0
3218 name:            test_v8i16_sle
3219 alignment:       4
3220 legalized:       true
3221 regBankSelected: true
3222 tracksRegLiveness: true
3223 registers:
3224   - { id: 0, class: fpr }
3225   - { id: 1, class: fpr }
3226   - { id: 2, class: _ }
3227   - { id: 3, class: fpr }
3228   - { id: 4, class: fpr }
3229 machineFunctionInfo: {}
3230 body:             |
3231   bb.1 (%ir-block.0):
3232     liveins: $q0, $q1
3234     ; CHECK-LABEL: name: test_v8i16_sle
3235     ; CHECK: liveins: $q0, $q1
3236     ; CHECK-NEXT: {{  $}}
3237     ; CHECK-NEXT: [[COPY:%[0-9]+]]:fpr128 = COPY $q0
3238     ; CHECK-NEXT: [[COPY1:%[0-9]+]]:fpr128 = COPY $q1
3239     ; CHECK-NEXT: [[CMGEv8i16_:%[0-9]+]]:fpr128 = CMGEv8i16 [[COPY1]], [[COPY]]
3240     ; CHECK-NEXT: [[XTNv8i8_:%[0-9]+]]:fpr64 = XTNv8i8 [[CMGEv8i16_]]
3241     ; CHECK-NEXT: $d0 = COPY [[XTNv8i8_]]
3242     ; CHECK-NEXT: RET_ReallyLR implicit $d0
3243     %0:fpr(<8 x s16>) = COPY $q0
3244     %1:fpr(<8 x s16>) = COPY $q1
3245     %4:fpr(<8 x s16>) = G_ICMP intpred(sle), %0(<8 x s16>), %1
3246     %3:fpr(<8 x s8>) = G_TRUNC %4(<8 x s16>)
3247     $d0 = COPY %3(<8 x s8>)
3248     RET_ReallyLR implicit $d0
3252 name:            test_v4i16_sle
3253 alignment:       4
3254 legalized:       true
3255 regBankSelected: true
3256 tracksRegLiveness: true
3257 registers:
3258   - { id: 0, class: fpr }
3259   - { id: 1, class: fpr }
3260   - { id: 2, class: _ }
3261   - { id: 3, class: fpr }
3262   - { id: 4, class: fpr }
3263 machineFunctionInfo: {}
3264 body:             |
3265   bb.1 (%ir-block.0):
3266     liveins: $d0, $d1
3268     ; CHECK-LABEL: name: test_v4i16_sle
3269     ; CHECK: liveins: $d0, $d1
3270     ; CHECK-NEXT: {{  $}}
3271     ; CHECK-NEXT: [[COPY:%[0-9]+]]:fpr64 = COPY $d0
3272     ; CHECK-NEXT: [[COPY1:%[0-9]+]]:fpr64 = COPY $d1
3273     ; CHECK-NEXT: [[CMGEv4i16_:%[0-9]+]]:fpr64 = CMGEv4i16 [[COPY1]], [[COPY]]
3274     ; CHECK-NEXT: $d0 = COPY [[CMGEv4i16_]]
3275     ; CHECK-NEXT: RET_ReallyLR implicit $d0
3276     %0:fpr(<4 x s16>) = COPY $d0
3277     %1:fpr(<4 x s16>) = COPY $d1
3278     %4:fpr(<4 x s16>) = G_ICMP intpred(sle), %0(<4 x s16>), %1
3279     %3:fpr(<4 x s16>) = COPY %4(<4 x s16>)
3280     $d0 = COPY %3(<4 x s16>)
3281     RET_ReallyLR implicit $d0
3285 name:            test_v16i8_sle
3286 alignment:       4
3287 legalized:       true
3288 regBankSelected: true
3289 tracksRegLiveness: true
3290 registers:
3291   - { id: 0, class: fpr }
3292   - { id: 1, class: fpr }
3293   - { id: 2, class: _ }
3294   - { id: 3, class: fpr }
3295   - { id: 4, class: fpr }
3296 machineFunctionInfo: {}
3297 body:             |
3298   bb.1 (%ir-block.0):
3299     liveins: $q0, $q1
3301     ; CHECK-LABEL: name: test_v16i8_sle
3302     ; CHECK: liveins: $q0, $q1
3303     ; CHECK-NEXT: {{  $}}
3304     ; CHECK-NEXT: [[COPY:%[0-9]+]]:fpr128 = COPY $q0
3305     ; CHECK-NEXT: [[COPY1:%[0-9]+]]:fpr128 = COPY $q1
3306     ; CHECK-NEXT: [[CMGEv16i8_:%[0-9]+]]:fpr128 = CMGEv16i8 [[COPY1]], [[COPY]]
3307     ; CHECK-NEXT: $q0 = COPY [[CMGEv16i8_]]
3308     ; CHECK-NEXT: RET_ReallyLR implicit $q0
3309     %0:fpr(<16 x s8>) = COPY $q0
3310     %1:fpr(<16 x s8>) = COPY $q1
3311     %4:fpr(<16 x s8>) = G_ICMP intpred(sle), %0(<16 x s8>), %1
3312     %3:fpr(<16 x s8>) = COPY %4(<16 x s8>)
3313     $q0 = COPY %3(<16 x s8>)
3314     RET_ReallyLR implicit $q0
3318 name:            test_v8i8_sle
3319 alignment:       4
3320 legalized:       true
3321 regBankSelected: true
3322 tracksRegLiveness: true
3323 registers:
3324   - { id: 0, class: fpr }
3325   - { id: 1, class: fpr }
3326   - { id: 2, class: _ }
3327   - { id: 3, class: fpr }
3328   - { id: 4, class: fpr }
3329 machineFunctionInfo: {}
3330 body:             |
3331   bb.1 (%ir-block.0):
3332     liveins: $d0, $d1
3334     ; CHECK-LABEL: name: test_v8i8_sle
3335     ; CHECK: liveins: $d0, $d1
3336     ; CHECK-NEXT: {{  $}}
3337     ; CHECK-NEXT: [[COPY:%[0-9]+]]:fpr64 = COPY $d0
3338     ; CHECK-NEXT: [[COPY1:%[0-9]+]]:fpr64 = COPY $d1
3339     ; CHECK-NEXT: [[CMGEv8i8_:%[0-9]+]]:fpr64 = CMGEv8i8 [[COPY1]], [[COPY]]
3340     ; CHECK-NEXT: $d0 = COPY [[CMGEv8i8_]]
3341     ; CHECK-NEXT: RET_ReallyLR implicit $d0
3342     %0:fpr(<8 x s8>) = COPY $d0
3343     %1:fpr(<8 x s8>) = COPY $d1
3344     %4:fpr(<8 x s8>) = G_ICMP intpred(sle), %0(<8 x s8>), %1
3345     %3:fpr(<8 x s8>) = COPY %4(<8 x s8>)
3346     $d0 = COPY %3(<8 x s8>)
3347     RET_ReallyLR implicit $d0