Re-land [openmp] Fix warnings when building on Windows with latest MSVC or Clang...
[llvm-project.git] / llvm / test / CodeGen / RISCV / GlobalISel / regbankselect / itofp-rv64.mir
blobe0f039d5983ee8d5eb7d643a70c8777f5f103c8a
1 # NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py
2 # RUN: llc -mtriple=riscv64 -mattr=+d -run-pass=regbankselect \
3 # RUN:   -simplify-mir -verify-machineinstrs %s \
4 # RUN:   -o - | FileCheck %s
6 ---
7 name:            sitofp_s32_s32
8 legalized:       true
9 tracksRegLiveness: true
10 body:             |
11   bb.0:
12     liveins: $x10
14     ; CHECK-LABEL: name: sitofp_s32_s32
15     ; CHECK: liveins: $x10
16     ; CHECK-NEXT: {{  $}}
17     ; CHECK-NEXT: [[COPY:%[0-9]+]]:gprb(s64) = COPY $x10
18     ; CHECK-NEXT: [[TRUNC:%[0-9]+]]:gprb(s32) = G_TRUNC [[COPY]](s64)
19     ; CHECK-NEXT: [[SITOFP:%[0-9]+]]:fprb(s32) = G_SITOFP [[TRUNC]](s32)
20     ; CHECK-NEXT: $f10_f = COPY [[SITOFP]](s32)
21     ; CHECK-NEXT: PseudoRET implicit $f10_f
22     %0:_(s64) = COPY $x10
23     %1:_(s32) = G_TRUNC %0(s64)
24     %2:_(s32) = G_SITOFP %1(s32)
25     $f10_f = COPY %2(s32)
26     PseudoRET implicit $f10_f
28 ...
29 ---
30 name:            uitofp_s32_s32
31 legalized:       true
32 tracksRegLiveness: true
33 body:             |
34   bb.0:
35     liveins: $x10
37     ; CHECK-LABEL: name: uitofp_s32_s32
38     ; CHECK: liveins: $x10
39     ; CHECK-NEXT: {{  $}}
40     ; CHECK-NEXT: [[COPY:%[0-9]+]]:gprb(s64) = COPY $x10
41     ; CHECK-NEXT: [[TRUNC:%[0-9]+]]:gprb(s32) = G_TRUNC [[COPY]](s64)
42     ; CHECK-NEXT: [[UITOFP:%[0-9]+]]:fprb(s32) = G_UITOFP [[TRUNC]](s32)
43     ; CHECK-NEXT: $f10_f = COPY [[UITOFP]](s32)
44     ; CHECK-NEXT: PseudoRET implicit $f10_f
45     %0:_(s64) = COPY $x10
46     %1:_(s32) = G_TRUNC %0(s64)
47     %2:_(s32) = G_UITOFP %1(s32)
48     $f10_f = COPY %2(s32)
49     PseudoRET implicit $f10_f
51 ...
52 ---
53 name:            sitofp_s32_s64
54 legalized:       true
55 tracksRegLiveness: true
56 body:             |
57   bb.0:
58     liveins: $x10
60     ; CHECK-LABEL: name: sitofp_s32_s64
61     ; CHECK: liveins: $x10
62     ; CHECK-NEXT: {{  $}}
63     ; CHECK-NEXT: [[COPY:%[0-9]+]]:gprb(s64) = COPY $x10
64     ; CHECK-NEXT: [[SITOFP:%[0-9]+]]:fprb(s32) = G_SITOFP [[COPY]](s64)
65     ; CHECK-NEXT: $f10_f = COPY [[SITOFP]](s32)
66     ; CHECK-NEXT: PseudoRET implicit $f10_f
67     %0:_(s64) = COPY $x10
68     %1:_(s32) = G_SITOFP %0(s64)
69     $f10_f = COPY %1(s32)
70     PseudoRET implicit $f10_f
72 ...
73 ---
74 name:            uitofp_s32_s64
75 legalized:       true
76 tracksRegLiveness: true
77 body:             |
78   bb.0:
79     liveins: $x10
81     ; CHECK-LABEL: name: uitofp_s32_s64
82     ; CHECK: liveins: $x10
83     ; CHECK-NEXT: {{  $}}
84     ; CHECK-NEXT: [[COPY:%[0-9]+]]:gprb(s64) = COPY $x10
85     ; CHECK-NEXT: [[UITOFP:%[0-9]+]]:fprb(s32) = G_UITOFP [[COPY]](s64)
86     ; CHECK-NEXT: $f10_f = COPY [[UITOFP]](s32)
87     ; CHECK-NEXT: PseudoRET implicit $f10_f
88     %0:_(s64) = COPY $x10
89     %1:_(s32) = G_UITOFP %0(s64)
90     $f10_f = COPY %1(s32)
91     PseudoRET implicit $f10_f
93 ...
94 ---
95 name:            sitofp_s64_s32
96 legalized:       true
97 tracksRegLiveness: true
98 body:             |
99   bb.0:
100     liveins: $x10
102     ; CHECK-LABEL: name: sitofp_s64_s32
103     ; CHECK: liveins: $x10
104     ; CHECK-NEXT: {{  $}}
105     ; CHECK-NEXT: [[COPY:%[0-9]+]]:gprb(s64) = COPY $x10
106     ; CHECK-NEXT: [[TRUNC:%[0-9]+]]:gprb(s32) = G_TRUNC [[COPY]](s64)
107     ; CHECK-NEXT: [[SITOFP:%[0-9]+]]:fprb(s64) = G_SITOFP [[TRUNC]](s32)
108     ; CHECK-NEXT: $f10_d = COPY [[SITOFP]](s64)
109     ; CHECK-NEXT: PseudoRET implicit $f10_d
110     %0:_(s64) = COPY $x10
111     %1:_(s32) = G_TRUNC %0(s64)
112     %2:_(s64) = G_SITOFP %1(s32)
113     $f10_d = COPY %2(s64)
114     PseudoRET implicit $f10_d
118 name:            uitofp_s64_s32
119 legalized:       true
120 tracksRegLiveness: true
121 body:             |
122   bb.0:
123     liveins: $x10
125     ; CHECK-LABEL: name: uitofp_s64_s32
126     ; CHECK: liveins: $x10
127     ; CHECK-NEXT: {{  $}}
128     ; CHECK-NEXT: [[COPY:%[0-9]+]]:gprb(s64) = COPY $x10
129     ; CHECK-NEXT: [[TRUNC:%[0-9]+]]:gprb(s32) = G_TRUNC [[COPY]](s64)
130     ; CHECK-NEXT: [[UITOFP:%[0-9]+]]:fprb(s64) = G_UITOFP [[TRUNC]](s32)
131     ; CHECK-NEXT: $f10_d = COPY [[UITOFP]](s64)
132     ; CHECK-NEXT: PseudoRET implicit $f10_d
133     %0:_(s64) = COPY $x10
134     %1:_(s32) = G_TRUNC %0(s64)
135     %2:_(s64) = G_UITOFP %1(s32)
136     $f10_d = COPY %2(s64)
137     PseudoRET implicit $f10_d
141 name:            sitofp_s64_s64
142 legalized:       true
143 tracksRegLiveness: true
144 body:             |
145   bb.0:
146     liveins: $x10
148     ; CHECK-LABEL: name: sitofp_s64_s64
149     ; CHECK: liveins: $x10
150     ; CHECK-NEXT: {{  $}}
151     ; CHECK-NEXT: [[COPY:%[0-9]+]]:gprb(s64) = COPY $x10
152     ; CHECK-NEXT: [[SITOFP:%[0-9]+]]:fprb(s64) = G_SITOFP [[COPY]](s64)
153     ; CHECK-NEXT: $f10_d = COPY [[SITOFP]](s64)
154     ; CHECK-NEXT: PseudoRET implicit $f10_d
155     %0:_(s64) = COPY $x10
156     %1:_(s64) = G_SITOFP %0(s64)
157     $f10_d = COPY %1(s64)
158     PseudoRET implicit $f10_d
162 name:            uitofp_s64_s64
163 legalized:       true
164 tracksRegLiveness: true
165 body:             |
166   bb.0:
167     liveins: $x10
169     ; CHECK-LABEL: name: uitofp_s64_s64
170     ; CHECK: liveins: $x10
171     ; CHECK-NEXT: {{  $}}
172     ; CHECK-NEXT: [[COPY:%[0-9]+]]:gprb(s64) = COPY $x10
173     ; CHECK-NEXT: [[UITOFP:%[0-9]+]]:fprb(s64) = G_UITOFP [[COPY]](s64)
174     ; CHECK-NEXT: $f10_d = COPY [[UITOFP]](s64)
175     ; CHECK-NEXT: PseudoRET implicit $f10_d
176     %0:_(s64) = COPY $x10
177     %1:_(s64) = G_UITOFP %0(s64)
178     $f10_d = COPY %1(s64)
179     PseudoRET implicit $f10_d