[LLVM][IR] Use splat syntax when printing ConstantExpr based splats. (#116856)
[llvm-project.git] / llvm / test / CodeGen / RISCV / GlobalISel / instruction-select / fp-ext-trunc-f16.mir
blob966604c4838e58ef0f1db8aea54a3de50d722be3
1 # NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py
2 # RUN: llc -mtriple=riscv32 -mattr=+d,+zfh -run-pass=instruction-select \
3 # RUN:   -simplify-mir -verify-machineinstrs %s -o - | FileCheck %s
4 # RUN: llc -mtriple=riscv64 -mattr=+d,+zfh -run-pass=instruction-select \
5 # RUN:   -simplify-mir -verify-machineinstrs %s -o - | FileCheck %s
7 ---
8 name:            fpext_f32
9 legalized:       true
10 regBankSelected: true
11 tracksRegLiveness: true
12 body:             |
13   bb.1:
14     liveins: $f10_h
16     ; CHECK-LABEL: name: fpext_f32
17     ; CHECK: liveins: $f10_h
18     ; CHECK-NEXT: {{  $}}
19     ; CHECK-NEXT: [[COPY:%[0-9]+]]:fpr16 = COPY $f10_h
20     ; CHECK-NEXT: [[FCVT_S_H:%[0-9]+]]:fpr32 = nofpexcept FCVT_S_H [[COPY]], 0
21     ; CHECK-NEXT: $f10_f = COPY [[FCVT_S_H]]
22     ; CHECK-NEXT: PseudoRET implicit $f10_f
23     %0:fprb(s16) = COPY $f10_h
24     %1:fprb(s32) = G_FPEXT %0(s16)
25     $f10_f = COPY %1(s32)
26     PseudoRET implicit $f10_f
28 ...
29 ---
30 name:            fptrunc_f32
31 legalized:       true
32 regBankSelected: true
33 tracksRegLiveness: true
34 body:             |
35   bb.1:
36     liveins: $f10_f
38     ; CHECK-LABEL: name: fptrunc_f32
39     ; CHECK: liveins: $f10_f
40     ; CHECK-NEXT: {{  $}}
41     ; CHECK-NEXT: [[COPY:%[0-9]+]]:fpr32 = COPY $f10_f
42     ; CHECK-NEXT: [[FCVT_H_S:%[0-9]+]]:fpr16 = nofpexcept FCVT_H_S [[COPY]], 7
43     ; CHECK-NEXT: $f10_h = COPY [[FCVT_H_S]]
44     ; CHECK-NEXT: PseudoRET implicit $f10_h
45     %0:fprb(s32) = COPY $f10_f
46     %1:fprb(s16) = G_FPTRUNC %0(s32)
47     $f10_h = COPY %1(s16)
48     PseudoRET implicit $f10_h
50 ...
51 ---
52 name:            fpext_f64
53 legalized:       true
54 regBankSelected: true
55 tracksRegLiveness: true
56 body:             |
57   bb.1:
58     liveins: $f10_h
60     ; CHECK-LABEL: name: fpext_f64
61     ; CHECK: liveins: $f10_h
62     ; CHECK-NEXT: {{  $}}
63     ; CHECK-NEXT: [[COPY:%[0-9]+]]:fpr16 = COPY $f10_h
64     ; CHECK-NEXT: [[FCVT_D_H:%[0-9]+]]:fpr64 = nofpexcept FCVT_D_H [[COPY]], 0
65     ; CHECK-NEXT: $f10_d = COPY [[FCVT_D_H]]
66     ; CHECK-NEXT: PseudoRET implicit $f10_d
67     %0:fprb(s16) = COPY $f10_h
68     %1:fprb(s64) = G_FPEXT %0(s16)
69     $f10_d = COPY %1(s64)
70     PseudoRET implicit $f10_d
72 ...
73 ---
74 name:            fptrunc_f64
75 legalized:       true
76 regBankSelected: true
77 tracksRegLiveness: true
78 body:             |
79   bb.1:
80     liveins: $f10_d
82     ; CHECK-LABEL: name: fptrunc_f64
83     ; CHECK: liveins: $f10_d
84     ; CHECK-NEXT: {{  $}}
85     ; CHECK-NEXT: [[COPY:%[0-9]+]]:fpr64 = COPY $f10_d
86     ; CHECK-NEXT: [[FCVT_H_D:%[0-9]+]]:fpr16 = nofpexcept FCVT_H_D [[COPY]], 7
87     ; CHECK-NEXT: $f10_h = COPY [[FCVT_H_D]]
88     ; CHECK-NEXT: PseudoRET implicit $f10_h
89     %0:fprb(s64) = COPY $f10_d
90     %1:fprb(s16) = G_FPTRUNC %0(s64)
91     $f10_h = COPY %1(s16)
92     PseudoRET implicit $f10_h
94 ...