[LLVM][IR] Use splat syntax when printing ConstantExpr based splats. (#116856)
[llvm-project.git] / llvm / test / CodeGen / RISCV / GlobalISel / legalizer / legalize-fptoi-rv32.mir
blobd32b4350793d5b4ff8399d8abaa0c3f7f2fc5a69
1 # NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py
2 # RUN: llc -mtriple=riscv32 -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: [[FPTOSI:%[0-9]+]]:_(s32) = G_FPTOSI [[COPY]](s32)
16     ; CHECK-NEXT: $x10 = COPY [[FPTOSI]](s32)
17     ; CHECK-NEXT: PseudoRET implicit $x10
18     %0:_(s32) = COPY $f10_f
19     %1:_(s1) = G_FPTOSI %0(s32)
20     %2:_(s32) = G_ANYEXT %1(s1)
21     $x10 = COPY %2(s32)
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: [[FPTOUI:%[0-9]+]]:_(s32) = G_FPTOUI [[COPY]](s32)
36     ; CHECK-NEXT: $x10 = COPY [[FPTOUI]](s32)
37     ; CHECK-NEXT: PseudoRET implicit $x10
38     %0:_(s32) = COPY $f10_f
39     %1:_(s1) = G_FPTOUI %0(s32)
40     %2:_(s32) = G_ANYEXT %1(s1)
41     $x10 = COPY %2(s32)
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: [[FPTOSI:%[0-9]+]]:_(s32) = G_FPTOSI [[COPY]](s32)
56     ; CHECK-NEXT: $x10 = COPY [[FPTOSI]](s32)
57     ; CHECK-NEXT: PseudoRET implicit $x10
58     %0:_(s32) = COPY $f10_f
59     %1:_(s8) = G_FPTOSI %0(s32)
60     %2:_(s32) = G_ANYEXT %1(s8)
61     $x10 = COPY %2(s32)
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: [[FPTOUI:%[0-9]+]]:_(s32) = G_FPTOUI [[COPY]](s32)
76     ; CHECK-NEXT: $x10 = COPY [[FPTOUI]](s32)
77     ; CHECK-NEXT: PseudoRET implicit $x10
78     %0:_(s32) = COPY $f10_f
79     %1:_(s8) = G_FPTOUI %0(s32)
80     %2:_(s32) = G_ANYEXT %1(s8)
81     $x10 = COPY %2(s32)
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: [[FPTOSI:%[0-9]+]]:_(s32) = G_FPTOSI [[COPY]](s32)
96     ; CHECK-NEXT: $x10 = COPY [[FPTOSI]](s32)
97     ; CHECK-NEXT: PseudoRET implicit $x10
98     %0:_(s32) = COPY $f10_f
99     %1:_(s16) = G_FPTOSI %0(s32)
100     %2:_(s32) = G_ANYEXT %1(s16)
101     $x10 = COPY %2(s32)
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: [[FPTOUI:%[0-9]+]]:_(s32) = G_FPTOUI [[COPY]](s32)
116     ; CHECK-NEXT: $x10 = COPY [[FPTOUI]](s32)
117     ; CHECK-NEXT: PseudoRET implicit $x10
118     %0:_(s32) = COPY $f10_f
119     %1:_(s16) = G_FPTOUI %0(s32)
120     %2:_(s32) = G_ANYEXT %1(s16)
121     $x10 = COPY %2(s32)
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: [[FPTOSI:%[0-9]+]]:_(s32) = G_FPTOSI [[COPY]](s32)
136     ; CHECK-NEXT: $x10 = COPY [[FPTOSI]](s32)
137     ; CHECK-NEXT: PseudoRET implicit $x10
138     %0:_(s32) = COPY $f10_f
139     %1:_(s32) = G_FPTOSI %0(s32)
140     $x10 = COPY %1(s32)
141     PseudoRET implicit $x10
145 name:            fptoui_s32_s32
146 body:             |
147   bb.1:
148     liveins: $f10_f
150     ; CHECK-LABEL: name: fptoui_s32_s32
151     ; CHECK: liveins: $f10_f
152     ; CHECK-NEXT: {{  $}}
153     ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $f10_f
154     ; CHECK-NEXT: [[FPTOUI:%[0-9]+]]:_(s32) = G_FPTOUI [[COPY]](s32)
155     ; CHECK-NEXT: $x10 = COPY [[FPTOUI]](s32)
156     ; CHECK-NEXT: PseudoRET implicit $x10
157     %0:_(s32) = COPY $f10_f
158     %1:_(s32) = G_FPTOUI %0(s32)
159     $x10 = COPY %1(s32)
160     PseudoRET implicit $x10
164 name:            fptosi_s1_s64
165 body:             |
166   bb.1:
167     liveins: $f10_d
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
184 name:            fptoui_s1_s64
185 body:             |
186   bb.1:
187     liveins: $f10_d
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
204 name:            fptosi_s8_s64
205 body:             |
206   bb.1:
207     liveins: $f10_d
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
224 name:            fptoui_s8_s64
225 body:             |
226   bb.1:
227     liveins: $f10_d
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
244 name:            fptosi_s16_s64
245 body:             |
246   bb.1:
247     liveins: $f10_d
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
264 name:            fptoui_s16_s64
265 body:             |
266   bb.1:
267     liveins: $f10_d
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
284 name:            fptosi_s32_s64
285 body:             |
286   bb.1:
287     liveins: $f10_d
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
303 name:            fptoui_s32_s64
304 body:             |
305   bb.1:
306     liveins: $f10_d
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