Revert "[AMDGPU][CodeGen] Do not backtrace invalid -regalloc param (#119687)"
[llvm-project.git] / llvm / test / CodeGen / RISCV / GlobalISel / instruction-select / fp-arith.mir
blob45cba58875341eece278b244615284b735265fc2
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
4 # RUN: llc -mtriple=riscv64 -mattr=+d -run-pass=instruction-select \
5 # RUN:   -simplify-mir -verify-machineinstrs %s -o - | FileCheck %s
7 ---
8 name:            fadd_f32
9 legalized:       true
10 regBankSelected: true
11 tracksRegLiveness: true
12 body:             |
13   bb.0:
14     liveins: $f10_f, $f11_f
16     ; CHECK-LABEL: name: fadd_f32
17     ; CHECK: liveins: $f10_f, $f11_f
18     ; CHECK-NEXT: {{  $}}
19     ; CHECK-NEXT: [[COPY:%[0-9]+]]:fpr32 = COPY $f10_f
20     ; CHECK-NEXT: [[COPY1:%[0-9]+]]:fpr32 = COPY $f11_f
21     ; CHECK-NEXT: [[FADD_S:%[0-9]+]]:fpr32 = nofpexcept FADD_S [[COPY]], [[COPY1]], 7
22     ; CHECK-NEXT: $f10_f = COPY [[FADD_S]]
23     ; CHECK-NEXT: PseudoRET implicit $f10_f
24     %0:fprb(s32) = COPY $f10_f
25     %1:fprb(s32) = COPY $f11_f
26     %2:fprb(s32) = G_FADD %0, %1
27     $f10_f = COPY %2(s32)
28     PseudoRET implicit $f10_f
30 ...
31 ---
32 name:            fsub_f32
33 legalized:       true
34 regBankSelected: true
35 tracksRegLiveness: true
36 body:             |
37   bb.0:
38     liveins: $f10_f, $f11_f
40     ; CHECK-LABEL: name: fsub_f32
41     ; CHECK: liveins: $f10_f, $f11_f
42     ; CHECK-NEXT: {{  $}}
43     ; CHECK-NEXT: [[COPY:%[0-9]+]]:fpr32 = COPY $f10_f
44     ; CHECK-NEXT: [[COPY1:%[0-9]+]]:fpr32 = COPY $f11_f
45     ; CHECK-NEXT: [[FSUB_S:%[0-9]+]]:fpr32 = nofpexcept FSUB_S [[COPY]], [[COPY1]], 7
46     ; CHECK-NEXT: $f10_f = COPY [[FSUB_S]]
47     ; CHECK-NEXT: PseudoRET implicit $f10_f
48     %0:fprb(s32) = COPY $f10_f
49     %1:fprb(s32) = COPY $f11_f
50     %2:fprb(s32) = G_FSUB %0, %1
51     $f10_f = COPY %2(s32)
52     PseudoRET implicit $f10_f
54 ...
55 ---
56 name:            fmul_f32
57 legalized:       true
58 regBankSelected: true
59 tracksRegLiveness: true
60 body:             |
61   bb.0:
62     liveins: $f10_f, $f11_f
64     ; CHECK-LABEL: name: fmul_f32
65     ; CHECK: liveins: $f10_f, $f11_f
66     ; CHECK-NEXT: {{  $}}
67     ; CHECK-NEXT: [[COPY:%[0-9]+]]:fpr32 = COPY $f10_f
68     ; CHECK-NEXT: [[COPY1:%[0-9]+]]:fpr32 = COPY $f11_f
69     ; CHECK-NEXT: [[FMUL_S:%[0-9]+]]:fpr32 = nofpexcept FMUL_S [[COPY]], [[COPY1]], 7
70     ; CHECK-NEXT: $f10_f = COPY [[FMUL_S]]
71     ; CHECK-NEXT: PseudoRET implicit $f10_f
72     %0:fprb(s32) = COPY $f10_f
73     %1:fprb(s32) = COPY $f11_f
74     %2:fprb(s32) = G_FMUL %0, %1
75     $f10_f = COPY %2(s32)
76     PseudoRET implicit $f10_f
78 ...
79 ---
80 name:            fdiv_f32
81 legalized:       true
82 regBankSelected: true
83 tracksRegLiveness: true
84 body:             |
85   bb.0:
86     liveins: $f10_f, $f11_f
88     ; CHECK-LABEL: name: fdiv_f32
89     ; CHECK: liveins: $f10_f, $f11_f
90     ; CHECK-NEXT: {{  $}}
91     ; CHECK-NEXT: [[COPY:%[0-9]+]]:fpr32 = COPY $f10_f
92     ; CHECK-NEXT: [[COPY1:%[0-9]+]]:fpr32 = COPY $f11_f
93     ; CHECK-NEXT: [[FDIV_S:%[0-9]+]]:fpr32 = nofpexcept FDIV_S [[COPY]], [[COPY1]], 7
94     ; CHECK-NEXT: $f10_f = COPY [[FDIV_S]]
95     ; CHECK-NEXT: PseudoRET implicit $f10_f
96     %0:fprb(s32) = COPY $f10_f
97     %1:fprb(s32) = COPY $f11_f
98     %2:fprb(s32) = G_FDIV %0, %1
99     $f10_f = COPY %2(s32)
100     PseudoRET implicit $f10_f
104 name:            fma_f32
105 legalized:       true
106 regBankSelected: true
107 tracksRegLiveness: true
108 body:             |
109   bb.0:
110     liveins: $f10_f, $f11_f, $f12_f
112     ; CHECK-LABEL: name: fma_f32
113     ; CHECK: liveins: $f10_f, $f11_f, $f12_f
114     ; CHECK-NEXT: {{  $}}
115     ; CHECK-NEXT: [[COPY:%[0-9]+]]:fpr32 = COPY $f10_f
116     ; CHECK-NEXT: [[COPY1:%[0-9]+]]:fpr32 = COPY $f11_f
117     ; CHECK-NEXT: [[COPY2:%[0-9]+]]:fpr32 = COPY $f12_f
118     ; CHECK-NEXT: [[FMADD_S:%[0-9]+]]:fpr32 = nofpexcept FMADD_S [[COPY]], [[COPY1]], [[COPY2]], 7
119     ; CHECK-NEXT: $f10_f = COPY [[FMADD_S]]
120     ; CHECK-NEXT: PseudoRET implicit $f10_f
121     %0:fprb(s32) = COPY $f10_f
122     %1:fprb(s32) = COPY $f11_f
123     %2:fprb(s32) = COPY $f12_f
124     %3:fprb(s32) = G_FMA %0, %1, %2
125     $f10_f = COPY %3(s32)
126     PseudoRET implicit $f10_f
130 name:            fneg_f32
131 legalized:       true
132 regBankSelected: true
133 tracksRegLiveness: true
134 body:             |
135   bb.0:
136     liveins: $f10_f, $f11_f, $f12_f
138     ; CHECK-LABEL: name: fneg_f32
139     ; CHECK: liveins: $f10_f, $f11_f, $f12_f
140     ; CHECK-NEXT: {{  $}}
141     ; CHECK-NEXT: [[COPY:%[0-9]+]]:fpr32 = COPY $f10_f
142     ; CHECK-NEXT: [[FSGNJN_S:%[0-9]+]]:fpr32 = FSGNJN_S [[COPY]], [[COPY]]
143     ; CHECK-NEXT: $f10_f = COPY [[FSGNJN_S]]
144     ; CHECK-NEXT: PseudoRET implicit $f10_f
145     %0:fprb(s32) = COPY $f10_f
146     %1:fprb(s32) = G_FNEG %0
147     $f10_f = COPY %1(s32)
148     PseudoRET implicit $f10_f
152 name:            fabs_f32
153 legalized:       true
154 regBankSelected: true
155 tracksRegLiveness: true
156 body:             |
157   bb.0:
158     liveins: $f10_f, $f11_f, $f12_f
160     ; CHECK-LABEL: name: fabs_f32
161     ; CHECK: liveins: $f10_f, $f11_f, $f12_f
162     ; CHECK-NEXT: {{  $}}
163     ; CHECK-NEXT: [[COPY:%[0-9]+]]:fpr32 = COPY $f10_f
164     ; CHECK-NEXT: [[FSGNJX_S:%[0-9]+]]:fpr32 = FSGNJX_S [[COPY]], [[COPY]]
165     ; CHECK-NEXT: $f10_f = COPY [[FSGNJX_S]]
166     ; CHECK-NEXT: PseudoRET implicit $f10_f
167     %0:fprb(s32) = COPY $f10_f
168     %1:fprb(s32) = G_FABS %0
169     $f10_f = COPY %1(s32)
170     PseudoRET implicit $f10_f
174 name:            fsqrt_f32
175 legalized:       true
176 regBankSelected: true
177 tracksRegLiveness: true
178 body:             |
179   bb.0:
180     liveins: $f10_f, $f11_f, $f12_f
182     ; CHECK-LABEL: name: fsqrt_f32
183     ; CHECK: liveins: $f10_f, $f11_f, $f12_f
184     ; CHECK-NEXT: {{  $}}
185     ; CHECK-NEXT: [[COPY:%[0-9]+]]:fpr32 = COPY $f10_f
186     ; CHECK-NEXT: [[FSQRT_S:%[0-9]+]]:fpr32 = nofpexcept FSQRT_S [[COPY]], 7
187     ; CHECK-NEXT: $f10_f = COPY [[FSQRT_S]]
188     ; CHECK-NEXT: PseudoRET implicit $f10_f
189     %0:fprb(s32) = COPY $f10_f
190     %1:fprb(s32) = G_FSQRT %0
191     $f10_f = COPY %1(s32)
192     PseudoRET implicit $f10_f
196 name:            fmaxnum_f32
197 legalized:       true
198 regBankSelected: true
199 tracksRegLiveness: true
200 body:             |
201   bb.0:
202     liveins: $f10_f, $f11_f
204     ; CHECK-LABEL: name: fmaxnum_f32
205     ; CHECK: liveins: $f10_f, $f11_f
206     ; CHECK-NEXT: {{  $}}
207     ; CHECK-NEXT: [[COPY:%[0-9]+]]:fpr32 = COPY $f10_f
208     ; CHECK-NEXT: [[COPY1:%[0-9]+]]:fpr32 = COPY $f11_f
209     ; CHECK-NEXT: [[FMAX_S:%[0-9]+]]:fpr32 = nofpexcept FMAX_S [[COPY]], [[COPY1]]
210     ; CHECK-NEXT: $f10_f = COPY [[FMAX_S]]
211     ; CHECK-NEXT: PseudoRET implicit $f10_f
212     %0:fprb(s32) = COPY $f10_f
213     %1:fprb(s32) = COPY $f11_f
214     %2:fprb(s32) = G_FMAXNUM %0, %1
215     $f10_f = COPY %2(s32)
216     PseudoRET implicit $f10_f
220 name:            fminnum_f32
221 legalized:       true
222 regBankSelected: true
223 tracksRegLiveness: true
224 body:             |
225   bb.0:
226     liveins: $f10_f, $f11_f
228     ; CHECK-LABEL: name: fminnum_f32
229     ; CHECK: liveins: $f10_f, $f11_f
230     ; CHECK-NEXT: {{  $}}
231     ; CHECK-NEXT: [[COPY:%[0-9]+]]:fpr32 = COPY $f10_f
232     ; CHECK-NEXT: [[COPY1:%[0-9]+]]:fpr32 = COPY $f11_f
233     ; CHECK-NEXT: [[FMIN_S:%[0-9]+]]:fpr32 = nofpexcept FMIN_S [[COPY]], [[COPY1]]
234     ; CHECK-NEXT: $f10_f = COPY [[FMIN_S]]
235     ; CHECK-NEXT: PseudoRET implicit $f10_f
236     %0:fprb(s32) = COPY $f10_f
237     %1:fprb(s32) = COPY $f11_f
238     %2:fprb(s32) = G_FMINNUM %0, %1
239     $f10_f = COPY %2(s32)
240     PseudoRET implicit $f10_f
244 name:            fcopysign_f32_f32
245 legalized:       true
246 regBankSelected: true
247 tracksRegLiveness: true
248 body:             |
249   bb.0:
250     liveins: $f10_f, $f11_f
252     ; CHECK-LABEL: name: fcopysign_f32_f32
253     ; CHECK: liveins: $f10_f, $f11_f
254     ; CHECK-NEXT: {{  $}}
255     ; CHECK-NEXT: [[COPY:%[0-9]+]]:fpr32 = COPY $f10_f
256     ; CHECK-NEXT: [[COPY1:%[0-9]+]]:fpr32 = COPY $f11_f
257     ; CHECK-NEXT: [[FSGNJ_S:%[0-9]+]]:fpr32 = FSGNJ_S [[COPY]], [[COPY1]]
258     ; CHECK-NEXT: $f10_f = COPY [[FSGNJ_S]]
259     ; CHECK-NEXT: PseudoRET implicit $f10_f
260     %0:fprb(s32) = COPY $f10_f
261     %1:fprb(s32) = COPY $f11_f
262     %2:fprb(s32) = G_FCOPYSIGN %0, %1
263     $f10_f = COPY %2(s32)
264     PseudoRET implicit $f10_f
268 name:            fcopysign_f32_f64
269 legalized:       true
270 regBankSelected: true
271 tracksRegLiveness: true
272 body:             |
273   bb.0:
274     liveins: $f10_f, $f11_d
276     ; CHECK-LABEL: name: fcopysign_f32_f64
277     ; CHECK: liveins: $f10_f, $f11_d
278     ; CHECK-NEXT: {{  $}}
279     ; CHECK-NEXT: [[COPY:%[0-9]+]]:fpr32 = COPY $f10_f
280     ; CHECK-NEXT: [[COPY1:%[0-9]+]]:fpr64 = COPY $f11_d
281     ; CHECK-NEXT: [[FCVT_S_D:%[0-9]+]]:fpr32 = nofpexcept FCVT_S_D [[COPY1]], 7
282     ; CHECK-NEXT: [[FSGNJ_S:%[0-9]+]]:fpr32 = FSGNJ_S [[COPY]], [[FCVT_S_D]]
283     ; CHECK-NEXT: $f10_f = COPY [[FSGNJ_S]]
284     ; CHECK-NEXT: PseudoRET implicit $f10_f
285     %0:fprb(s32) = COPY $f10_f
286     %1:fprb(s64) = COPY $f11_d
287     %2:fprb(s32) = G_FCOPYSIGN %0, %1
288     $f10_f = COPY %2(s32)
289     PseudoRET implicit $f10_f
293 name:            fadd_f64
294 legalized:       true
295 regBankSelected: true
296 tracksRegLiveness: true
297 body:             |
298   bb.0:
299     liveins: $f10_d, $f11_d
301     ; CHECK-LABEL: name: fadd_f64
302     ; CHECK: liveins: $f10_d, $f11_d
303     ; CHECK-NEXT: {{  $}}
304     ; CHECK-NEXT: [[COPY:%[0-9]+]]:fpr64 = COPY $f10_d
305     ; CHECK-NEXT: [[COPY1:%[0-9]+]]:fpr64 = COPY $f11_d
306     ; CHECK-NEXT: [[FADD_D:%[0-9]+]]:fpr64 = nofpexcept FADD_D [[COPY]], [[COPY1]], 7
307     ; CHECK-NEXT: $f10_d = COPY [[FADD_D]]
308     ; CHECK-NEXT: PseudoRET implicit $f10_d
309     %0:fprb(s64) = COPY $f10_d
310     %1:fprb(s64) = COPY $f11_d
311     %2:fprb(s64) = G_FADD %0, %1
312     $f10_d = COPY %2(s64)
313     PseudoRET implicit $f10_d
317 name:            fsub_f64
318 legalized:       true
319 regBankSelected: true
320 tracksRegLiveness: true
321 body:             |
322   bb.0:
323     liveins: $f10_d, $f11_d
325     ; CHECK-LABEL: name: fsub_f64
326     ; CHECK: liveins: $f10_d, $f11_d
327     ; CHECK-NEXT: {{  $}}
328     ; CHECK-NEXT: [[COPY:%[0-9]+]]:fpr64 = COPY $f10_d
329     ; CHECK-NEXT: [[COPY1:%[0-9]+]]:fpr64 = COPY $f11_d
330     ; CHECK-NEXT: [[FSUB_D:%[0-9]+]]:fpr64 = nofpexcept FSUB_D [[COPY]], [[COPY1]], 7
331     ; CHECK-NEXT: $f10_d = COPY [[FSUB_D]]
332     ; CHECK-NEXT: PseudoRET implicit $f10_d
333     %0:fprb(s64) = COPY $f10_d
334     %1:fprb(s64) = COPY $f11_d
335     %2:fprb(s64) = G_FSUB %0, %1
336     $f10_d = COPY %2(s64)
337     PseudoRET implicit $f10_d
341 name:            fmul_f64
342 legalized:       true
343 regBankSelected: true
344 tracksRegLiveness: true
345 body:             |
346   bb.0:
347     liveins: $f10_d, $f11_d
349     ; CHECK-LABEL: name: fmul_f64
350     ; CHECK: liveins: $f10_d, $f11_d
351     ; CHECK-NEXT: {{  $}}
352     ; CHECK-NEXT: [[COPY:%[0-9]+]]:fpr64 = COPY $f10_d
353     ; CHECK-NEXT: [[COPY1:%[0-9]+]]:fpr64 = COPY $f11_d
354     ; CHECK-NEXT: [[FMUL_D:%[0-9]+]]:fpr64 = nofpexcept FMUL_D [[COPY]], [[COPY1]], 7
355     ; CHECK-NEXT: $f10_d = COPY [[FMUL_D]]
356     ; CHECK-NEXT: PseudoRET implicit $f10_d
357     %0:fprb(s64) = COPY $f10_d
358     %1:fprb(s64) = COPY $f11_d
359     %2:fprb(s64) = G_FMUL %0, %1
360     $f10_d = COPY %2(s64)
361     PseudoRET implicit $f10_d
365 name:            fdiv_f64
366 legalized:       true
367 regBankSelected: true
368 tracksRegLiveness: true
369 body:             |
370   bb.0:
371     liveins: $f10_d, $f11_d
373     ; CHECK-LABEL: name: fdiv_f64
374     ; CHECK: liveins: $f10_d, $f11_d
375     ; CHECK-NEXT: {{  $}}
376     ; CHECK-NEXT: [[COPY:%[0-9]+]]:fpr64 = COPY $f10_d
377     ; CHECK-NEXT: [[COPY1:%[0-9]+]]:fpr64 = COPY $f11_d
378     ; CHECK-NEXT: [[FDIV_D:%[0-9]+]]:fpr64 = nofpexcept FDIV_D [[COPY]], [[COPY1]], 7
379     ; CHECK-NEXT: $f10_d = COPY [[FDIV_D]]
380     ; CHECK-NEXT: PseudoRET implicit $f10_d
381     %0:fprb(s64) = COPY $f10_d
382     %1:fprb(s64) = COPY $f11_d
383     %2:fprb(s64) = G_FDIV %0, %1
384     $f10_d = COPY %2(s64)
385     PseudoRET implicit $f10_d
389 name:            fma_f64
390 legalized:       true
391 regBankSelected: true
392 tracksRegLiveness: true
393 body:             |
394   bb.0:
395     liveins: $f10_d, $f11_d, $f12_d
397     ; CHECK-LABEL: name: fma_f64
398     ; CHECK: liveins: $f10_d, $f11_d, $f12_d
399     ; CHECK-NEXT: {{  $}}
400     ; CHECK-NEXT: [[COPY:%[0-9]+]]:fpr64 = COPY $f10_d
401     ; CHECK-NEXT: [[COPY1:%[0-9]+]]:fpr64 = COPY $f11_d
402     ; CHECK-NEXT: [[COPY2:%[0-9]+]]:fpr64 = COPY $f12_d
403     ; CHECK-NEXT: [[FMADD_D:%[0-9]+]]:fpr64 = nofpexcept FMADD_D [[COPY]], [[COPY1]], [[COPY2]], 7
404     ; CHECK-NEXT: $f10_d = COPY [[FMADD_D]]
405     ; CHECK-NEXT: PseudoRET implicit $f10_d
406     %0:fprb(s64) = COPY $f10_d
407     %1:fprb(s64) = COPY $f11_d
408     %2:fprb(s64) = COPY $f12_d
409     %3:fprb(s64) = G_FMA %0, %1, %2
410     $f10_d = COPY %3(s64)
411     PseudoRET implicit $f10_d
415 name:            fneg_f64
416 legalized:       true
417 regBankSelected: true
418 tracksRegLiveness: true
419 body:             |
420   bb.0:
421     liveins: $f10_d
423     ; CHECK-LABEL: name: fneg_f64
424     ; CHECK: liveins: $f10_d
425     ; CHECK-NEXT: {{  $}}
426     ; CHECK-NEXT: [[COPY:%[0-9]+]]:fpr64 = COPY $f10_d
427     ; CHECK-NEXT: [[FSGNJN_D:%[0-9]+]]:fpr64 = FSGNJN_D [[COPY]], [[COPY]]
428     ; CHECK-NEXT: $f10_d = COPY [[FSGNJN_D]]
429     ; CHECK-NEXT: PseudoRET implicit $f10_d
430     %0:fprb(s64) = COPY $f10_d
431     %1:fprb(s64) = G_FNEG %0
432     $f10_d = COPY %1(s64)
433     PseudoRET implicit $f10_d
437 name:            fabs_f64
438 legalized:       true
439 regBankSelected: true
440 tracksRegLiveness: true
441 body:             |
442   bb.0:
443     liveins: $f10_d
445     ; CHECK-LABEL: name: fabs_f64
446     ; CHECK: liveins: $f10_d
447     ; CHECK-NEXT: {{  $}}
448     ; CHECK-NEXT: [[COPY:%[0-9]+]]:fpr64 = COPY $f10_d
449     ; CHECK-NEXT: [[FSGNJX_D:%[0-9]+]]:fpr64 = FSGNJX_D [[COPY]], [[COPY]]
450     ; CHECK-NEXT: $f10_d = COPY [[FSGNJX_D]]
451     ; CHECK-NEXT: PseudoRET implicit $f10_d
452     %0:fprb(s64) = COPY $f10_d
453     %1:fprb(s64) = G_FABS %0
454     $f10_d = COPY %1(s64)
455     PseudoRET implicit $f10_d
459 name:            fsqrt_f64
460 legalized:       true
461 regBankSelected: true
462 tracksRegLiveness: true
463 body:             |
464   bb.0:
465     liveins: $f10_d
467     ; CHECK-LABEL: name: fsqrt_f64
468     ; CHECK: liveins: $f10_d
469     ; CHECK-NEXT: {{  $}}
470     ; CHECK-NEXT: [[COPY:%[0-9]+]]:fpr64 = COPY $f10_d
471     ; CHECK-NEXT: [[FSQRT_D:%[0-9]+]]:fpr64 = nofpexcept FSQRT_D [[COPY]], 7
472     ; CHECK-NEXT: $f10_d = COPY [[FSQRT_D]]
473     ; CHECK-NEXT: PseudoRET implicit $f10_d
474     %0:fprb(s64) = COPY $f10_d
475     %1:fprb(s64) = G_FSQRT %0
476     $f10_d = COPY %1(s64)
477     PseudoRET implicit $f10_d
481 name:            fmaxnum_f64
482 legalized:       true
483 regBankSelected: true
484 tracksRegLiveness: true
485 body:             |
486   bb.0:
487     liveins: $f10_d, $f11_d
489     ; CHECK-LABEL: name: fmaxnum_f64
490     ; CHECK: liveins: $f10_d, $f11_d
491     ; CHECK-NEXT: {{  $}}
492     ; CHECK-NEXT: [[COPY:%[0-9]+]]:fpr64 = COPY $f10_d
493     ; CHECK-NEXT: [[COPY1:%[0-9]+]]:fpr64 = COPY $f11_d
494     ; CHECK-NEXT: [[FMAX_D:%[0-9]+]]:fpr64 = nofpexcept FMAX_D [[COPY]], [[COPY1]]
495     ; CHECK-NEXT: $f10_d = COPY [[FMAX_D]]
496     ; CHECK-NEXT: PseudoRET implicit $f10_d
497     %0:fprb(s64) = COPY $f10_d
498     %1:fprb(s64) = COPY $f11_d
499     %2:fprb(s64) = G_FMAXNUM %0, %1
500     $f10_d = COPY %2(s64)
501     PseudoRET implicit $f10_d
505 name:            fminnum_f64
506 legalized:       true
507 regBankSelected: true
508 tracksRegLiveness: true
509 body:             |
510   bb.0:
511     liveins: $f10_d, $f11_d
513     ; CHECK-LABEL: name: fminnum_f64
514     ; CHECK: liveins: $f10_d, $f11_d
515     ; CHECK-NEXT: {{  $}}
516     ; CHECK-NEXT: [[COPY:%[0-9]+]]:fpr64 = COPY $f10_d
517     ; CHECK-NEXT: [[COPY1:%[0-9]+]]:fpr64 = COPY $f11_d
518     ; CHECK-NEXT: [[FMIN_D:%[0-9]+]]:fpr64 = nofpexcept FMIN_D [[COPY]], [[COPY1]]
519     ; CHECK-NEXT: $f10_d = COPY [[FMIN_D]]
520     ; CHECK-NEXT: PseudoRET implicit $f10_d
521     %0:fprb(s64) = COPY $f10_d
522     %1:fprb(s64) = COPY $f11_d
523     %2:fprb(s64) = G_FMINNUM %0, %1
524     $f10_d = COPY %2(s64)
525     PseudoRET implicit $f10_d
529 name:            fcopysign_f64_f64
530 legalized:       true
531 regBankSelected: true
532 tracksRegLiveness: true
533 body:             |
534   bb.0:
535     liveins: $f10_d, $f11_d
537     ; CHECK-LABEL: name: fcopysign_f64_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: [[FSGNJ_D:%[0-9]+]]:fpr64 = FSGNJ_D [[COPY]], [[COPY1]]
543     ; CHECK-NEXT: $f10_d = COPY [[FSGNJ_D]]
544     ; CHECK-NEXT: PseudoRET implicit $f10_d
545     %0:fprb(s64) = COPY $f10_d
546     %1:fprb(s64) = COPY $f11_d
547     %2:fprb(s64) = G_FCOPYSIGN %0, %1
548     $f10_d = COPY %2(s64)
549     PseudoRET implicit $f10_d
553 name:            fcopysign_f64_f32
554 legalized:       true
555 regBankSelected: true
556 tracksRegLiveness: true
557 body:             |
558   bb.0:
559     liveins: $f10_d, $f11_f
561     ; CHECK-LABEL: name: fcopysign_f64_f32
562     ; CHECK: liveins: $f10_d, $f11_f
563     ; CHECK-NEXT: {{  $}}
564     ; CHECK-NEXT: [[COPY:%[0-9]+]]:fpr64 = COPY $f10_d
565     ; CHECK-NEXT: [[COPY1:%[0-9]+]]:fpr32 = COPY $f11_f
566     ; CHECK-NEXT: [[FCVT_D_S:%[0-9]+]]:fpr64 = nofpexcept FCVT_D_S [[COPY1]], 0
567     ; CHECK-NEXT: [[FSGNJ_D:%[0-9]+]]:fpr64 = FSGNJ_D [[COPY]], [[FCVT_D_S]]
568     ; CHECK-NEXT: $f10_d = COPY [[FSGNJ_D]]
569     ; CHECK-NEXT: PseudoRET implicit $f10_d
570     %0:fprb(s64) = COPY $f10_d
571     %1:fprb(s32) = COPY $f11_f
572     %2:fprb(s64) = G_FCOPYSIGN %0, %1
573     $f10_d = COPY %2(s64)
574     PseudoRET implicit $f10_d