[ORC] Fix bug in source file name finding in DebuggerSupportPlugin.
[llvm-project.git] / llvm / test / CodeGen / RISCV / GlobalISel / legalizer / legalize-fptoi-rv64.mir
blob657d3a43d1239c25a39b8ef82f06c4760192889c
1 # NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py
2 # RUN: llc -mtriple=riscv64 -mattr=+d -run-pass=legalizer %s -o - \
3 # RUN: | FileCheck %s
5 ---
6 name:            fptosi_s1_s32
7 body:             |
8   bb.1:
9     liveins: $f10_f
11     ; CHECK-LABEL: name: fptosi_s1_s32
12     ; CHECK: liveins: $f10_f
13     ; CHECK-NEXT: {{  $}}
14     ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $f10_f
15     ; CHECK-NEXT: [[FCVT_W_RV64_:%[0-9]+]]:_(s64) = G_FCVT_W_RV64 [[COPY]](s32), 1
16     ; CHECK-NEXT: $x10 = COPY [[FCVT_W_RV64_]](s64)
17     ; CHECK-NEXT: PseudoRET implicit $x10
18     %0:_(s32) = COPY $f10_f
19     %1:_(s1) = G_FPTOSI %0(s32)
20     %2:_(s64) = G_ANYEXT %1(s1)
21     $x10 = COPY %2(s64)
22     PseudoRET implicit $x10
24 ...
25 ---
26 name:            fptoui_s1_s32
27 body:             |
28   bb.1:
29     liveins: $f10_f
31     ; CHECK-LABEL: name: fptoui_s1_s32
32     ; CHECK: liveins: $f10_f
33     ; CHECK-NEXT: {{  $}}
34     ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $f10_f
35     ; CHECK-NEXT: [[FCVT_WU_RV64_:%[0-9]+]]:_(s64) = G_FCVT_WU_RV64 [[COPY]](s32), 1
36     ; CHECK-NEXT: $x10 = COPY [[FCVT_WU_RV64_]](s64)
37     ; CHECK-NEXT: PseudoRET implicit $x10
38     %0:_(s32) = COPY $f10_f
39     %1:_(s1) = G_FPTOUI %0(s32)
40     %2:_(s64) = G_ANYEXT %1(s1)
41     $x10 = COPY %2(s64)
42     PseudoRET implicit $x10
44 ...
45 ---
46 name:            fptosi_s8_s32
47 body:             |
48   bb.1:
49     liveins: $f10_f
51     ; CHECK-LABEL: name: fptosi_s8_s32
52     ; CHECK: liveins: $f10_f
53     ; CHECK-NEXT: {{  $}}
54     ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $f10_f
55     ; CHECK-NEXT: [[FCVT_W_RV64_:%[0-9]+]]:_(s64) = G_FCVT_W_RV64 [[COPY]](s32), 1
56     ; CHECK-NEXT: $x10 = COPY [[FCVT_W_RV64_]](s64)
57     ; CHECK-NEXT: PseudoRET implicit $x10
58     %0:_(s32) = COPY $f10_f
59     %1:_(s8) = G_FPTOSI %0(s32)
60     %2:_(s64) = G_ANYEXT %1(s8)
61     $x10 = COPY %2(s64)
62     PseudoRET implicit $x10
64 ...
65 ---
66 name:            fptoui_s8_s32
67 body:             |
68   bb.1:
69     liveins: $f10_f
71     ; CHECK-LABEL: name: fptoui_s8_s32
72     ; CHECK: liveins: $f10_f
73     ; CHECK-NEXT: {{  $}}
74     ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $f10_f
75     ; CHECK-NEXT: [[FCVT_WU_RV64_:%[0-9]+]]:_(s64) = G_FCVT_WU_RV64 [[COPY]](s32), 1
76     ; CHECK-NEXT: $x10 = COPY [[FCVT_WU_RV64_]](s64)
77     ; CHECK-NEXT: PseudoRET implicit $x10
78     %0:_(s32) = COPY $f10_f
79     %1:_(s8) = G_FPTOUI %0(s32)
80     %2:_(s64) = G_ANYEXT %1(s8)
81     $x10 = COPY %2(s64)
82     PseudoRET implicit $x10
84 ...
85 ---
86 name:            fptosi_s16_s32
87 body:             |
88   bb.1:
89     liveins: $f10_f
91     ; CHECK-LABEL: name: fptosi_s16_s32
92     ; CHECK: liveins: $f10_f
93     ; CHECK-NEXT: {{  $}}
94     ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $f10_f
95     ; CHECK-NEXT: [[FCVT_W_RV64_:%[0-9]+]]:_(s64) = G_FCVT_W_RV64 [[COPY]](s32), 1
96     ; CHECK-NEXT: $x10 = COPY [[FCVT_W_RV64_]](s64)
97     ; CHECK-NEXT: PseudoRET implicit $x10
98     %0:_(s32) = COPY $f10_f
99     %1:_(s16) = G_FPTOSI %0(s32)
100     %2:_(s64) = G_ANYEXT %1(s16)
101     $x10 = COPY %2(s64)
102     PseudoRET implicit $x10
106 name:            fptoui_s16_s32
107 body:             |
108   bb.1:
109     liveins: $f10_f
111     ; CHECK-LABEL: name: fptoui_s16_s32
112     ; CHECK: liveins: $f10_f
113     ; CHECK-NEXT: {{  $}}
114     ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $f10_f
115     ; CHECK-NEXT: [[FCVT_WU_RV64_:%[0-9]+]]:_(s64) = G_FCVT_WU_RV64 [[COPY]](s32), 1
116     ; CHECK-NEXT: $x10 = COPY [[FCVT_WU_RV64_]](s64)
117     ; CHECK-NEXT: PseudoRET implicit $x10
118     %0:_(s32) = COPY $f10_f
119     %1:_(s16) = G_FPTOUI %0(s32)
120     %2:_(s64) = G_ANYEXT %1(s16)
121     $x10 = COPY %2(s64)
122     PseudoRET implicit $x10
126 name:            fptosi_s32_s32
127 body:             |
128   bb.1:
129     liveins: $f10_f
131     ; CHECK-LABEL: name: fptosi_s32_s32
132     ; CHECK: liveins: $f10_f
133     ; CHECK-NEXT: {{  $}}
134     ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $f10_f
135     ; CHECK-NEXT: [[FCVT_W_RV64_:%[0-9]+]]:_(s64) = G_FCVT_W_RV64 [[COPY]](s32), 1
136     ; CHECK-NEXT: $x10 = COPY [[FCVT_W_RV64_]](s64)
137     ; CHECK-NEXT: PseudoRET implicit $x10
138     %0:_(s32) = COPY $f10_f
139     %1:_(s32) = G_FPTOSI %0(s32)
140     %2:_(s64) = G_ANYEXT %1(s32)
141     $x10 = COPY %2(s64)
142     PseudoRET implicit $x10
146 name:            fptoui_s32_s32
147 body:             |
148   bb.1:
149     liveins: $f10_f
151     ; CHECK-LABEL: name: fptoui_s32_s32
152     ; CHECK: liveins: $f10_f
153     ; CHECK-NEXT: {{  $}}
154     ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $f10_f
155     ; CHECK-NEXT: [[FCVT_WU_RV64_:%[0-9]+]]:_(s64) = G_FCVT_WU_RV64 [[COPY]](s32), 1
156     ; CHECK-NEXT: $x10 = COPY [[FCVT_WU_RV64_]](s64)
157     ; CHECK-NEXT: PseudoRET implicit $x10
158     %0:_(s32) = COPY $f10_f
159     %1:_(s32) = G_FPTOUI %0(s32)
160     %2:_(s64) = G_ANYEXT %1(s32)
161     $x10 = COPY %2(s64)
162     PseudoRET implicit $x10
166 name:            fptosi_s64_s32
167 body:             |
168   bb.1:
169     liveins: $f10_f
171     ; CHECK-LABEL: name: fptosi_s64_s32
172     ; CHECK: liveins: $f10_f
173     ; CHECK-NEXT: {{  $}}
174     ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $f10_f
175     ; CHECK-NEXT: [[FPTOSI:%[0-9]+]]:_(s64) = G_FPTOSI [[COPY]](s32)
176     ; CHECK-NEXT: $x10 = COPY [[FPTOSI]](s64)
177     ; CHECK-NEXT: PseudoRET implicit $x10
178     %0:_(s32) = COPY $f10_f
179     %1:_(s64) = G_FPTOSI %0(s32)
180     $x10 = COPY %1(s64)
181     PseudoRET implicit $x10
185 name:            fptoui_s64_s32
186 body:             |
187   bb.1:
188     liveins: $f10_f
190     ; CHECK-LABEL: name: fptoui_s64_s32
191     ; CHECK: liveins: $f10_f
192     ; CHECK-NEXT: {{  $}}
193     ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $f10_f
194     ; CHECK-NEXT: [[FPTOUI:%[0-9]+]]:_(s64) = G_FPTOUI [[COPY]](s32)
195     ; CHECK-NEXT: $x10 = COPY [[FPTOUI]](s64)
196     ; CHECK-NEXT: PseudoRET implicit $x10
197     %0:_(s32) = COPY $f10_f
198     %1:_(s64) = G_FPTOUI %0(s32)
199     $x10 = COPY %1(s64)
200     PseudoRET implicit $x10
204 name:            fptosi_s1_s64
205 body:             |
206   bb.1:
207     liveins: $f10_d
209     ; CHECK-LABEL: name: fptosi_s1_s64
210     ; CHECK: liveins: $f10_d
211     ; CHECK-NEXT: {{  $}}
212     ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s64) = COPY $f10_d
213     ; CHECK-NEXT: [[FCVT_W_RV64_:%[0-9]+]]:_(s64) = G_FCVT_W_RV64 [[COPY]](s64), 1
214     ; CHECK-NEXT: $x10 = COPY [[FCVT_W_RV64_]](s64)
215     ; CHECK-NEXT: PseudoRET implicit $x10
216     %0:_(s64) = COPY $f10_d
217     %1:_(s1) = G_FPTOSI %0(s64)
218     %2:_(s64) = G_ANYEXT %1(s1)
219     $x10 = COPY %2(s64)
220     PseudoRET implicit $x10
224 name:            fptoui_s1_s64
225 body:             |
226   bb.1:
227     liveins: $f10_d
229     ; CHECK-LABEL: name: fptoui_s1_s64
230     ; CHECK: liveins: $f10_d
231     ; CHECK-NEXT: {{  $}}
232     ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s64) = COPY $f10_d
233     ; CHECK-NEXT: [[FCVT_WU_RV64_:%[0-9]+]]:_(s64) = G_FCVT_WU_RV64 [[COPY]](s64), 1
234     ; CHECK-NEXT: $x10 = COPY [[FCVT_WU_RV64_]](s64)
235     ; CHECK-NEXT: PseudoRET implicit $x10
236     %0:_(s64) = COPY $f10_d
237     %1:_(s1) = G_FPTOUI %0(s64)
238     %2:_(s64) = G_ANYEXT %1(s1)
239     $x10 = COPY %2(s64)
240     PseudoRET implicit $x10
244 name:            fptosi_s8_s64
245 body:             |
246   bb.1:
247     liveins: $f10_d
249     ; CHECK-LABEL: name: fptosi_s8_s64
250     ; CHECK: liveins: $f10_d
251     ; CHECK-NEXT: {{  $}}
252     ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s64) = COPY $f10_d
253     ; CHECK-NEXT: [[FCVT_W_RV64_:%[0-9]+]]:_(s64) = G_FCVT_W_RV64 [[COPY]](s64), 1
254     ; CHECK-NEXT: $x10 = COPY [[FCVT_W_RV64_]](s64)
255     ; CHECK-NEXT: PseudoRET implicit $x10
256     %0:_(s64) = COPY $f10_d
257     %1:_(s8) = G_FPTOSI %0(s64)
258     %2:_(s64) = G_ANYEXT %1(s8)
259     $x10 = COPY %2(s64)
260     PseudoRET implicit $x10
264 name:            fptoui_s8_s64
265 body:             |
266   bb.1:
267     liveins: $f10_d
269     ; CHECK-LABEL: name: fptoui_s8_s64
270     ; CHECK: liveins: $f10_d
271     ; CHECK-NEXT: {{  $}}
272     ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s64) = COPY $f10_d
273     ; CHECK-NEXT: [[FCVT_WU_RV64_:%[0-9]+]]:_(s64) = G_FCVT_WU_RV64 [[COPY]](s64), 1
274     ; CHECK-NEXT: $x10 = COPY [[FCVT_WU_RV64_]](s64)
275     ; CHECK-NEXT: PseudoRET implicit $x10
276     %0:_(s64) = COPY $f10_d
277     %1:_(s8) = G_FPTOUI %0(s64)
278     %2:_(s64) = G_ANYEXT %1(s8)
279     $x10 = COPY %2(s64)
280     PseudoRET implicit $x10
284 name:            fptosi_s16_s64
285 body:             |
286   bb.1:
287     liveins: $f10_d
289     ; CHECK-LABEL: name: fptosi_s16_s64
290     ; CHECK: liveins: $f10_d
291     ; CHECK-NEXT: {{  $}}
292     ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s64) = COPY $f10_d
293     ; CHECK-NEXT: [[FCVT_W_RV64_:%[0-9]+]]:_(s64) = G_FCVT_W_RV64 [[COPY]](s64), 1
294     ; CHECK-NEXT: $x10 = COPY [[FCVT_W_RV64_]](s64)
295     ; CHECK-NEXT: PseudoRET implicit $x10
296     %0:_(s64) = COPY $f10_d
297     %1:_(s16) = G_FPTOSI %0(s64)
298     %2:_(s64) = G_ANYEXT %1(s16)
299     $x10 = COPY %2(s64)
300     PseudoRET implicit $x10
304 name:            fptoui_s16_s64
305 body:             |
306   bb.1:
307     liveins: $f10_d
309     ; CHECK-LABEL: name: fptoui_s16_s64
310     ; CHECK: liveins: $f10_d
311     ; CHECK-NEXT: {{  $}}
312     ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s64) = COPY $f10_d
313     ; CHECK-NEXT: [[FCVT_WU_RV64_:%[0-9]+]]:_(s64) = G_FCVT_WU_RV64 [[COPY]](s64), 1
314     ; CHECK-NEXT: $x10 = COPY [[FCVT_WU_RV64_]](s64)
315     ; CHECK-NEXT: PseudoRET implicit $x10
316     %0:_(s64) = COPY $f10_d
317     %1:_(s16) = G_FPTOUI %0(s64)
318     %2:_(s64) = G_ANYEXT %1(s16)
319     $x10 = COPY %2(s64)
320     PseudoRET implicit $x10
324 name:            fptosi_s32_s64
325 body:             |
326   bb.1:
327     liveins: $f10_d
329     ; CHECK-LABEL: name: fptosi_s32_s64
330     ; CHECK: liveins: $f10_d
331     ; CHECK-NEXT: {{  $}}
332     ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s64) = COPY $f10_d
333     ; CHECK-NEXT: [[FCVT_W_RV64_:%[0-9]+]]:_(s64) = G_FCVT_W_RV64 [[COPY]](s64), 1
334     ; CHECK-NEXT: $x10 = COPY [[FCVT_W_RV64_]](s64)
335     ; CHECK-NEXT: PseudoRET implicit $x10
336     %0:_(s64) = COPY $f10_d
337     %1:_(s32) = G_FPTOSI %0(s64)
338     %2:_(s64) = G_ANYEXT %1(s32)
339     $x10 = COPY %2(s64)
340     PseudoRET implicit $x10
344 name:            fptoui_s32_s64
345 body:             |
346   bb.1:
347     liveins: $f10_d
349     ; CHECK-LABEL: name: fptoui_s32_s64
350     ; CHECK: liveins: $f10_d
351     ; CHECK-NEXT: {{  $}}
352     ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s64) = COPY $f10_d
353     ; CHECK-NEXT: [[FCVT_WU_RV64_:%[0-9]+]]:_(s64) = G_FCVT_WU_RV64 [[COPY]](s64), 1
354     ; CHECK-NEXT: $x10 = COPY [[FCVT_WU_RV64_]](s64)
355     ; CHECK-NEXT: PseudoRET implicit $x10
356     %0:_(s64) = COPY $f10_d
357     %1:_(s32) = G_FPTOUI %0(s64)
358     %2:_(s64) = G_ANYEXT %1(s32)
359     $x10 = COPY %2(s64)
360     PseudoRET implicit $x10
364 name:            fptosi_s64_s64
365 body:             |
366   bb.1:
367     liveins: $f10_d
369     ; CHECK-LABEL: name: fptosi_s64_s64
370     ; CHECK: liveins: $f10_d
371     ; CHECK-NEXT: {{  $}}
372     ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s64) = COPY $f10_d
373     ; CHECK-NEXT: [[FPTOSI:%[0-9]+]]:_(s64) = G_FPTOSI [[COPY]](s64)
374     ; CHECK-NEXT: $x10 = COPY [[FPTOSI]](s64)
375     ; CHECK-NEXT: PseudoRET implicit $x10
376     %0:_(s64) = COPY $f10_d
377     %1:_(s64) = G_FPTOSI %0(s64)
378     $x10 = COPY %1(s64)
379     PseudoRET implicit $x10
383 name:            fptoui_s64_s64
384 body:             |
385   bb.1:
386     liveins: $f10_d
388     ; CHECK-LABEL: name: fptoui_s64_s64
389     ; CHECK: liveins: $f10_d
390     ; CHECK-NEXT: {{  $}}
391     ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s64) = COPY $f10_d
392     ; CHECK-NEXT: [[FPTOUI:%[0-9]+]]:_(s64) = G_FPTOUI [[COPY]](s64)
393     ; CHECK-NEXT: $x10 = COPY [[FPTOUI]](s64)
394     ; CHECK-NEXT: PseudoRET implicit $x10
395     %0:_(s64) = COPY $f10_d
396     %1:_(s64) = G_FPTOUI %0(s64)
397     $x10 = COPY %1(s64)
398     PseudoRET implicit $x10