[LLVM][IR] Use splat syntax when printing ConstantExpr based splats. (#116856)
[llvm-project.git] / llvm / test / CodeGen / RISCV / GlobalISel / instruction-select / fcmp-rv32.mir
blob285a35f989f9d860bebbaaf0ff83eeea3d762c54
1 # NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py
2 # RUN: llc -mtriple=riscv32 -mattr=+d -run-pass=instruction-select \
3 # RUN:   -simplify-mir -verify-machineinstrs %s -o - | FileCheck %s
5 ---
6 name:            fcmp_oeq_f32
7 legalized:       true
8 regBankSelected: true
9 tracksRegLiveness: true
10 body:             |
11   bb.1:
12     liveins: $f10_f, $f11_f
14     ; CHECK-LABEL: name: fcmp_oeq_f32
15     ; CHECK: liveins: $f10_f, $f11_f
16     ; CHECK-NEXT: {{  $}}
17     ; CHECK-NEXT: [[COPY:%[0-9]+]]:fpr32 = COPY $f10_f
18     ; CHECK-NEXT: [[COPY1:%[0-9]+]]:fpr32 = COPY $f11_f
19     ; CHECK-NEXT: [[FEQ_S:%[0-9]+]]:gpr = nofpexcept FEQ_S [[COPY]], [[COPY1]]
20     ; CHECK-NEXT: $x10 = COPY [[FEQ_S]]
21     ; CHECK-NEXT: PseudoRET implicit $x10
22     %0:fprb(s32) = COPY $f10_f
23     %1:fprb(s32) = COPY $f11_f
24     %4:gprb(s32) = G_FCMP floatpred(oeq), %0(s32), %1
25     $x10 = COPY %4(s32)
26     PseudoRET implicit $x10
28 ...
29 ---
30 name:            fcmp_ogt_f32
31 legalized:       true
32 regBankSelected: true
33 tracksRegLiveness: true
34 body:             |
35   bb.1:
36     liveins: $f10_f, $f11_f
38     ; CHECK-LABEL: name: fcmp_ogt_f32
39     ; CHECK: liveins: $f10_f, $f11_f
40     ; CHECK-NEXT: {{  $}}
41     ; CHECK-NEXT: [[COPY:%[0-9]+]]:fpr32 = COPY $f10_f
42     ; CHECK-NEXT: [[COPY1:%[0-9]+]]:fpr32 = COPY $f11_f
43     ; CHECK-NEXT: [[FLT_S:%[0-9]+]]:gpr = FLT_S [[COPY1]], [[COPY]]
44     ; CHECK-NEXT: $x10 = COPY [[FLT_S]]
45     ; CHECK-NEXT: PseudoRET implicit $x10
46     %0:fprb(s32) = COPY $f10_f
47     %1:fprb(s32) = COPY $f11_f
48     %4:gprb(s32) = G_FCMP floatpred(ogt), %0(s32), %1
49     $x10 = COPY %4(s32)
50     PseudoRET implicit $x10
52 ...
53 ---
54 name:            fcmp_oge_f32
55 legalized:       true
56 regBankSelected: true
57 tracksRegLiveness: true
58 body:             |
59   bb.1:
60     liveins: $f10_f, $f11_f
62     ; CHECK-LABEL: name: fcmp_oge_f32
63     ; CHECK: liveins: $f10_f, $f11_f
64     ; CHECK-NEXT: {{  $}}
65     ; CHECK-NEXT: [[COPY:%[0-9]+]]:fpr32 = COPY $f10_f
66     ; CHECK-NEXT: [[COPY1:%[0-9]+]]:fpr32 = COPY $f11_f
67     ; CHECK-NEXT: [[FLE_S:%[0-9]+]]:gpr = FLE_S [[COPY1]], [[COPY]]
68     ; CHECK-NEXT: $x10 = COPY [[FLE_S]]
69     ; CHECK-NEXT: PseudoRET implicit $x10
70     %0:fprb(s32) = COPY $f10_f
71     %1:fprb(s32) = COPY $f11_f
72     %4:gprb(s32) = G_FCMP floatpred(oge), %0(s32), %1
73     $x10 = COPY %4(s32)
74     PseudoRET implicit $x10
76 ...
77 ---
78 name:            fcmp_olt_f32
79 legalized:       true
80 regBankSelected: true
81 tracksRegLiveness: true
82 body:             |
83   bb.1:
84     liveins: $f10_f, $f11_f
86     ; CHECK-LABEL: name: fcmp_olt_f32
87     ; CHECK: liveins: $f10_f, $f11_f
88     ; CHECK-NEXT: {{  $}}
89     ; CHECK-NEXT: [[COPY:%[0-9]+]]:fpr32 = COPY $f10_f
90     ; CHECK-NEXT: [[COPY1:%[0-9]+]]:fpr32 = COPY $f11_f
91     ; CHECK-NEXT: [[FLT_S:%[0-9]+]]:gpr = nofpexcept FLT_S [[COPY]], [[COPY1]]
92     ; CHECK-NEXT: $x10 = COPY [[FLT_S]]
93     ; CHECK-NEXT: PseudoRET implicit $x10
94     %0:fprb(s32) = COPY $f10_f
95     %1:fprb(s32) = COPY $f11_f
96     %4:gprb(s32) = G_FCMP floatpred(olt), %0(s32), %1
97     $x10 = COPY %4(s32)
98     PseudoRET implicit $x10
102 name:            fcmp_ole_f32
103 legalized:       true
104 regBankSelected: true
105 tracksRegLiveness: true
106 body:             |
107   bb.1:
108     liveins: $f10_f, $f11_f
110     ; CHECK-LABEL: name: fcmp_ole_f32
111     ; CHECK: liveins: $f10_f, $f11_f
112     ; CHECK-NEXT: {{  $}}
113     ; CHECK-NEXT: [[COPY:%[0-9]+]]:fpr32 = COPY $f10_f
114     ; CHECK-NEXT: [[COPY1:%[0-9]+]]:fpr32 = COPY $f11_f
115     ; CHECK-NEXT: [[FLE_S:%[0-9]+]]:gpr = nofpexcept FLE_S [[COPY]], [[COPY1]]
116     ; CHECK-NEXT: $x10 = COPY [[FLE_S]]
117     ; CHECK-NEXT: PseudoRET implicit $x10
118     %0:fprb(s32) = COPY $f10_f
119     %1:fprb(s32) = COPY $f11_f
120     %4:gprb(s32) = G_FCMP floatpred(ole), %0(s32), %1
121     $x10 = COPY %4(s32)
122     PseudoRET implicit $x10
126 name:            fcmp_one_f32
127 legalized:       true
128 regBankSelected: true
129 tracksRegLiveness: true
130 body:             |
131   bb.1:
132     liveins: $f10_f, $f11_f
134     ; CHECK-LABEL: name: fcmp_one_f32
135     ; CHECK: liveins: $f10_f, $f11_f
136     ; CHECK-NEXT: {{  $}}
137     ; CHECK-NEXT: [[COPY:%[0-9]+]]:fpr32 = COPY $f10_f
138     ; CHECK-NEXT: [[COPY1:%[0-9]+]]:fpr32 = COPY $f11_f
139     ; CHECK-NEXT: [[FLT_S:%[0-9]+]]:gpr = FLT_S [[COPY]], [[COPY1]]
140     ; CHECK-NEXT: [[FLT_S1:%[0-9]+]]:gpr = FLT_S [[COPY1]], [[COPY]]
141     ; CHECK-NEXT: [[OR:%[0-9]+]]:gpr = OR [[FLT_S]], [[FLT_S1]]
142     ; CHECK-NEXT: $x10 = COPY [[OR]]
143     ; CHECK-NEXT: PseudoRET implicit $x10
144     %0:fprb(s32) = COPY $f10_f
145     %1:fprb(s32) = COPY $f11_f
146     %4:gprb(s32) = G_FCMP floatpred(one), %0(s32), %1
147     $x10 = COPY %4(s32)
148     PseudoRET implicit $x10
152 name:            fcmp_ord_f32
153 legalized:       true
154 regBankSelected: true
155 tracksRegLiveness: true
156 body:             |
157   bb.1:
158     liveins: $f10_f, $f11_f
160     ; CHECK-LABEL: name: fcmp_ord_f32
161     ; CHECK: liveins: $f10_f, $f11_f
162     ; CHECK-NEXT: {{  $}}
163     ; CHECK-NEXT: [[COPY:%[0-9]+]]:fpr32 = COPY $f10_f
164     ; CHECK-NEXT: [[COPY1:%[0-9]+]]:fpr32 = COPY $f11_f
165     ; CHECK-NEXT: [[FEQ_S:%[0-9]+]]:gpr = FEQ_S [[COPY]], [[COPY]]
166     ; CHECK-NEXT: [[FEQ_S1:%[0-9]+]]:gpr = FEQ_S [[COPY1]], [[COPY1]]
167     ; CHECK-NEXT: [[AND:%[0-9]+]]:gpr = AND [[FEQ_S]], [[FEQ_S1]]
168     ; CHECK-NEXT: $x10 = COPY [[AND]]
169     ; CHECK-NEXT: PseudoRET implicit $x10
170     %0:fprb(s32) = COPY $f10_f
171     %1:fprb(s32) = COPY $f11_f
172     %4:gprb(s32) = G_FCMP floatpred(ord), %0(s32), %1
173     $x10 = COPY %4(s32)
174     PseudoRET implicit $x10
178 name:            fcmp_ueq_f32
179 legalized:       true
180 regBankSelected: true
181 tracksRegLiveness: true
182 body:             |
183   bb.1:
184     liveins: $f10_f, $f11_f
186     ; CHECK-LABEL: name: fcmp_ueq_f32
187     ; CHECK: liveins: $f10_f, $f11_f
188     ; CHECK-NEXT: {{  $}}
189     ; CHECK-NEXT: [[COPY:%[0-9]+]]:fpr32 = COPY $f10_f
190     ; CHECK-NEXT: [[COPY1:%[0-9]+]]:fpr32 = COPY $f11_f
191     ; CHECK-NEXT: [[FLT_S:%[0-9]+]]:gpr = FLT_S [[COPY]], [[COPY1]]
192     ; CHECK-NEXT: [[FLT_S1:%[0-9]+]]:gpr = FLT_S [[COPY1]], [[COPY]]
193     ; CHECK-NEXT: [[OR:%[0-9]+]]:gpr = OR [[FLT_S]], [[FLT_S1]]
194     ; CHECK-NEXT: [[XORI:%[0-9]+]]:gpr = XORI [[OR]], 1
195     ; CHECK-NEXT: $x10 = COPY [[XORI]]
196     ; CHECK-NEXT: PseudoRET implicit $x10
197     %0:fprb(s32) = COPY $f10_f
198     %1:fprb(s32) = COPY $f11_f
199     %4:gprb(s32) = G_FCMP floatpred(ueq), %0(s32), %1
200     $x10 = COPY %4(s32)
201     PseudoRET implicit $x10
205 name:            fcmp_ugt_f32
206 legalized:       true
207 regBankSelected: true
208 tracksRegLiveness: true
209 body:             |
210   bb.1:
211     liveins: $f10_f, $f11_f
213     ; CHECK-LABEL: name: fcmp_ugt_f32
214     ; CHECK: liveins: $f10_f, $f11_f
215     ; CHECK-NEXT: {{  $}}
216     ; CHECK-NEXT: [[COPY:%[0-9]+]]:fpr32 = COPY $f10_f
217     ; CHECK-NEXT: [[COPY1:%[0-9]+]]:fpr32 = COPY $f11_f
218     ; CHECK-NEXT: [[FLE_S:%[0-9]+]]:gpr = FLE_S [[COPY]], [[COPY1]]
219     ; CHECK-NEXT: [[XORI:%[0-9]+]]:gpr = XORI [[FLE_S]], 1
220     ; CHECK-NEXT: $x10 = COPY [[XORI]]
221     ; CHECK-NEXT: PseudoRET implicit $x10
222     %0:fprb(s32) = COPY $f10_f
223     %1:fprb(s32) = COPY $f11_f
224     %4:gprb(s32) = G_FCMP floatpred(ugt), %0(s32), %1
225     $x10 = COPY %4(s32)
226     PseudoRET implicit $x10
230 name:            fcmp_uge_f32
231 legalized:       true
232 regBankSelected: true
233 tracksRegLiveness: true
234 body:             |
235   bb.1:
236     liveins: $f10_f, $f11_f
238     ; CHECK-LABEL: name: fcmp_uge_f32
239     ; CHECK: liveins: $f10_f, $f11_f
240     ; CHECK-NEXT: {{  $}}
241     ; CHECK-NEXT: [[COPY:%[0-9]+]]:fpr32 = COPY $f10_f
242     ; CHECK-NEXT: [[COPY1:%[0-9]+]]:fpr32 = COPY $f11_f
243     ; CHECK-NEXT: [[FLT_S:%[0-9]+]]:gpr = FLT_S [[COPY]], [[COPY1]]
244     ; CHECK-NEXT: [[XORI:%[0-9]+]]:gpr = XORI [[FLT_S]], 1
245     ; CHECK-NEXT: $x10 = COPY [[XORI]]
246     ; CHECK-NEXT: PseudoRET implicit $x10
247     %0:fprb(s32) = COPY $f10_f
248     %1:fprb(s32) = COPY $f11_f
249     %4:gprb(s32) = G_FCMP floatpred(uge), %0(s32), %1
250     $x10 = COPY %4(s32)
251     PseudoRET implicit $x10
255 name:            fcmp_ult_f32
256 legalized:       true
257 regBankSelected: true
258 tracksRegLiveness: true
259 body:             |
260   bb.1:
261     liveins: $f10_f, $f11_f
263     ; CHECK-LABEL: name: fcmp_ult_f32
264     ; CHECK: liveins: $f10_f, $f11_f
265     ; CHECK-NEXT: {{  $}}
266     ; CHECK-NEXT: [[COPY:%[0-9]+]]:fpr32 = COPY $f10_f
267     ; CHECK-NEXT: [[COPY1:%[0-9]+]]:fpr32 = COPY $f11_f
268     ; CHECK-NEXT: [[FLE_S:%[0-9]+]]:gpr = FLE_S [[COPY1]], [[COPY]]
269     ; CHECK-NEXT: [[XORI:%[0-9]+]]:gpr = XORI [[FLE_S]], 1
270     ; CHECK-NEXT: $x10 = COPY [[XORI]]
271     ; CHECK-NEXT: PseudoRET implicit $x10
272     %0:fprb(s32) = COPY $f10_f
273     %1:fprb(s32) = COPY $f11_f
274     %4:gprb(s32) = G_FCMP floatpred(ult), %0(s32), %1
275     $x10 = COPY %4(s32)
276     PseudoRET implicit $x10
280 name:            fcmp_ule_f32
281 legalized:       true
282 regBankSelected: true
283 tracksRegLiveness: true
284 body:             |
285   bb.1:
286     liveins: $f10_f, $f11_f
288     ; CHECK-LABEL: name: fcmp_ule_f32
289     ; CHECK: liveins: $f10_f, $f11_f
290     ; CHECK-NEXT: {{  $}}
291     ; CHECK-NEXT: [[COPY:%[0-9]+]]:fpr32 = COPY $f10_f
292     ; CHECK-NEXT: [[COPY1:%[0-9]+]]:fpr32 = COPY $f11_f
293     ; CHECK-NEXT: [[FLT_S:%[0-9]+]]:gpr = FLT_S [[COPY1]], [[COPY]]
294     ; CHECK-NEXT: [[XORI:%[0-9]+]]:gpr = XORI [[FLT_S]], 1
295     ; CHECK-NEXT: $x10 = COPY [[XORI]]
296     ; CHECK-NEXT: PseudoRET implicit $x10
297     %0:fprb(s32) = COPY $f10_f
298     %1:fprb(s32) = COPY $f11_f
299     %4:gprb(s32) = G_FCMP floatpred(ule), %0(s32), %1
300     $x10 = COPY %4(s32)
301     PseudoRET implicit $x10
305 name:            fcmp_une_f32
306 legalized:       true
307 regBankSelected: true
308 tracksRegLiveness: true
309 body:             |
310   bb.1:
311     liveins: $f10_f, $f11_f
313     ; CHECK-LABEL: name: fcmp_une_f32
314     ; CHECK: liveins: $f10_f, $f11_f
315     ; CHECK-NEXT: {{  $}}
316     ; CHECK-NEXT: [[COPY:%[0-9]+]]:fpr32 = COPY $f10_f
317     ; CHECK-NEXT: [[COPY1:%[0-9]+]]:fpr32 = COPY $f11_f
318     ; CHECK-NEXT: [[FEQ_S:%[0-9]+]]:gpr = FEQ_S [[COPY]], [[COPY1]]
319     ; CHECK-NEXT: [[XORI:%[0-9]+]]:gpr = XORI [[FEQ_S]], 1
320     ; CHECK-NEXT: $x10 = COPY [[XORI]]
321     ; CHECK-NEXT: PseudoRET implicit $x10
322     %0:fprb(s32) = COPY $f10_f
323     %1:fprb(s32) = COPY $f11_f
324     %4:gprb(s32) = G_FCMP floatpred(une), %0(s32), %1
325     $x10 = COPY %4(s32)
326     PseudoRET implicit $x10
330 name:            fcmp_uno_f32
331 legalized:       true
332 regBankSelected: true
333 tracksRegLiveness: true
334 body:             |
335   bb.1:
336     liveins: $f10_f, $f11_f
338     ; CHECK-LABEL: name: fcmp_uno_f32
339     ; CHECK: liveins: $f10_f, $f11_f
340     ; CHECK-NEXT: {{  $}}
341     ; CHECK-NEXT: [[COPY:%[0-9]+]]:fpr32 = COPY $f10_f
342     ; CHECK-NEXT: [[COPY1:%[0-9]+]]:fpr32 = COPY $f11_f
343     ; CHECK-NEXT: [[FEQ_S:%[0-9]+]]:gpr = FEQ_S [[COPY]], [[COPY]]
344     ; CHECK-NEXT: [[FEQ_S1:%[0-9]+]]:gpr = FEQ_S [[COPY1]], [[COPY1]]
345     ; CHECK-NEXT: [[AND:%[0-9]+]]:gpr = AND [[FEQ_S]], [[FEQ_S1]]
346     ; CHECK-NEXT: [[XORI:%[0-9]+]]:gpr = XORI [[AND]], 1
347     ; CHECK-NEXT: $x10 = COPY [[XORI]]
348     ; CHECK-NEXT: PseudoRET implicit $x10
349     %0:fprb(s32) = COPY $f10_f
350     %1:fprb(s32) = COPY $f11_f
351     %4:gprb(s32) = G_FCMP floatpred(uno), %0(s32), %1
352     $x10 = COPY %4(s32)
353     PseudoRET implicit $x10
357 name:            fcmp_oeq_f64
358 legalized:       true
359 regBankSelected: true
360 tracksRegLiveness: true
361 body:             |
362   bb.1:
363     liveins: $f10_d, $f11_d
365     ; CHECK-LABEL: name: fcmp_oeq_f64
366     ; CHECK: liveins: $f10_d, $f11_d
367     ; CHECK-NEXT: {{  $}}
368     ; CHECK-NEXT: [[COPY:%[0-9]+]]:fpr64 = COPY $f10_d
369     ; CHECK-NEXT: [[COPY1:%[0-9]+]]:fpr64 = COPY $f11_d
370     ; CHECK-NEXT: [[FEQ_D:%[0-9]+]]:gpr = nofpexcept FEQ_D [[COPY]], [[COPY1]]
371     ; CHECK-NEXT: $x10 = COPY [[FEQ_D]]
372     ; CHECK-NEXT: PseudoRET implicit $x10
373     %0:fprb(s64) = COPY $f10_d
374     %1:fprb(s64) = COPY $f11_d
375     %4:gprb(s32) = G_FCMP floatpred(oeq), %0(s64), %1
376     $x10 = COPY %4(s32)
377     PseudoRET implicit $x10
381 name:            fcmp_ogt_f64
382 legalized:       true
383 regBankSelected: true
384 tracksRegLiveness: true
385 body:             |
386   bb.1:
387     liveins: $f10_d, $f11_d
389     ; CHECK-LABEL: name: fcmp_ogt_f64
390     ; CHECK: liveins: $f10_d, $f11_d
391     ; CHECK-NEXT: {{  $}}
392     ; CHECK-NEXT: [[COPY:%[0-9]+]]:fpr64 = COPY $f10_d
393     ; CHECK-NEXT: [[COPY1:%[0-9]+]]:fpr64 = COPY $f11_d
394     ; CHECK-NEXT: [[FLT_D:%[0-9]+]]:gpr = FLT_D [[COPY1]], [[COPY]]
395     ; CHECK-NEXT: $x10 = COPY [[FLT_D]]
396     ; CHECK-NEXT: PseudoRET implicit $x10
397     %0:fprb(s64) = COPY $f10_d
398     %1:fprb(s64) = COPY $f11_d
399     %4:gprb(s32) = G_FCMP floatpred(ogt), %0(s64), %1
400     $x10 = COPY %4(s32)
401     PseudoRET implicit $x10
405 name:            fcmp_oge_f64
406 legalized:       true
407 regBankSelected: true
408 tracksRegLiveness: true
409 body:             |
410   bb.1:
411     liveins: $f10_d, $f11_d
413     ; CHECK-LABEL: name: fcmp_oge_f64
414     ; CHECK: liveins: $f10_d, $f11_d
415     ; CHECK-NEXT: {{  $}}
416     ; CHECK-NEXT: [[COPY:%[0-9]+]]:fpr64 = COPY $f10_d
417     ; CHECK-NEXT: [[COPY1:%[0-9]+]]:fpr64 = COPY $f11_d
418     ; CHECK-NEXT: [[FLE_D:%[0-9]+]]:gpr = FLE_D [[COPY1]], [[COPY]]
419     ; CHECK-NEXT: $x10 = COPY [[FLE_D]]
420     ; CHECK-NEXT: PseudoRET implicit $x10
421     %0:fprb(s64) = COPY $f10_d
422     %1:fprb(s64) = COPY $f11_d
423     %4:gprb(s32) = G_FCMP floatpred(oge), %0(s64), %1
424     $x10 = COPY %4(s32)
425     PseudoRET implicit $x10
429 name:            fcmp_olt_f64
430 legalized:       true
431 regBankSelected: true
432 tracksRegLiveness: true
433 body:             |
434   bb.1:
435     liveins: $f10_d, $f11_d
437     ; CHECK-LABEL: name: fcmp_olt_f64
438     ; CHECK: liveins: $f10_d, $f11_d
439     ; CHECK-NEXT: {{  $}}
440     ; CHECK-NEXT: [[COPY:%[0-9]+]]:fpr64 = COPY $f10_d
441     ; CHECK-NEXT: [[COPY1:%[0-9]+]]:fpr64 = COPY $f11_d
442     ; CHECK-NEXT: [[FLT_D:%[0-9]+]]:gpr = nofpexcept FLT_D [[COPY]], [[COPY1]]
443     ; CHECK-NEXT: $x10 = COPY [[FLT_D]]
444     ; CHECK-NEXT: PseudoRET implicit $x10
445     %0:fprb(s64) = COPY $f10_d
446     %1:fprb(s64) = COPY $f11_d
447     %4:gprb(s32) = G_FCMP floatpred(olt), %0(s64), %1
448     $x10 = COPY %4(s32)
449     PseudoRET implicit $x10
453 name:            fcmp_ole_f64
454 legalized:       true
455 regBankSelected: true
456 tracksRegLiveness: true
457 body:             |
458   bb.1:
459     liveins: $f10_d, $f11_d
461     ; CHECK-LABEL: name: fcmp_ole_f64
462     ; CHECK: liveins: $f10_d, $f11_d
463     ; CHECK-NEXT: {{  $}}
464     ; CHECK-NEXT: [[COPY:%[0-9]+]]:fpr64 = COPY $f10_d
465     ; CHECK-NEXT: [[COPY1:%[0-9]+]]:fpr64 = COPY $f11_d
466     ; CHECK-NEXT: [[FLE_D:%[0-9]+]]:gpr = nofpexcept FLE_D [[COPY]], [[COPY1]]
467     ; CHECK-NEXT: $x10 = COPY [[FLE_D]]
468     ; CHECK-NEXT: PseudoRET implicit $x10
469     %0:fprb(s64) = COPY $f10_d
470     %1:fprb(s64) = COPY $f11_d
471     %4:gprb(s32) = G_FCMP floatpred(ole), %0(s64), %1
472     $x10 = COPY %4(s32)
473     PseudoRET implicit $x10
477 name:            fcmp_one_f64
478 legalized:       true
479 regBankSelected: true
480 tracksRegLiveness: true
481 body:             |
482   bb.1:
483     liveins: $f10_d, $f11_d
485     ; CHECK-LABEL: name: fcmp_one_f64
486     ; CHECK: liveins: $f10_d, $f11_d
487     ; CHECK-NEXT: {{  $}}
488     ; CHECK-NEXT: [[COPY:%[0-9]+]]:fpr64 = COPY $f10_d
489     ; CHECK-NEXT: [[COPY1:%[0-9]+]]:fpr64 = COPY $f11_d
490     ; CHECK-NEXT: [[FLT_D:%[0-9]+]]:gpr = FLT_D [[COPY]], [[COPY1]]
491     ; CHECK-NEXT: [[FLT_D1:%[0-9]+]]:gpr = FLT_D [[COPY1]], [[COPY]]
492     ; CHECK-NEXT: [[OR:%[0-9]+]]:gpr = OR [[FLT_D]], [[FLT_D1]]
493     ; CHECK-NEXT: $x10 = COPY [[OR]]
494     ; CHECK-NEXT: PseudoRET implicit $x10
495     %0:fprb(s64) = COPY $f10_d
496     %1:fprb(s64) = COPY $f11_d
497     %4:gprb(s32) = G_FCMP floatpred(one), %0(s64), %1
498     $x10 = COPY %4(s32)
499     PseudoRET implicit $x10
503 name:            fcmp_ord_f64
504 legalized:       true
505 regBankSelected: true
506 tracksRegLiveness: true
507 body:             |
508   bb.1:
509     liveins: $f10_d, $f11_d
511     ; CHECK-LABEL: name: fcmp_ord_f64
512     ; CHECK: liveins: $f10_d, $f11_d
513     ; CHECK-NEXT: {{  $}}
514     ; CHECK-NEXT: [[COPY:%[0-9]+]]:fpr64 = COPY $f10_d
515     ; CHECK-NEXT: [[COPY1:%[0-9]+]]:fpr64 = COPY $f11_d
516     ; CHECK-NEXT: [[FEQ_D:%[0-9]+]]:gpr = FEQ_D [[COPY]], [[COPY]]
517     ; CHECK-NEXT: [[FEQ_D1:%[0-9]+]]:gpr = FEQ_D [[COPY1]], [[COPY1]]
518     ; CHECK-NEXT: [[AND:%[0-9]+]]:gpr = AND [[FEQ_D]], [[FEQ_D1]]
519     ; CHECK-NEXT: $x10 = COPY [[AND]]
520     ; CHECK-NEXT: PseudoRET implicit $x10
521     %0:fprb(s64) = COPY $f10_d
522     %1:fprb(s64) = COPY $f11_d
523     %4:gprb(s32) = G_FCMP floatpred(ord), %0(s64), %1
524     $x10 = COPY %4(s32)
525     PseudoRET implicit $x10
529 name:            fcmp_ueq_f64
530 legalized:       true
531 regBankSelected: true
532 tracksRegLiveness: true
533 body:             |
534   bb.1:
535     liveins: $f10_d, $f11_d
537     ; CHECK-LABEL: name: fcmp_ueq_f64
538     ; CHECK: liveins: $f10_d, $f11_d
539     ; CHECK-NEXT: {{  $}}
540     ; CHECK-NEXT: [[COPY:%[0-9]+]]:fpr64 = COPY $f10_d
541     ; CHECK-NEXT: [[COPY1:%[0-9]+]]:fpr64 = COPY $f11_d
542     ; CHECK-NEXT: [[FLT_D:%[0-9]+]]:gpr = FLT_D [[COPY]], [[COPY1]]
543     ; CHECK-NEXT: [[FLT_D1:%[0-9]+]]:gpr = FLT_D [[COPY1]], [[COPY]]
544     ; CHECK-NEXT: [[OR:%[0-9]+]]:gpr = OR [[FLT_D]], [[FLT_D1]]
545     ; CHECK-NEXT: [[XORI:%[0-9]+]]:gpr = XORI [[OR]], 1
546     ; CHECK-NEXT: $x10 = COPY [[XORI]]
547     ; CHECK-NEXT: PseudoRET implicit $x10
548     %0:fprb(s64) = COPY $f10_d
549     %1:fprb(s64) = COPY $f11_d
550     %4:gprb(s32) = G_FCMP floatpred(ueq), %0(s64), %1
551     $x10 = COPY %4(s32)
552     PseudoRET implicit $x10
556 name:            fcmp_ugt_f64
557 legalized:       true
558 regBankSelected: true
559 tracksRegLiveness: true
560 body:             |
561   bb.1:
562     liveins: $f10_d, $f11_d
564     ; CHECK-LABEL: name: fcmp_ugt_f64
565     ; CHECK: liveins: $f10_d, $f11_d
566     ; CHECK-NEXT: {{  $}}
567     ; CHECK-NEXT: [[COPY:%[0-9]+]]:fpr64 = COPY $f10_d
568     ; CHECK-NEXT: [[COPY1:%[0-9]+]]:fpr64 = COPY $f11_d
569     ; CHECK-NEXT: [[FLE_D:%[0-9]+]]:gpr = FLE_D [[COPY]], [[COPY1]]
570     ; CHECK-NEXT: [[XORI:%[0-9]+]]:gpr = XORI [[FLE_D]], 1
571     ; CHECK-NEXT: $x10 = COPY [[XORI]]
572     ; CHECK-NEXT: PseudoRET implicit $x10
573     %0:fprb(s64) = COPY $f10_d
574     %1:fprb(s64) = COPY $f11_d
575     %4:gprb(s32) = G_FCMP floatpred(ugt), %0(s64), %1
576     $x10 = COPY %4(s32)
577     PseudoRET implicit $x10
581 name:            fcmp_uge_f64
582 legalized:       true
583 regBankSelected: true
584 tracksRegLiveness: true
585 body:             |
586   bb.1:
587     liveins: $f10_d, $f11_d
589     ; CHECK-LABEL: name: fcmp_uge_f64
590     ; CHECK: liveins: $f10_d, $f11_d
591     ; CHECK-NEXT: {{  $}}
592     ; CHECK-NEXT: [[COPY:%[0-9]+]]:fpr64 = COPY $f10_d
593     ; CHECK-NEXT: [[COPY1:%[0-9]+]]:fpr64 = COPY $f11_d
594     ; CHECK-NEXT: [[FLT_D:%[0-9]+]]:gpr = FLT_D [[COPY]], [[COPY1]]
595     ; CHECK-NEXT: [[XORI:%[0-9]+]]:gpr = XORI [[FLT_D]], 1
596     ; CHECK-NEXT: $x10 = COPY [[XORI]]
597     ; CHECK-NEXT: PseudoRET implicit $x10
598     %0:fprb(s64) = COPY $f10_d
599     %1:fprb(s64) = COPY $f11_d
600     %4:gprb(s32) = G_FCMP floatpred(uge), %0(s64), %1
601     $x10 = COPY %4(s32)
602     PseudoRET implicit $x10
606 name:            fcmp_ult_f64
607 legalized:       true
608 regBankSelected: true
609 tracksRegLiveness: true
610 body:             |
611   bb.1:
612     liveins: $f10_d, $f11_d
614     ; CHECK-LABEL: name: fcmp_ult_f64
615     ; CHECK: liveins: $f10_d, $f11_d
616     ; CHECK-NEXT: {{  $}}
617     ; CHECK-NEXT: [[COPY:%[0-9]+]]:fpr64 = COPY $f10_d
618     ; CHECK-NEXT: [[COPY1:%[0-9]+]]:fpr64 = COPY $f11_d
619     ; CHECK-NEXT: [[FLE_D:%[0-9]+]]:gpr = FLE_D [[COPY1]], [[COPY]]
620     ; CHECK-NEXT: [[XORI:%[0-9]+]]:gpr = XORI [[FLE_D]], 1
621     ; CHECK-NEXT: $x10 = COPY [[XORI]]
622     ; CHECK-NEXT: PseudoRET implicit $x10
623     %0:fprb(s64) = COPY $f10_d
624     %1:fprb(s64) = COPY $f11_d
625     %4:gprb(s32) = G_FCMP floatpred(ult), %0(s64), %1
626     $x10 = COPY %4(s32)
627     PseudoRET implicit $x10
631 name:            fcmp_ule_f64
632 legalized:       true
633 regBankSelected: true
634 tracksRegLiveness: true
635 body:             |
636   bb.1:
637     liveins: $f10_d, $f11_d
639     ; CHECK-LABEL: name: fcmp_ule_f64
640     ; CHECK: liveins: $f10_d, $f11_d
641     ; CHECK-NEXT: {{  $}}
642     ; CHECK-NEXT: [[COPY:%[0-9]+]]:fpr64 = COPY $f10_d
643     ; CHECK-NEXT: [[COPY1:%[0-9]+]]:fpr64 = COPY $f11_d
644     ; CHECK-NEXT: [[FLT_D:%[0-9]+]]:gpr = FLT_D [[COPY1]], [[COPY]]
645     ; CHECK-NEXT: [[XORI:%[0-9]+]]:gpr = XORI [[FLT_D]], 1
646     ; CHECK-NEXT: $x10 = COPY [[XORI]]
647     ; CHECK-NEXT: PseudoRET implicit $x10
648     %0:fprb(s64) = COPY $f10_d
649     %1:fprb(s64) = COPY $f11_d
650     %4:gprb(s32) = G_FCMP floatpred(ule), %0(s64), %1
651     $x10 = COPY %4(s32)
652     PseudoRET implicit $x10
656 name:            fcmp_une_f64
657 legalized:       true
658 regBankSelected: true
659 tracksRegLiveness: true
660 body:             |
661   bb.1:
662     liveins: $f10_d, $f11_d
664     ; CHECK-LABEL: name: fcmp_une_f64
665     ; CHECK: liveins: $f10_d, $f11_d
666     ; CHECK-NEXT: {{  $}}
667     ; CHECK-NEXT: [[COPY:%[0-9]+]]:fpr64 = COPY $f10_d
668     ; CHECK-NEXT: [[COPY1:%[0-9]+]]:fpr64 = COPY $f11_d
669     ; CHECK-NEXT: [[FEQ_D:%[0-9]+]]:gpr = FEQ_D [[COPY]], [[COPY1]]
670     ; CHECK-NEXT: [[XORI:%[0-9]+]]:gpr = XORI [[FEQ_D]], 1
671     ; CHECK-NEXT: $x10 = COPY [[XORI]]
672     ; CHECK-NEXT: PseudoRET implicit $x10
673     %0:fprb(s64) = COPY $f10_d
674     %1:fprb(s64) = COPY $f11_d
675     %4:gprb(s32) = G_FCMP floatpred(une), %0(s64), %1
676     $x10 = COPY %4(s32)
677     PseudoRET implicit $x10
681 name:            fcmp_uno_f64
682 legalized:       true
683 regBankSelected: true
684 tracksRegLiveness: true
685 body:             |
686   bb.1:
687     liveins: $f10_d, $f11_d
689     ; CHECK-LABEL: name: fcmp_uno_f64
690     ; CHECK: liveins: $f10_d, $f11_d
691     ; CHECK-NEXT: {{  $}}
692     ; CHECK-NEXT: [[COPY:%[0-9]+]]:fpr64 = COPY $f10_d
693     ; CHECK-NEXT: [[COPY1:%[0-9]+]]:fpr64 = COPY $f11_d
694     ; CHECK-NEXT: [[FEQ_D:%[0-9]+]]:gpr = FEQ_D [[COPY]], [[COPY]]
695     ; CHECK-NEXT: [[FEQ_D1:%[0-9]+]]:gpr = FEQ_D [[COPY1]], [[COPY1]]
696     ; CHECK-NEXT: [[AND:%[0-9]+]]:gpr = AND [[FEQ_D]], [[FEQ_D1]]
697     ; CHECK-NEXT: [[XORI:%[0-9]+]]:gpr = XORI [[AND]], 1
698     ; CHECK-NEXT: $x10 = COPY [[XORI]]
699     ; CHECK-NEXT: PseudoRET implicit $x10
700     %0:fprb(s64) = COPY $f10_d
701     %1:fprb(s64) = COPY $f11_d
702     %4:gprb(s32) = G_FCMP floatpred(uno), %0(s64), %1
703     $x10 = COPY %4(s32)
704     PseudoRET implicit $x10