1
1
# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py
2
- # RUN: llc -mtriple=riscv32 -mattr=-d -mattr=-f -run-pass=legalizer %s -o - \
2
+ # RUN: llc -mtriple=riscv32 -mattr=+d -run-pass=legalizer %s -o - \
3
3
# RUN: | FileCheck %s
4
4
5
5
---
@@ -12,12 +12,8 @@ body: |
12
12
; CHECK: liveins: $f10_f
13
13
; CHECK-NEXT: {{ $}}
14
14
; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $f10_f
15
- ; CHECK-NEXT: ADJCALLSTACKDOWN 0, 0, implicit-def $x2, implicit $x2
16
- ; CHECK-NEXT: $x10 = COPY [[COPY]](s32)
17
- ; CHECK-NEXT: PseudoCALL target-flags(riscv-call) &__fixsfsi, csr_ilp32_lp64, implicit-def $x1, implicit $x10, implicit-def $x10
18
- ; CHECK-NEXT: ADJCALLSTACKUP 0, 0, implicit-def $x2, implicit $x2
19
- ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $x10
20
- ; CHECK-NEXT: $x10 = COPY [[COPY1]](s32)
15
+ ; CHECK-NEXT: [[FPTOSI:%[0-9]+]]:_(s32) = G_FPTOSI [[COPY]](s32)
16
+ ; CHECK-NEXT: $x10 = COPY [[FPTOSI]](s32)
21
17
; CHECK-NEXT: PseudoRET implicit $x10
22
18
%0:_(s32) = COPY $f10_f
23
19
%1:_(s1) = G_FPTOSI %0(s32)
@@ -36,12 +32,8 @@ body: |
36
32
; CHECK: liveins: $f10_f
37
33
; CHECK-NEXT: {{ $}}
38
34
; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $f10_f
39
- ; CHECK-NEXT: ADJCALLSTACKDOWN 0, 0, implicit-def $x2, implicit $x2
40
- ; CHECK-NEXT: $x10 = COPY [[COPY]](s32)
41
- ; CHECK-NEXT: PseudoCALL target-flags(riscv-call) &__fixunssfsi, csr_ilp32_lp64, implicit-def $x1, implicit $x10, implicit-def $x10
42
- ; CHECK-NEXT: ADJCALLSTACKUP 0, 0, implicit-def $x2, implicit $x2
43
- ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $x10
44
- ; CHECK-NEXT: $x10 = COPY [[COPY1]](s32)
35
+ ; CHECK-NEXT: [[FPTOUI:%[0-9]+]]:_(s32) = G_FPTOUI [[COPY]](s32)
36
+ ; CHECK-NEXT: $x10 = COPY [[FPTOUI]](s32)
45
37
; CHECK-NEXT: PseudoRET implicit $x10
46
38
%0:_(s32) = COPY $f10_f
47
39
%1:_(s1) = G_FPTOUI %0(s32)
@@ -60,12 +52,8 @@ body: |
60
52
; CHECK: liveins: $f10_f
61
53
; CHECK-NEXT: {{ $}}
62
54
; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $f10_f
63
- ; CHECK-NEXT: ADJCALLSTACKDOWN 0, 0, implicit-def $x2, implicit $x2
64
- ; CHECK-NEXT: $x10 = COPY [[COPY]](s32)
65
- ; CHECK-NEXT: PseudoCALL target-flags(riscv-call) &__fixsfsi, csr_ilp32_lp64, implicit-def $x1, implicit $x10, implicit-def $x10
66
- ; CHECK-NEXT: ADJCALLSTACKUP 0, 0, implicit-def $x2, implicit $x2
67
- ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $x10
68
- ; CHECK-NEXT: $x10 = COPY [[COPY1]](s32)
55
+ ; CHECK-NEXT: [[FPTOSI:%[0-9]+]]:_(s32) = G_FPTOSI [[COPY]](s32)
56
+ ; CHECK-NEXT: $x10 = COPY [[FPTOSI]](s32)
69
57
; CHECK-NEXT: PseudoRET implicit $x10
70
58
%0:_(s32) = COPY $f10_f
71
59
%1:_(s8) = G_FPTOSI %0(s32)
@@ -84,12 +72,8 @@ body: |
84
72
; CHECK: liveins: $f10_f
85
73
; CHECK-NEXT: {{ $}}
86
74
; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $f10_f
87
- ; CHECK-NEXT: ADJCALLSTACKDOWN 0, 0, implicit-def $x2, implicit $x2
88
- ; CHECK-NEXT: $x10 = COPY [[COPY]](s32)
89
- ; CHECK-NEXT: PseudoCALL target-flags(riscv-call) &__fixunssfsi, csr_ilp32_lp64, implicit-def $x1, implicit $x10, implicit-def $x10
90
- ; CHECK-NEXT: ADJCALLSTACKUP 0, 0, implicit-def $x2, implicit $x2
91
- ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $x10
92
- ; CHECK-NEXT: $x10 = COPY [[COPY1]](s32)
75
+ ; CHECK-NEXT: [[FPTOUI:%[0-9]+]]:_(s32) = G_FPTOUI [[COPY]](s32)
76
+ ; CHECK-NEXT: $x10 = COPY [[FPTOUI]](s32)
93
77
; CHECK-NEXT: PseudoRET implicit $x10
94
78
%0:_(s32) = COPY $f10_f
95
79
%1:_(s8) = G_FPTOUI %0(s32)
@@ -108,12 +92,8 @@ body: |
108
92
; CHECK: liveins: $f10_f
109
93
; CHECK-NEXT: {{ $}}
110
94
; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $f10_f
111
- ; CHECK-NEXT: ADJCALLSTACKDOWN 0, 0, implicit-def $x2, implicit $x2
112
- ; CHECK-NEXT: $x10 = COPY [[COPY]](s32)
113
- ; CHECK-NEXT: PseudoCALL target-flags(riscv-call) &__fixsfsi, csr_ilp32_lp64, implicit-def $x1, implicit $x10, implicit-def $x10
114
- ; CHECK-NEXT: ADJCALLSTACKUP 0, 0, implicit-def $x2, implicit $x2
115
- ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $x10
116
- ; CHECK-NEXT: $x10 = COPY [[COPY1]](s32)
95
+ ; CHECK-NEXT: [[FPTOSI:%[0-9]+]]:_(s32) = G_FPTOSI [[COPY]](s32)
96
+ ; CHECK-NEXT: $x10 = COPY [[FPTOSI]](s32)
117
97
; CHECK-NEXT: PseudoRET implicit $x10
118
98
%0:_(s32) = COPY $f10_f
119
99
%1:_(s16) = G_FPTOSI %0(s32)
@@ -132,12 +112,8 @@ body: |
132
112
; CHECK: liveins: $f10_f
133
113
; CHECK-NEXT: {{ $}}
134
114
; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $f10_f
135
- ; CHECK-NEXT: ADJCALLSTACKDOWN 0, 0, implicit-def $x2, implicit $x2
136
- ; CHECK-NEXT: $x10 = COPY [[COPY]](s32)
137
- ; CHECK-NEXT: PseudoCALL target-flags(riscv-call) &__fixunssfsi, csr_ilp32_lp64, implicit-def $x1, implicit $x10, implicit-def $x10
138
- ; CHECK-NEXT: ADJCALLSTACKUP 0, 0, implicit-def $x2, implicit $x2
139
- ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $x10
140
- ; CHECK-NEXT: $x10 = COPY [[COPY1]](s32)
115
+ ; CHECK-NEXT: [[FPTOUI:%[0-9]+]]:_(s32) = G_FPTOUI [[COPY]](s32)
116
+ ; CHECK-NEXT: $x10 = COPY [[FPTOUI]](s32)
141
117
; CHECK-NEXT: PseudoRET implicit $x10
142
118
%0:_(s32) = COPY $f10_f
143
119
%1:_(s16) = G_FPTOUI %0(s32)
@@ -156,12 +132,8 @@ body: |
156
132
; CHECK: liveins: $f10_f
157
133
; CHECK-NEXT: {{ $}}
158
134
; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $f10_f
159
- ; CHECK-NEXT: ADJCALLSTACKDOWN 0, 0, implicit-def $x2, implicit $x2
160
- ; CHECK-NEXT: $x10 = COPY [[COPY]](s32)
161
- ; CHECK-NEXT: PseudoCALL target-flags(riscv-call) &__fixsfsi, csr_ilp32_lp64, implicit-def $x1, implicit $x10, implicit-def $x10
162
- ; CHECK-NEXT: ADJCALLSTACKUP 0, 0, implicit-def $x2, implicit $x2
163
- ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $x10
164
- ; CHECK-NEXT: $x10 = COPY [[COPY1]](s32)
135
+ ; CHECK-NEXT: [[FPTOSI:%[0-9]+]]:_(s32) = G_FPTOSI [[COPY]](s32)
136
+ ; CHECK-NEXT: $x10 = COPY [[FPTOSI]](s32)
165
137
; CHECK-NEXT: PseudoRET implicit $x10
166
138
%0:_(s32) = COPY $f10_f
167
139
%1:_(s32) = G_FPTOSI %0(s32)
@@ -179,16 +151,170 @@ body: |
179
151
; CHECK: liveins: $f10_f
180
152
; CHECK-NEXT: {{ $}}
181
153
; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $f10_f
182
- ; CHECK-NEXT: ADJCALLSTACKDOWN 0, 0, implicit-def $x2, implicit $x2
183
- ; CHECK-NEXT: $x10 = COPY [[COPY]](s32)
184
- ; CHECK-NEXT: PseudoCALL target-flags(riscv-call) &__fixunssfsi, csr_ilp32_lp64, implicit-def $x1, implicit $x10, implicit-def $x10
185
- ; CHECK-NEXT: ADJCALLSTACKUP 0, 0, implicit-def $x2, implicit $x2
186
- ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $x10
187
- ; CHECK-NEXT: $x10 = COPY [[COPY1]](s32)
154
+ ; CHECK-NEXT: [[FPTOUI:%[0-9]+]]:_(s32) = G_FPTOUI [[COPY]](s32)
155
+ ; CHECK-NEXT: $x10 = COPY [[FPTOUI]](s32)
188
156
; CHECK-NEXT: PseudoRET implicit $x10
189
157
%0:_(s32) = COPY $f10_f
190
158
%1:_(s32) = G_FPTOUI %0(s32)
191
159
$x10 = COPY %1(s32)
192
160
PseudoRET implicit $x10
193
161
194
162
...
163
+ ---
164
+ name : fptosi_s1_s64
165
+ body : |
166
+ bb.1:
167
+ liveins: $f10_d
168
+
169
+ ; CHECK-LABEL: name: fptosi_s1_s64
170
+ ; CHECK: liveins: $f10_d
171
+ ; CHECK-NEXT: {{ $}}
172
+ ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s64) = COPY $f10_d
173
+ ; CHECK-NEXT: [[FPTOSI:%[0-9]+]]:_(s32) = G_FPTOSI [[COPY]](s64)
174
+ ; CHECK-NEXT: $x10 = COPY [[FPTOSI]](s32)
175
+ ; CHECK-NEXT: PseudoRET implicit $x10
176
+ %0:_(s64) = COPY $f10_d
177
+ %1:_(s1) = G_FPTOSI %0(s64)
178
+ %2:_(s32) = G_ANYEXT %1(s1)
179
+ $x10 = COPY %2(s32)
180
+ PseudoRET implicit $x10
181
+
182
+ ...
183
+ ---
184
+ name : fptoui_s1_s64
185
+ body : |
186
+ bb.1:
187
+ liveins: $f10_d
188
+
189
+ ; CHECK-LABEL: name: fptoui_s1_s64
190
+ ; CHECK: liveins: $f10_d
191
+ ; CHECK-NEXT: {{ $}}
192
+ ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s64) = COPY $f10_d
193
+ ; CHECK-NEXT: [[FPTOUI:%[0-9]+]]:_(s32) = G_FPTOUI [[COPY]](s64)
194
+ ; CHECK-NEXT: $x10 = COPY [[FPTOUI]](s32)
195
+ ; CHECK-NEXT: PseudoRET implicit $x10
196
+ %0:_(s64) = COPY $f10_d
197
+ %1:_(s1) = G_FPTOUI %0(s64)
198
+ %2:_(s32) = G_ANYEXT %1(s1)
199
+ $x10 = COPY %2(s32)
200
+ PseudoRET implicit $x10
201
+
202
+ ...
203
+ ---
204
+ name : fptosi_s8_s64
205
+ body : |
206
+ bb.1:
207
+ liveins: $f10_d
208
+
209
+ ; CHECK-LABEL: name: fptosi_s8_s64
210
+ ; CHECK: liveins: $f10_d
211
+ ; CHECK-NEXT: {{ $}}
212
+ ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s64) = COPY $f10_d
213
+ ; CHECK-NEXT: [[FPTOSI:%[0-9]+]]:_(s32) = G_FPTOSI [[COPY]](s64)
214
+ ; CHECK-NEXT: $x10 = COPY [[FPTOSI]](s32)
215
+ ; CHECK-NEXT: PseudoRET implicit $x10
216
+ %0:_(s64) = COPY $f10_d
217
+ %1:_(s8) = G_FPTOSI %0(s64)
218
+ %2:_(s32) = G_ANYEXT %1(s8)
219
+ $x10 = COPY %2(s32)
220
+ PseudoRET implicit $x10
221
+
222
+ ...
223
+ ---
224
+ name : fptoui_s8_s64
225
+ body : |
226
+ bb.1:
227
+ liveins: $f10_d
228
+
229
+ ; CHECK-LABEL: name: fptoui_s8_s64
230
+ ; CHECK: liveins: $f10_d
231
+ ; CHECK-NEXT: {{ $}}
232
+ ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s64) = COPY $f10_d
233
+ ; CHECK-NEXT: [[FPTOUI:%[0-9]+]]:_(s32) = G_FPTOUI [[COPY]](s64)
234
+ ; CHECK-NEXT: $x10 = COPY [[FPTOUI]](s32)
235
+ ; CHECK-NEXT: PseudoRET implicit $x10
236
+ %0:_(s64) = COPY $f10_d
237
+ %1:_(s8) = G_FPTOUI %0(s64)
238
+ %2:_(s32) = G_ANYEXT %1(s8)
239
+ $x10 = COPY %2(s32)
240
+ PseudoRET implicit $x10
241
+
242
+ ...
243
+ ---
244
+ name : fptosi_s16_s64
245
+ body : |
246
+ bb.1:
247
+ liveins: $f10_d
248
+
249
+ ; CHECK-LABEL: name: fptosi_s16_s64
250
+ ; CHECK: liveins: $f10_d
251
+ ; CHECK-NEXT: {{ $}}
252
+ ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s64) = COPY $f10_d
253
+ ; CHECK-NEXT: [[FPTOSI:%[0-9]+]]:_(s32) = G_FPTOSI [[COPY]](s64)
254
+ ; CHECK-NEXT: $x10 = COPY [[FPTOSI]](s32)
255
+ ; CHECK-NEXT: PseudoRET implicit $x10
256
+ %0:_(s64) = COPY $f10_d
257
+ %1:_(s16) = G_FPTOSI %0(s64)
258
+ %2:_(s32) = G_ANYEXT %1(s16)
259
+ $x10 = COPY %2(s32)
260
+ PseudoRET implicit $x10
261
+
262
+ ...
263
+ ---
264
+ name : fptoui_s16_s64
265
+ body : |
266
+ bb.1:
267
+ liveins: $f10_d
268
+
269
+ ; CHECK-LABEL: name: fptoui_s16_s64
270
+ ; CHECK: liveins: $f10_d
271
+ ; CHECK-NEXT: {{ $}}
272
+ ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s64) = COPY $f10_d
273
+ ; CHECK-NEXT: [[FPTOUI:%[0-9]+]]:_(s32) = G_FPTOUI [[COPY]](s64)
274
+ ; CHECK-NEXT: $x10 = COPY [[FPTOUI]](s32)
275
+ ; CHECK-NEXT: PseudoRET implicit $x10
276
+ %0:_(s64) = COPY $f10_d
277
+ %1:_(s16) = G_FPTOUI %0(s64)
278
+ %2:_(s32) = G_ANYEXT %1(s16)
279
+ $x10 = COPY %2(s32)
280
+ PseudoRET implicit $x10
281
+
282
+ ...
283
+ ---
284
+ name : fptosi_s32_s64
285
+ body : |
286
+ bb.1:
287
+ liveins: $f10_d
288
+
289
+ ; CHECK-LABEL: name: fptosi_s32_s64
290
+ ; CHECK: liveins: $f10_d
291
+ ; CHECK-NEXT: {{ $}}
292
+ ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s64) = COPY $f10_d
293
+ ; CHECK-NEXT: [[FPTOSI:%[0-9]+]]:_(s32) = G_FPTOSI [[COPY]](s64)
294
+ ; CHECK-NEXT: $x10 = COPY [[FPTOSI]](s32)
295
+ ; CHECK-NEXT: PseudoRET implicit $x10
296
+ %0:_(s64) = COPY $f10_d
297
+ %1:_(s32) = G_FPTOSI %0(s64)
298
+ $x10 = COPY %1(s32)
299
+ PseudoRET implicit $x10
300
+
301
+ ...
302
+ ---
303
+ name : fptoui_s32_s64
304
+ body : |
305
+ bb.1:
306
+ liveins: $f10_d
307
+
308
+ ; CHECK-LABEL: name: fptoui_s32_s64
309
+ ; CHECK: liveins: $f10_d
310
+ ; CHECK-NEXT: {{ $}}
311
+ ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s64) = COPY $f10_d
312
+ ; CHECK-NEXT: [[FPTOUI:%[0-9]+]]:_(s32) = G_FPTOUI [[COPY]](s64)
313
+ ; CHECK-NEXT: $x10 = COPY [[FPTOUI]](s32)
314
+ ; CHECK-NEXT: PseudoRET implicit $x10
315
+ %0:_(s64) = COPY $f10_d
316
+ %1:_(s32) = G_FPTOUI %0(s64)
317
+ $x10 = COPY %1(s32)
318
+ PseudoRET implicit $x10
319
+
320
+ ...
0 commit comments