[ORC] Add std::tuple support to SimplePackedSerialization.
[llvm-project.git] / llvm / test / CodeGen / AArch64 / GlobalISel / fold-brcond-fcmp.mir
blob08f478e12521bec9fb7c5b02f9053a0c5e6893f6
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 # Test that we don't have to emit a CSINC when emitting a G_FCMP being used by
5 # a G_BRCOND.
7 # Condition codes which require more than one instruction should have two Bccs.
9 ...
10 ---
11 name:            oeq
12 legalized:       true
13 regBankSelected: true
14 tracksRegLiveness: true
15 body:             |
16   ; CHECK-LABEL: name: oeq
17   ; CHECK: bb.0:
18   ; CHECK:   successors: %bb.1(0x50000000), %bb.2(0x30000000)
19   ; CHECK:   liveins: $s0, $s1, $w0, $w1
20   ; CHECK:   %cmp_lhs:fpr32 = COPY $s0
21   ; CHECK:   %cmp_rhs:fpr32 = COPY $s1
22   ; CHECK:   FCMPSrr %cmp_lhs, %cmp_rhs, implicit-def $nzcv
23   ; CHECK:   Bcc 0, %bb.2, implicit $nzcv
24   ; CHECK:   B %bb.1
25   ; CHECK: bb.1:
26   ; CHECK:   $s0 = COPY %cmp_lhs
27   ; CHECK:   RET_ReallyLR implicit $s0
28   ; CHECK: bb.2:
29   ; CHECK:   $s1 = COPY %cmp_rhs
30   ; CHECK:   RET_ReallyLR implicit $s1
31   bb.0:
32     successors: %bb.1(0x50000000), %bb.2(0x30000000)
33     liveins: $s0, $s1, $w0, $w1
35     %cmp_lhs:fpr(s32) = COPY $s0
36     %cmp_rhs:fpr(s32) = COPY $s1
37     %fcmp:gpr(s32) = G_FCMP floatpred(oeq), %cmp_lhs(s32), %cmp_rhs
38     %trunc:gpr(s1) = G_TRUNC %fcmp(s32)
39     G_BRCOND %trunc(s1), %bb.2
40     G_BR %bb.1
41   bb.1:
42     $s0 = COPY %cmp_lhs
43     RET_ReallyLR implicit $s0
44   bb.2:
45     $s1 = COPY %cmp_rhs
46     RET_ReallyLR implicit $s1
48 ...
49 ---
50 name:            ogt
51 legalized:       true
52 regBankSelected: true
53 tracksRegLiveness: true
54 body:             |
55   ; CHECK-LABEL: name: ogt
56   ; CHECK: bb.0:
57   ; CHECK:   successors: %bb.1(0x50000000), %bb.2(0x30000000)
58   ; CHECK:   liveins: $s0, $s1, $w0, $w1
59   ; CHECK:   %cmp_lhs:fpr32 = COPY $s0
60   ; CHECK:   %cmp_rhs:fpr32 = COPY $s1
61   ; CHECK:   FCMPSrr %cmp_lhs, %cmp_rhs, implicit-def $nzcv
62   ; CHECK:   Bcc 12, %bb.2, implicit $nzcv
63   ; CHECK:   B %bb.1
64   ; CHECK: bb.1:
65   ; CHECK:   $s0 = COPY %cmp_lhs
66   ; CHECK:   RET_ReallyLR implicit $s0
67   ; CHECK: bb.2:
68   ; CHECK:   $s1 = COPY %cmp_rhs
69   ; CHECK:   RET_ReallyLR implicit $s1
70   bb.0:
71     successors: %bb.1(0x50000000), %bb.2(0x30000000)
72     liveins: $s0, $s1, $w0, $w1
74     %cmp_lhs:fpr(s32) = COPY $s0
75     %cmp_rhs:fpr(s32) = COPY $s1
76     %fcmp:gpr(s32) = G_FCMP floatpred(ogt), %cmp_lhs(s32), %cmp_rhs
77     %trunc:gpr(s1) = G_TRUNC %fcmp(s32)
78     G_BRCOND %trunc(s1), %bb.2
79     G_BR %bb.1
80   bb.1:
81     $s0 = COPY %cmp_lhs
82     RET_ReallyLR implicit $s0
83   bb.2:
84     $s1 = COPY %cmp_rhs
85     RET_ReallyLR implicit $s1
87 ...
88 ---
89 name:            oge
90 legalized:       true
91 regBankSelected: true
92 tracksRegLiveness: true
93 body:             |
94   ; CHECK-LABEL: name: oge
95   ; CHECK: bb.0:
96   ; CHECK:   successors: %bb.1(0x50000000), %bb.2(0x30000000)
97   ; CHECK:   liveins: $s0, $s1, $w0, $w1
98   ; CHECK:   %cmp_lhs:fpr32 = COPY $s0
99   ; CHECK:   %cmp_rhs:fpr32 = COPY $s1
100   ; CHECK:   FCMPSrr %cmp_lhs, %cmp_rhs, implicit-def $nzcv
101   ; CHECK:   Bcc 10, %bb.2, implicit $nzcv
102   ; CHECK:   B %bb.1
103   ; CHECK: bb.1:
104   ; CHECK:   $s0 = COPY %cmp_lhs
105   ; CHECK:   RET_ReallyLR implicit $s0
106   ; CHECK: bb.2:
107   ; CHECK:   $s1 = COPY %cmp_rhs
108   ; CHECK:   RET_ReallyLR implicit $s1
109   bb.0:
110     successors: %bb.1(0x50000000), %bb.2(0x30000000)
111     liveins: $s0, $s1, $w0, $w1
113     %cmp_lhs:fpr(s32) = COPY $s0
114     %cmp_rhs:fpr(s32) = COPY $s1
115     %fcmp:gpr(s32) = G_FCMP floatpred(oge), %cmp_lhs(s32), %cmp_rhs
116     %trunc:gpr(s1) = G_TRUNC %fcmp(s32)
117     G_BRCOND %trunc(s1), %bb.2
118     G_BR %bb.1
119   bb.1:
120     $s0 = COPY %cmp_lhs
121     RET_ReallyLR implicit $s0
122   bb.2:
123     $s1 = COPY %cmp_rhs
124     RET_ReallyLR implicit $s1
128 name:            olt
129 legalized:       true
130 regBankSelected: true
131 tracksRegLiveness: true
132 body:             |
133   ; CHECK-LABEL: name: olt
134   ; CHECK: bb.0:
135   ; CHECK:   successors: %bb.1(0x50000000), %bb.2(0x30000000)
136   ; CHECK:   liveins: $s0, $s1, $w0, $w1
137   ; CHECK:   %cmp_lhs:fpr32 = COPY $s0
138   ; CHECK:   %cmp_rhs:fpr32 = COPY $s1
139   ; CHECK:   FCMPSrr %cmp_lhs, %cmp_rhs, implicit-def $nzcv
140   ; CHECK:   Bcc 4, %bb.2, implicit $nzcv
141   ; CHECK:   B %bb.1
142   ; CHECK: bb.1:
143   ; CHECK:   $s0 = COPY %cmp_lhs
144   ; CHECK:   RET_ReallyLR implicit $s0
145   ; CHECK: bb.2:
146   ; CHECK:   $s1 = COPY %cmp_rhs
147   ; CHECK:   RET_ReallyLR implicit $s1
148   bb.0:
149     successors: %bb.1(0x50000000), %bb.2(0x30000000)
150     liveins: $s0, $s1, $w0, $w1
152     %cmp_lhs:fpr(s32) = COPY $s0
153     %cmp_rhs:fpr(s32) = COPY $s1
154     %fcmp:gpr(s32) = G_FCMP floatpred(olt), %cmp_lhs(s32), %cmp_rhs
155     %trunc:gpr(s1) = G_TRUNC %fcmp(s32)
156     G_BRCOND %trunc(s1), %bb.2
157     G_BR %bb.1
158   bb.1:
159     $s0 = COPY %cmp_lhs
160     RET_ReallyLR implicit $s0
161   bb.2:
162     $s1 = COPY %cmp_rhs
163     RET_ReallyLR implicit $s1
167 name:            ole
168 legalized:       true
169 regBankSelected: true
170 tracksRegLiveness: true
171 body:             |
172   ; CHECK-LABEL: name: ole
173   ; CHECK: bb.0:
174   ; CHECK:   successors: %bb.1(0x50000000), %bb.2(0x30000000)
175   ; CHECK:   liveins: $s0, $s1, $w0, $w1
176   ; CHECK:   %cmp_lhs:fpr32 = COPY $s0
177   ; CHECK:   %cmp_rhs:fpr32 = COPY $s1
178   ; CHECK:   FCMPSrr %cmp_lhs, %cmp_rhs, implicit-def $nzcv
179   ; CHECK:   Bcc 9, %bb.2, implicit $nzcv
180   ; CHECK:   B %bb.1
181   ; CHECK: bb.1:
182   ; CHECK:   $s0 = COPY %cmp_lhs
183   ; CHECK:   RET_ReallyLR implicit $s0
184   ; CHECK: bb.2:
185   ; CHECK:   $s1 = COPY %cmp_rhs
186   ; CHECK:   RET_ReallyLR implicit $s1
187   bb.0:
188     successors: %bb.1(0x50000000), %bb.2(0x30000000)
189     liveins: $s0, $s1, $w0, $w1
191     %cmp_lhs:fpr(s32) = COPY $s0
192     %cmp_rhs:fpr(s32) = COPY $s1
193     %fcmp:gpr(s32) = G_FCMP floatpred(ole), %cmp_lhs(s32), %cmp_rhs
194     %trunc:gpr(s1) = G_TRUNC %fcmp(s32)
195     G_BRCOND %trunc(s1), %bb.2
196     G_BR %bb.1
197   bb.1:
198     $s0 = COPY %cmp_lhs
199     RET_ReallyLR implicit $s0
200   bb.2:
201     $s1 = COPY %cmp_rhs
202     RET_ReallyLR implicit $s1
206 name:            one
207 legalized:       true
208 regBankSelected: true
209 tracksRegLiveness: true
210 body:             |
211   ; CHECK-LABEL: name: one
212   ; CHECK: bb.0:
213   ; CHECK:   successors: %bb.1(0x50000000), %bb.2(0x30000000)
214   ; CHECK:   liveins: $s0, $s1, $w0, $w1
215   ; CHECK:   %cmp_lhs:fpr32 = COPY $s0
216   ; CHECK:   %cmp_rhs:fpr32 = COPY $s1
217   ; CHECK:   FCMPSrr %cmp_lhs, %cmp_rhs, implicit-def $nzcv
218   ; CHECK:   Bcc 4, %bb.2, implicit $nzcv
219   ; CHECK:   Bcc 12, %bb.2, implicit $nzcv
220   ; CHECK:   B %bb.1
221   ; CHECK: bb.1:
222   ; CHECK:   $s0 = COPY %cmp_lhs
223   ; CHECK:   RET_ReallyLR implicit $s0
224   ; CHECK: bb.2:
225   ; CHECK:   $s1 = COPY %cmp_rhs
226   ; CHECK:   RET_ReallyLR implicit $s1
227   bb.0:
228     successors: %bb.1(0x50000000), %bb.2(0x30000000)
229     liveins: $s0, $s1, $w0, $w1
231     %cmp_lhs:fpr(s32) = COPY $s0
232     %cmp_rhs:fpr(s32) = COPY $s1
233     %fcmp:gpr(s32) = G_FCMP floatpred(one), %cmp_lhs(s32), %cmp_rhs
234     %trunc:gpr(s1) = G_TRUNC %fcmp(s32)
235     G_BRCOND %trunc(s1), %bb.2
236     G_BR %bb.1
237   bb.1:
238     $s0 = COPY %cmp_lhs
239     RET_ReallyLR implicit $s0
240   bb.2:
241     $s1 = COPY %cmp_rhs
242     RET_ReallyLR implicit $s1
246 name:            ord
247 legalized:       true
248 regBankSelected: true
249 tracksRegLiveness: true
250 body:             |
251   ; CHECK-LABEL: name: ord
252   ; CHECK: bb.0:
253   ; CHECK:   successors: %bb.1(0x50000000), %bb.2(0x30000000)
254   ; CHECK:   liveins: $s0, $s1, $w0, $w1
255   ; CHECK:   %cmp_lhs:fpr32 = COPY $s0
256   ; CHECK:   %cmp_rhs:fpr32 = COPY $s1
257   ; CHECK:   FCMPSrr %cmp_lhs, %cmp_rhs, implicit-def $nzcv
258   ; CHECK:   Bcc 7, %bb.2, implicit $nzcv
259   ; CHECK:   B %bb.1
260   ; CHECK: bb.1:
261   ; CHECK:   $s0 = COPY %cmp_lhs
262   ; CHECK:   RET_ReallyLR implicit $s0
263   ; CHECK: bb.2:
264   ; CHECK:   $s1 = COPY %cmp_rhs
265   ; CHECK:   RET_ReallyLR implicit $s1
266   bb.0:
267     successors: %bb.1(0x50000000), %bb.2(0x30000000)
268     liveins: $s0, $s1, $w0, $w1
270     %cmp_lhs:fpr(s32) = COPY $s0
271     %cmp_rhs:fpr(s32) = COPY $s1
272     %fcmp:gpr(s32) = G_FCMP floatpred(ord), %cmp_lhs(s32), %cmp_rhs
273     %trunc:gpr(s1) = G_TRUNC %fcmp(s32)
274     G_BRCOND %trunc(s1), %bb.2
275     G_BR %bb.1
276   bb.1:
277     $s0 = COPY %cmp_lhs
278     RET_ReallyLR implicit $s0
279   bb.2:
280     $s1 = COPY %cmp_rhs
281     RET_ReallyLR implicit $s1
285 name:            uno
286 legalized:       true
287 regBankSelected: true
288 tracksRegLiveness: true
289 body:             |
290   ; CHECK-LABEL: name: uno
291   ; CHECK: bb.0:
292   ; CHECK:   successors: %bb.1(0x50000000), %bb.2(0x30000000)
293   ; CHECK:   liveins: $s0, $s1, $w0, $w1
294   ; CHECK:   %cmp_lhs:fpr32 = COPY $s0
295   ; CHECK:   %cmp_rhs:fpr32 = COPY $s1
296   ; CHECK:   FCMPSrr %cmp_lhs, %cmp_rhs, implicit-def $nzcv
297   ; CHECK:   Bcc 6, %bb.2, implicit $nzcv
298   ; CHECK:   B %bb.1
299   ; CHECK: bb.1:
300   ; CHECK:   $s0 = COPY %cmp_lhs
301   ; CHECK:   RET_ReallyLR implicit $s0
302   ; CHECK: bb.2:
303   ; CHECK:   $s1 = COPY %cmp_rhs
304   ; CHECK:   RET_ReallyLR implicit $s1
305   bb.0:
306     successors: %bb.1(0x50000000), %bb.2(0x30000000)
307     liveins: $s0, $s1, $w0, $w1
309     %cmp_lhs:fpr(s32) = COPY $s0
310     %cmp_rhs:fpr(s32) = COPY $s1
311     %fcmp:gpr(s32) = G_FCMP floatpred(uno), %cmp_lhs(s32), %cmp_rhs
312     %trunc:gpr(s1) = G_TRUNC %fcmp(s32)
313     G_BRCOND %trunc(s1), %bb.2
314     G_BR %bb.1
315   bb.1:
316     $s0 = COPY %cmp_lhs
317     RET_ReallyLR implicit $s0
318   bb.2:
319     $s1 = COPY %cmp_rhs
320     RET_ReallyLR implicit $s1
324 name:            ueq
325 legalized:       true
326 regBankSelected: true
327 tracksRegLiveness: true
328 body:             |
329   ; CHECK-LABEL: name: ueq
330   ; CHECK: bb.0:
331   ; CHECK:   successors: %bb.1(0x50000000), %bb.2(0x30000000)
332   ; CHECK:   liveins: $s0, $s1, $w0, $w1
333   ; CHECK:   %cmp_lhs:fpr32 = COPY $s0
334   ; CHECK:   %cmp_rhs:fpr32 = COPY $s1
335   ; CHECK:   FCMPSrr %cmp_lhs, %cmp_rhs, implicit-def $nzcv
336   ; CHECK:   Bcc 0, %bb.2, implicit $nzcv
337   ; CHECK:   Bcc 6, %bb.2, implicit $nzcv
338   ; CHECK:   B %bb.1
339   ; CHECK: bb.1:
340   ; CHECK:   $s0 = COPY %cmp_lhs
341   ; CHECK:   RET_ReallyLR implicit $s0
342   ; CHECK: bb.2:
343   ; CHECK:   $s1 = COPY %cmp_rhs
344   ; CHECK:   RET_ReallyLR implicit $s1
345   bb.0:
346     successors: %bb.1(0x50000000), %bb.2(0x30000000)
347     liveins: $s0, $s1, $w0, $w1
349     %cmp_lhs:fpr(s32) = COPY $s0
350     %cmp_rhs:fpr(s32) = COPY $s1
351     %fcmp:gpr(s32) = G_FCMP floatpred(ueq), %cmp_lhs(s32), %cmp_rhs
352     %trunc:gpr(s1) = G_TRUNC %fcmp(s32)
353     G_BRCOND %trunc(s1), %bb.2
354     G_BR %bb.1
355   bb.1:
356     $s0 = COPY %cmp_lhs
357     RET_ReallyLR implicit $s0
358   bb.2:
359     $s1 = COPY %cmp_rhs
360     RET_ReallyLR implicit $s1
364 name:            ugt
365 legalized:       true
366 regBankSelected: true
367 tracksRegLiveness: true
368 body:             |
369   ; CHECK-LABEL: name: ugt
370   ; CHECK: bb.0:
371   ; CHECK:   successors: %bb.1(0x50000000), %bb.2(0x30000000)
372   ; CHECK:   liveins: $s0, $s1, $w0, $w1
373   ; CHECK:   %cmp_lhs:fpr32 = COPY $s0
374   ; CHECK:   %cmp_rhs:fpr32 = COPY $s1
375   ; CHECK:   FCMPSrr %cmp_lhs, %cmp_rhs, implicit-def $nzcv
376   ; CHECK:   Bcc 8, %bb.2, implicit $nzcv
377   ; CHECK:   B %bb.1
378   ; CHECK: bb.1:
379   ; CHECK:   $s0 = COPY %cmp_lhs
380   ; CHECK:   RET_ReallyLR implicit $s0
381   ; CHECK: bb.2:
382   ; CHECK:   $s1 = COPY %cmp_rhs
383   ; CHECK:   RET_ReallyLR implicit $s1
384   bb.0:
385     successors: %bb.1(0x50000000), %bb.2(0x30000000)
386     liveins: $s0, $s1, $w0, $w1
388     %cmp_lhs:fpr(s32) = COPY $s0
389     %cmp_rhs:fpr(s32) = COPY $s1
390     %fcmp:gpr(s32) = G_FCMP floatpred(ugt), %cmp_lhs(s32), %cmp_rhs
391     %trunc:gpr(s1) = G_TRUNC %fcmp(s32)
392     G_BRCOND %trunc(s1), %bb.2
393     G_BR %bb.1
394   bb.1:
395     $s0 = COPY %cmp_lhs
396     RET_ReallyLR implicit $s0
397   bb.2:
398     $s1 = COPY %cmp_rhs
399     RET_ReallyLR implicit $s1
403 name:            uge
404 legalized:       true
405 regBankSelected: true
406 tracksRegLiveness: true
407 body:             |
408   ; CHECK-LABEL: name: uge
409   ; CHECK: bb.0:
410   ; CHECK:   successors: %bb.1(0x50000000), %bb.2(0x30000000)
411   ; CHECK:   liveins: $s0, $s1, $w0, $w1
412   ; CHECK:   %cmp_lhs:fpr32 = COPY $s0
413   ; CHECK:   %cmp_rhs:fpr32 = COPY $s1
414   ; CHECK:   FCMPSrr %cmp_lhs, %cmp_rhs, implicit-def $nzcv
415   ; CHECK:   Bcc 5, %bb.2, implicit $nzcv
416   ; CHECK:   B %bb.1
417   ; CHECK: bb.1:
418   ; CHECK:   $s0 = COPY %cmp_lhs
419   ; CHECK:   RET_ReallyLR implicit $s0
420   ; CHECK: bb.2:
421   ; CHECK:   $s1 = COPY %cmp_rhs
422   ; CHECK:   RET_ReallyLR implicit $s1
423   bb.0:
424     successors: %bb.1(0x50000000), %bb.2(0x30000000)
425     liveins: $s0, $s1, $w0, $w1
427     %cmp_lhs:fpr(s32) = COPY $s0
428     %cmp_rhs:fpr(s32) = COPY $s1
429     %fcmp:gpr(s32) = G_FCMP floatpred(uge), %cmp_lhs(s32), %cmp_rhs
430     %trunc:gpr(s1) = G_TRUNC %fcmp(s32)
431     G_BRCOND %trunc(s1), %bb.2
432     G_BR %bb.1
433   bb.1:
434     $s0 = COPY %cmp_lhs
435     RET_ReallyLR implicit $s0
436   bb.2:
437     $s1 = COPY %cmp_rhs
438     RET_ReallyLR implicit $s1
442 name:            ult
443 legalized:       true
444 regBankSelected: true
445 tracksRegLiveness: true
446 body:             |
447   ; CHECK-LABEL: name: ult
448   ; CHECK: bb.0:
449   ; CHECK:   successors: %bb.1(0x50000000), %bb.2(0x30000000)
450   ; CHECK:   liveins: $s0, $s1, $w0, $w1
451   ; CHECK:   %cmp_lhs:fpr32 = COPY $s0
452   ; CHECK:   %cmp_rhs:fpr32 = COPY $s1
453   ; CHECK:   FCMPSrr %cmp_lhs, %cmp_rhs, implicit-def $nzcv
454   ; CHECK:   Bcc 11, %bb.2, implicit $nzcv
455   ; CHECK:   B %bb.1
456   ; CHECK: bb.1:
457   ; CHECK:   $s0 = COPY %cmp_lhs
458   ; CHECK:   RET_ReallyLR implicit $s0
459   ; CHECK: bb.2:
460   ; CHECK:   $s1 = COPY %cmp_rhs
461   ; CHECK:   RET_ReallyLR implicit $s1
462   bb.0:
463     successors: %bb.1(0x50000000), %bb.2(0x30000000)
464     liveins: $s0, $s1, $w0, $w1
466     %cmp_lhs:fpr(s32) = COPY $s0
467     %cmp_rhs:fpr(s32) = COPY $s1
468     %fcmp:gpr(s32) = G_FCMP floatpred(ult), %cmp_lhs(s32), %cmp_rhs
469     %trunc:gpr(s1) = G_TRUNC %fcmp(s32)
470     G_BRCOND %trunc(s1), %bb.2
471     G_BR %bb.1
472   bb.1:
473     $s0 = COPY %cmp_lhs
474     RET_ReallyLR implicit $s0
475   bb.2:
476     $s1 = COPY %cmp_rhs
477     RET_ReallyLR implicit $s1
481 name:            ule
482 legalized:       true
483 regBankSelected: true
484 tracksRegLiveness: true
485 body:             |
486   ; CHECK-LABEL: name: ule
487   ; CHECK: bb.0:
488   ; CHECK:   successors: %bb.1(0x50000000), %bb.2(0x30000000)
489   ; CHECK:   liveins: $s0, $s1, $w0, $w1
490   ; CHECK:   %cmp_lhs:fpr32 = COPY $s0
491   ; CHECK:   %cmp_rhs:fpr32 = COPY $s1
492   ; CHECK:   FCMPSrr %cmp_lhs, %cmp_rhs, implicit-def $nzcv
493   ; CHECK:   Bcc 13, %bb.2, implicit $nzcv
494   ; CHECK:   B %bb.1
495   ; CHECK: bb.1:
496   ; CHECK:   $s0 = COPY %cmp_lhs
497   ; CHECK:   RET_ReallyLR implicit $s0
498   ; CHECK: bb.2:
499   ; CHECK:   $s1 = COPY %cmp_rhs
500   ; CHECK:   RET_ReallyLR implicit $s1
501   bb.0:
502     successors: %bb.1(0x50000000), %bb.2(0x30000000)
503     liveins: $s0, $s1, $w0, $w1
505     %cmp_lhs:fpr(s32) = COPY $s0
506     %cmp_rhs:fpr(s32) = COPY $s1
507     %fcmp:gpr(s32) = G_FCMP floatpred(ule), %cmp_lhs(s32), %cmp_rhs
508     %trunc:gpr(s1) = G_TRUNC %fcmp(s32)
509     G_BRCOND %trunc(s1), %bb.2
510     G_BR %bb.1
511   bb.1:
512     $s0 = COPY %cmp_lhs
513     RET_ReallyLR implicit $s0
514   bb.2:
515     $s1 = COPY %cmp_rhs
516     RET_ReallyLR implicit $s1
520 name:            une
521 legalized:       true
522 regBankSelected: true
523 tracksRegLiveness: true
524 body:             |
525   ; CHECK-LABEL: name: une
526   ; CHECK: bb.0:
527   ; CHECK:   successors: %bb.1(0x50000000), %bb.2(0x30000000)
528   ; CHECK:   liveins: $s0, $s1, $w0, $w1
529   ; CHECK:   %cmp_lhs:fpr32 = COPY $s0
530   ; CHECK:   %cmp_rhs:fpr32 = COPY $s1
531   ; CHECK:   FCMPSrr %cmp_lhs, %cmp_rhs, implicit-def $nzcv
532   ; CHECK:   Bcc 1, %bb.2, implicit $nzcv
533   ; CHECK:   B %bb.1
534   ; CHECK: bb.1:
535   ; CHECK:   $s0 = COPY %cmp_lhs
536   ; CHECK:   RET_ReallyLR implicit $s0
537   ; CHECK: bb.2:
538   ; CHECK:   $s1 = COPY %cmp_rhs
539   ; CHECK:   RET_ReallyLR implicit $s1
540   bb.0:
541     successors: %bb.1(0x50000000), %bb.2(0x30000000)
542     liveins: $s0, $s1, $w0, $w1
544     %cmp_lhs:fpr(s32) = COPY $s0
545     %cmp_rhs:fpr(s32) = COPY $s1
546     %fcmp:gpr(s32) = G_FCMP floatpred(une), %cmp_lhs(s32), %cmp_rhs
547     %trunc:gpr(s1) = G_TRUNC %fcmp(s32)
548     G_BRCOND %trunc(s1), %bb.2
549     G_BR %bb.1
550   bb.1:
551     $s0 = COPY %cmp_lhs
552     RET_ReallyLR implicit $s0
553   bb.2:
554     $s1 = COPY %cmp_rhs
555     RET_ReallyLR implicit $s1