[ORC] Add std::tuple support to SimplePackedSerialization.
[llvm-project.git] / llvm / test / CodeGen / AArch64 / GlobalISel / legalize-fptoi.mir
blob6b7b6176d01665136d3c8234ddaeb5a94b4c6fda
1 # NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py
2 # RUN: llc -mtriple=aarch64-- -O0 -run-pass=legalizer %s -o - | FileCheck %s
4 ---
5 name:            test_fptosi_s32_s32
6 body: |
7   bb.0:
8     liveins: $w0
9     ; CHECK-LABEL: name: test_fptosi_s32_s32
10     ; CHECK: [[DEF:%[0-9]+]]:_(s32) = G_IMPLICIT_DEF
11     ; CHECK: [[FPTOSI:%[0-9]+]]:_(s32) = G_FPTOSI [[DEF]](s32)
12     ; CHECK: $w0 = COPY [[FPTOSI]](s32)
13     %0:_(s32) = G_IMPLICIT_DEF
14     %1:_(s32) = G_FPTOSI %0
15     $w0 = COPY %1
16 ...
18 ---
19 name:            test_fptoui_s32_s32
20 body: |
21   bb.0:
22     liveins: $w0
23     ; CHECK-LABEL: name: test_fptoui_s32_s32
24     ; CHECK: [[DEF:%[0-9]+]]:_(s32) = G_IMPLICIT_DEF
25     ; CHECK: [[FPTOUI:%[0-9]+]]:_(s32) = G_FPTOUI [[DEF]](s32)
26     ; CHECK: $w0 = COPY [[FPTOUI]](s32)
27     %0:_(s32) = G_IMPLICIT_DEF
28     %1:_(s32) = G_FPTOUI %0
29     $w0 = COPY %1
30 ...
32 ---
33 name:            test_fptosi_s32_s64
34 body: |
35   bb.0:
36     liveins: $x0
37     ; CHECK-LABEL: name: test_fptosi_s32_s64
38     ; CHECK: [[DEF:%[0-9]+]]:_(s32) = G_IMPLICIT_DEF
39     ; CHECK: [[FPTOSI:%[0-9]+]]:_(s32) = G_FPTOSI [[DEF]](s32)
40     ; CHECK: $w0 = COPY [[FPTOSI]](s32)
41     %0:_(s32) = G_IMPLICIT_DEF
42     %1:_(s32) = G_FPTOSI %0
43     $w0 = COPY %1
44 ...
46 ---
47 name:            test_fptoui_s32_s64
48 body: |
49   bb.0:
50     liveins: $x0
51     ; CHECK-LABEL: name: test_fptoui_s32_s64
52     ; CHECK: [[COPY:%[0-9]+]]:_(s64) = COPY $x0
53     ; CHECK: [[FPTOUI:%[0-9]+]]:_(s32) = G_FPTOUI [[COPY]](s64)
54     ; CHECK: $w0 = COPY [[FPTOUI]](s32)
55     %0:_(s64) = COPY $x0
56     %1:_(s32) = G_FPTOUI %0
57     $w0 = COPY %1
58 ...
60 ---
61 name:            test_fptosi_s64_s32
62 body: |
63   bb.0:
64     liveins: $w0
65     ; CHECK-LABEL: name: test_fptosi_s64_s32
66     ; CHECK: [[COPY:%[0-9]+]]:_(s32) = COPY $w0
67     ; CHECK: [[FPTOSI:%[0-9]+]]:_(s64) = G_FPTOSI [[COPY]](s32)
68     ; CHECK: $x0 = COPY [[FPTOSI]](s64)
69     %0:_(s32) = COPY $w0
70     %1:_(s64) = G_FPTOSI %0
71     $x0 = COPY %1
72 ...
74 ---
75 name:            test_fptoui_s64_s32
76 body: |
77   bb.0:
78     liveins: $w0
79     ; CHECK-LABEL: name: test_fptoui_s64_s32
80     ; CHECK: [[COPY:%[0-9]+]]:_(s32) = COPY $w0
81     ; CHECK: [[FPTOUI:%[0-9]+]]:_(s64) = G_FPTOUI [[COPY]](s32)
82     ; CHECK: $x0 = COPY [[FPTOUI]](s64)
83     %0:_(s32) = COPY $w0
84     %1:_(s64) = G_FPTOUI %0
85     $x0 = COPY %1
86 ...
88 ---
89 name:            test_fptosi_s64_s64
90 body: |
91   bb.0:
92     liveins: $x0
93     ; CHECK-LABEL: name: test_fptosi_s64_s64
94     ; CHECK: [[COPY:%[0-9]+]]:_(s64) = COPY $x0
95     ; CHECK: [[FPTOSI:%[0-9]+]]:_(s64) = G_FPTOSI [[COPY]](s64)
96     ; CHECK: $x0 = COPY [[FPTOSI]](s64)
97     %0:_(s64) = COPY $x0
98     %1:_(s64) = G_FPTOSI %0
99     $x0 = COPY %1
103 name:            test_fptoui_s64_s64
104 body: |
105   bb.0:
106     liveins: $x0
107     ; CHECK-LABEL: name: test_fptoui_s64_s64
108     ; CHECK: [[COPY:%[0-9]+]]:_(s64) = COPY $x0
109     ; CHECK: [[FPTOUI:%[0-9]+]]:_(s64) = G_FPTOUI [[COPY]](s64)
110     ; CHECK: $x0 = COPY [[FPTOUI]](s64)
111     %0:_(s64) = COPY $x0
112     %1:_(s64) = G_FPTOUI %0
113     $x0 = COPY %1
119 name:            test_fptosi_s1_s32
120 body: |
121   bb.0:
122     liveins: $w0
123     ; CHECK-LABEL: name: test_fptosi_s1_s32
124     ; CHECK: [[COPY:%[0-9]+]]:_(s32) = COPY $w0
125     ; CHECK: [[FPTOSI:%[0-9]+]]:_(s32) = G_FPTOSI [[COPY]](s32)
126     ; CHECK: [[ANYEXT:%[0-9]+]]:_(s64) = G_ANYEXT [[FPTOSI]](s32)
127     ; CHECK: $x0 = COPY [[ANYEXT]](s64)
128     %0:_(s32) = COPY $w0
129     %1:_(s1) = G_FPTOSI %0
130     %2:_(s64) = G_ANYEXT %1
131     $x0 = COPY %2
135 name:            test_fptoui_s1_s32
136 body: |
137   bb.0:
138     liveins: $w0
139     ; CHECK-LABEL: name: test_fptoui_s1_s32
140     ; CHECK: [[COPY:%[0-9]+]]:_(s32) = COPY $w0
141     ; CHECK: [[FPTOUI:%[0-9]+]]:_(s32) = G_FPTOUI [[COPY]](s32)
142     ; CHECK: [[COPY1:%[0-9]+]]:_(s32) = COPY [[FPTOUI]](s32)
143     ; CHECK: $w0 = COPY [[COPY1]](s32)
144     %0:_(s32) = COPY $w0
145     %1:_(s1) = G_FPTOUI %0
146     %2:_(s32) = G_ANYEXT %1
147     $w0 = COPY %2
151 name:            test_fptosi_s8_s64
152 body: |
153   bb.0:
154     liveins: $x0
155     ; CHECK-LABEL: name: test_fptosi_s8_s64
156     ; CHECK: [[COPY:%[0-9]+]]:_(s64) = COPY $x0
157     ; CHECK: [[FPTOSI:%[0-9]+]]:_(s32) = G_FPTOSI [[COPY]](s64)
158     ; CHECK: [[COPY1:%[0-9]+]]:_(s32) = COPY [[FPTOSI]](s32)
159     ; CHECK: $w0 = COPY [[COPY1]](s32)
160     %0:_(s64) = COPY $x0
161     %1:_(s8) = G_FPTOSI %0
162     %2:_(s32) = G_ANYEXT %1
163     $w0 = COPY %2
167 name:            test_fptoui_s8_s64
168 body: |
169   bb.0:
170     liveins: $x0
171     ; CHECK-LABEL: name: test_fptoui_s8_s64
172     ; CHECK: [[COPY:%[0-9]+]]:_(s64) = COPY $x0
173     ; CHECK: [[FPTOUI:%[0-9]+]]:_(s32) = G_FPTOUI [[COPY]](s64)
174     ; CHECK: [[COPY1:%[0-9]+]]:_(s32) = COPY [[FPTOUI]](s32)
175     ; CHECK: $w0 = COPY [[COPY1]](s32)
176     %0:_(s64) = COPY $x0
177     %1:_(s8) = G_FPTOUI %0
178     %2:_(s32) = G_ANYEXT %1
179     $w0 = COPY %2
183 name:            test_fptosi_s16_s32
184 body: |
185   bb.0:
186     liveins: $w0
187     ; CHECK-LABEL: name: test_fptosi_s16_s32
188     ; CHECK: [[COPY:%[0-9]+]]:_(s32) = COPY $w0
189     ; CHECK: [[FPTOSI:%[0-9]+]]:_(s32) = G_FPTOSI [[COPY]](s32)
190     ; CHECK: [[COPY1:%[0-9]+]]:_(s32) = COPY [[FPTOSI]](s32)
191     ; CHECK: $w0 = COPY [[COPY1]](s32)
192     %0:_(s32) = COPY $w0
193     %1:_(s16) = G_FPTOSI %0
194     %2:_(s32) = G_ANYEXT %1
195     $w0 = COPY %2
199 name:            test_fptoui_s16_s32
200 body: |
201   bb.0:
202     liveins: $w0
203     ; CHECK-LABEL: name: test_fptoui_s16_s32
204     ; CHECK: [[COPY:%[0-9]+]]:_(s32) = COPY $w0
205     ; CHECK: [[FPTOUI:%[0-9]+]]:_(s32) = G_FPTOUI [[COPY]](s32)
206     ; CHECK: [[COPY1:%[0-9]+]]:_(s32) = COPY [[FPTOUI]](s32)
207     ; CHECK: $w0 = COPY [[COPY1]](s32)
208     %0:_(s32) = COPY $w0
209     %1:_(s16) = G_FPTOUI %0
210     %2:_(s32) = G_ANYEXT %1
211     $w0 = COPY %2
215 name:            test_fptoui_v4s32
216 body: |
217   bb.0:
218     liveins: $q0
219     ; CHECK-LABEL: name: test_fptoui_v4s32
220     ; CHECK: [[COPY:%[0-9]+]]:_(<4 x s32>) = COPY $q0
221     ; CHECK: [[FPTOUI:%[0-9]+]]:_(<4 x s32>) = G_FPTOUI [[COPY]](<4 x s32>)
222     ; CHECK: $q0 = COPY [[FPTOUI]](<4 x s32>)
223     %0:_(<4 x s32>) = COPY $q0
224     %1:_(<4 x s32>) = G_FPTOUI %0
225     $q0 = COPY %1
229 name:            test_fptosi_v4s32
230 body: |
231   bb.0:
232     liveins: $q0
233     ; CHECK-LABEL: name: test_fptosi_v4s32
234     ; CHECK: [[COPY:%[0-9]+]]:_(<4 x s32>) = COPY $q0
235     ; CHECK: [[FPTOSI:%[0-9]+]]:_(<4 x s32>) = G_FPTOSI [[COPY]](<4 x s32>)
236     ; CHECK: $q0 = COPY [[FPTOSI]](<4 x s32>)
237     %0:_(<4 x s32>) = COPY $q0
238     %1:_(<4 x s32>) = G_FPTOSI %0
239     $q0 = COPY %1
243 name:            test_fptoui_s128_s32
244 body: |
245   bb.0:
246     liveins: $w0
247     ; CHECK-LABEL: name: test_fptoui_s128_s32
248     ; CHECK: [[COPY:%[0-9]+]]:_(s32) = COPY $w0
249     ; CHECK: [[FPTOUI:%[0-9]+]]:_(s128) = G_FPTOUI [[COPY]](s32)
250     ; CHECK: $q0 = COPY [[FPTOUI]](s128)
251     %0:_(s32) = COPY $w0
252     %1:_(s128) = G_FPTOUI %0
253     $q0 = COPY %1
257 name:            test_fptosi_s128_s32
258 body: |
259   bb.0:
260     liveins: $w0
261     ; CHECK-LABEL: name: test_fptosi_s128_s32
262     ; CHECK: [[COPY:%[0-9]+]]:_(s32) = COPY $w0
263     ; CHECK: [[FPTOSI:%[0-9]+]]:_(s128) = G_FPTOSI [[COPY]](s32)
264     ; CHECK: $q0 = COPY [[FPTOSI]](s128)
265     %0:_(s32) = COPY $w0
266     %1:_(s128) = G_FPTOSI %0
267     $q0 = COPY %1
270 name:            test_fptosi_s88_s88
271 body: |
272   bb.0:
273     liveins: $x0
274     ; CHECK-LABEL: name: test_fptosi_s88_s88
275     ; CHECK: [[DEF:%[0-9]+]]:_(s88) = G_IMPLICIT_DEF
276     ; CHECK: [[FPTOSI:%[0-9]+]]:_(s128) = G_FPTOSI [[DEF]](s88)
277     ; CHECK: [[TRUNC:%[0-9]+]]:_(s88) = G_TRUNC [[FPTOSI]](s128)
278     ; CHECK: %trunc:_(s64) = G_TRUNC [[TRUNC]](s88)
279     ; CHECK: $x0 = COPY %trunc(s64)
280     %0:_(s88) = G_IMPLICIT_DEF
281     %1:_(s88) = G_FPTOSI %0
282     %trunc:_(s64) = G_TRUNC %1
283     $x0 = COPY %trunc
286 name:            test_fptosi_s88_s64
287 body: |
288   bb.0:
289     liveins: $x0
290     ; CHECK-LABEL: name: test_fptosi_s88_s64
291     ; CHECK: [[DEF:%[0-9]+]]:_(s64) = G_IMPLICIT_DEF
292     ; CHECK: [[FPTOSI:%[0-9]+]]:_(s128) = G_FPTOSI [[DEF]](s64)
293     ; CHECK: [[TRUNC:%[0-9]+]]:_(s88) = G_TRUNC [[FPTOSI]](s128)
294     ; CHECK: %trunc:_(s64) = G_TRUNC [[TRUNC]](s88)
295     ; CHECK: $x0 = COPY %trunc(s64)
296     %0:_(s64) = G_IMPLICIT_DEF
297     %1:_(s88) = G_FPTOSI %0
298     %trunc:_(s64) = G_TRUNC %1
299     $x0 = COPY %trunc
302 name:            test_fptosi_s64_s88
303 body: |
304   bb.0:
305     liveins: $x0
306     ; CHECK-LABEL: name: test_fptosi_s64_s88
307     ; CHECK: [[DEF:%[0-9]+]]:_(s88) = G_IMPLICIT_DEF
308     ; CHECK: [[FPEXT:%[0-9]+]]:_(s128) = G_FPEXT [[DEF]](s88)
309     ; CHECK: [[FPTOSI:%[0-9]+]]:_(s64) = G_FPTOSI [[FPEXT]](s128)
310     ; CHECK: $x0 = COPY [[FPTOSI]](s64)
311     %0:_(s88) = G_IMPLICIT_DEF
312     %1:_(s64) = G_FPTOSI %0
313     $x0 = COPY %1