• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1; RUN: opt < %s  -cost-model -analyze -mtriple=thumbv7-apple-ios6.0.0 -mcpu=cortex-a8 | FileCheck %s
2target datalayout = "e-p:32:32:32-i1:8:32-i8:8:32-i16:16:32-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:32:64-v128:32:128-a0:0:32-n32-S32"
3target triple = "thumbv7-apple-ios6.0.0"
4
5define i32 @casts() {
6
7    ; -- scalars --
8  ; CHECK: cost of 1 {{.*}} sext
9  %r0 = sext i1 undef to i8
10  ; CHECK: cost of 1 {{.*}} zext
11  %r1 = zext i1 undef to i8
12  ; CHECK: cost of 1 {{.*}} sext
13  %r2 = sext i1 undef to i16
14  ; CHECK: cost of 1 {{.*}} zext
15  %r3 = zext i1 undef to i16
16  ; CHECK: cost of 1 {{.*}} sext
17  %r4 = sext i1 undef to i32
18  ; CHECK: cost of 1 {{.*}} zext
19  %r5 = zext i1 undef to i32
20  ; CHECK: cost of 1 {{.*}} sext
21  %r6 = sext i1 undef to i64
22  ; CHECK: cost of 1 {{.*}} zext
23  %r7 = zext i1 undef to i64
24  ; CHECK: cost of 0 {{.*}} trunc
25  %r8 = trunc i8 undef to i1
26  ; CHECK: cost of 1 {{.*}} sext
27  %r9 = sext i8 undef to i16
28  ; CHECK: cost of 1 {{.*}} zext
29  %r10 = zext i8 undef to i16
30  ; CHECK: cost of 1 {{.*}} sext
31  %r11 = sext i8 undef to i32
32  ; CHECK: cost of 1 {{.*}} zext
33  %r12 = zext i8 undef to i32
34  ; CHECK: cost of 1 {{.*}} sext
35  %r13 = sext i8 undef to i64
36  ; CHECK: cost of 1 {{.*}} zext
37  %r14 = zext i8 undef to i64
38  ; CHECK: cost of 0 {{.*}} trunc
39  %r15 = trunc i16 undef to i1
40  ; CHECK: cost of 0 {{.*}} trunc
41  %r16 = trunc i16 undef to i8
42  ; CHECK: cost of 1 {{.*}} sext
43  %r17 = sext i16 undef to i32
44  ; CHECK: cost of 1 {{.*}} zext
45  %r18 = zext i16 undef to i32
46  ; CHECK: cost of 2 {{.*}} sext
47  %r19 = sext i16 undef to i64
48  ; CHECK: cost of 1 {{.*}} zext
49  %r20 = zext i16 undef to i64
50  ; CHECK: cost of 0 {{.*}} trunc
51  %r21 = trunc i32 undef to i1
52  ; CHECK: cost of 0 {{.*}} trunc
53  %r22 = trunc i32 undef to i8
54  ; CHECK: cost of 0 {{.*}} trunc
55  %r23 = trunc i32 undef to i16
56  ; CHECK: cost of 1 {{.*}} sext
57  %r24 = sext i32 undef to i64
58  ; CHECK: cost of 1 {{.*}} zext
59  %r25 = zext i32 undef to i64
60  ; CHECK: cost of 0 {{.*}} trunc
61  %r26 = trunc i64 undef to i1
62  ; CHECK: cost of 0 {{.*}} trunc
63  %r27 = trunc i64 undef to i8
64  ; CHECK: cost of 0 {{.*}} trunc
65  %r28 = trunc i64 undef to i16
66  ; CHECK: cost of 0 {{.*}} trunc
67  %r29 = trunc i64 undef to i32
68
69    ; -- floating point conversions --
70  ; Moves between scalar and NEON registers.
71  ; CHECK: cost of 2 {{.*}} fptoui
72  %r30 = fptoui float undef to i1
73  ; CHECK: cost of 2 {{.*}} fptosi
74  %r31 = fptosi float undef to i1
75  ; CHECK: cost of 2 {{.*}} fptoui
76  %r32 = fptoui float undef to i8
77  ; CHECK: cost of 2 {{.*}} fptosi
78  %r33 = fptosi float undef to i8
79  ; CHECK: cost of 2 {{.*}} fptoui
80  %r34 = fptoui float undef to i16
81  ; CHECK: cost of 2 {{.*}} fptosi
82  %r35 = fptosi float undef to i16
83  ; CHECK: cost of 2 {{.*}} fptoui
84  %r36 = fptoui float undef to i32
85  ; CHECK: cost of 2 {{.*}} fptosi
86  %r37 = fptosi float undef to i32
87  ; CHECK: cost of 10 {{.*}} fptoui
88  %r38 = fptoui float undef to i64
89  ; CHECK: cost of 10 {{.*}} fptosi
90  %r39 = fptosi float undef to i64
91  ; CHECK: cost of 2 {{.*}} fptoui
92  %r40 = fptoui double undef to i1
93  ; CHECK: cost of 2 {{.*}} fptosi
94  %r41 = fptosi double undef to i1
95  ; CHECK: cost of 2 {{.*}} fptoui
96  %r42 = fptoui double undef to i8
97  ; CHECK: cost of 2 {{.*}} fptosi
98  %r43 = fptosi double undef to i8
99  ; CHECK: cost of 2 {{.*}} fptoui
100  %r44 = fptoui double undef to i16
101  ; CHECK: cost of 2 {{.*}} fptosi
102  %r45 = fptosi double undef to i16
103  ; CHECK: cost of 2 {{.*}} fptoui
104  %r46 = fptoui double undef to i32
105  ; CHECK: cost of 2 {{.*}} fptosi
106  %r47 = fptosi double undef to i32
107  ; Function call
108  ; CHECK: cost of 10 {{.*}} fptoui
109  %r48 = fptoui double undef to i64
110  ; CHECK: cost of 10 {{.*}} fptosi
111  %r49 = fptosi double undef to i64
112
113  ; CHECK: cost of 2 {{.*}} sitofp
114  %r50 = sitofp i1 undef to float
115  ; CHECK: cost of 2 {{.*}} uitofp
116  %r51 = uitofp i1 undef to float
117  ; CHECK: cost of 2 {{.*}} sitofp
118  %r52 = sitofp i1 undef to double
119  ; CHECK: cost of 2 {{.*}} uitofp
120  %r53 = uitofp i1 undef to double
121  ; CHECK: cost of 2 {{.*}} sitofp
122  %r54 = sitofp i8 undef to float
123  ; CHECK: cost of 2 {{.*}} uitofp
124  %r55 = uitofp i8 undef to float
125  ; CHECK: cost of 2 {{.*}} sitofp
126  %r56 = sitofp i8 undef to double
127  ; CHECK: cost of 2 {{.*}} uitofp
128  %r57 = uitofp i8 undef to double
129  ; CHECK: cost of 2 {{.*}} sitofp
130  %r58 = sitofp i16 undef to float
131  ; CHECK: cost of 2 {{.*}} uitofp
132  %r59 = uitofp i16 undef to float
133  ; CHECK: cost of 2 {{.*}} sitofp
134  %r60 = sitofp i16 undef to double
135  ; CHECK: cost of 2 {{.*}} uitofp
136  %r61 = uitofp i16 undef to double
137  ; CHECK: cost of 2 {{.*}} sitofp
138  %r62 = sitofp i32 undef to float
139  ; CHECK: cost of 2 {{.*}} uitofp
140  %r63 = uitofp i32 undef to float
141  ; CHECK: cost of 2 {{.*}} sitofp
142  %r64 = sitofp i32 undef to double
143  ; CHECK: cost of 2 {{.*}} uitofp
144  %r65 = uitofp i32 undef to double
145  ; Function call
146  ; CHECK: cost of 10 {{.*}} sitofp
147  %r66 = sitofp i64 undef to float
148  ; CHECK: cost of 10 {{.*}} uitofp
149  %r67 = uitofp i64 undef to float
150  ; CHECK: cost of 10 {{.*}} sitofp
151  %r68 = sitofp i64 undef to double
152  ; CHECK: cost of 10 {{.*}} uitofp
153  %r69 = uitofp i64 undef to double
154
155  ; Vector cast cost of instructions lowering the cast to the stack.
156  ; CHECK: cost of 24 {{.*}} sext
157  %r70 = sext <8 x i8> undef to <8 x i32>
158  ; CHECK: cost of 48 {{.*}} sext
159  %r71 = sext <16 x i8> undef to <16 x i32>
160  ; CHECK: cost of 22 {{.*}} zext
161  %r72 = zext <8 x i8> undef to <8 x i32>
162  ; CHECK: cost of 44 {{.*}} zext
163  %r73 = zext <16 x i8> undef to <16 x i32>
164  ; CHECK: cost of 19 {{.*}} trunc
165  %r74 = trunc <8 x i32> undef to <8 x i8>
166  ; CHECK: cost of 38 {{.*}} trunc
167  %r75 = trunc <16 x i32> undef to <16 x i8>
168
169  ; Floating point truncation costs.
170  ; CHECK: cost of 1 {{.*}} fptrunc double
171  %r80 = fptrunc double undef to float
172  ; CHECK: cost of 2 {{.*}} fptrunc <2 x double
173  %r81 = fptrunc <2 x double> undef to <2 x float>
174  ; CHECK: cost of 4 {{.*}} fptrunc <4 x double
175  %r82 = fptrunc <4 x double> undef to <4 x float>
176  ; CHECK: cost of 8 {{.*}} fptrunc <8 x double
177  %r83 = fptrunc <8 x double> undef to <8 x float>
178  ; CHECK: cost of 16 {{.*}} fptrunc <16 x double
179  %r84 = fptrunc <16 x double> undef to <16 x float>
180
181  ; Floating point extension costs.
182  ; CHECK: cost of 1 {{.*}} fpext float
183  %r85 = fpext float undef to double
184  ; CHECK: cost of 2 {{.*}} fpext <2 x float
185  %r86 = fpext <2 x float> undef to <2 x double>
186  ; CHECK: cost of 4 {{.*}} fpext <4 x float
187  %r87 = fpext <4 x float> undef to <4 x double>
188  ; CHECK: cost of 8 {{.*}} fpext <8 x float
189  %r88 = fpext <8 x float> undef to <8 x double>
190  ; CHECK: cost of 16 {{.*}} fpext <16 x float
191  %r89 = fpext <16 x float> undef to <16 x double>
192
193  ;; Floating point to integer vector casts.
194  ; CHECK: cost of 1 {{.*}} fptoui
195  %r90 = fptoui <2 x float> undef to <2 x i1>
196  ; CHECK: cost of 1 {{.*}} fptosi
197  %r91 = fptosi <2 x float> undef to <2 x i1>
198  ; CHECK: cost of 1 {{.*}} fptoui
199  %r92 = fptoui <2 x float> undef to <2 x i8>
200  ; CHECK: cost of 1 {{.*}} fptosi
201  %r93 = fptosi <2 x float> undef to <2 x i8>
202  ; CHECK: cost of 1 {{.*}} fptoui
203  %r94 = fptoui <2 x float> undef to <2 x i16>
204  ; CHECK: cost of 1 {{.*}} fptosi
205  %r95 = fptosi <2 x float> undef to <2 x i16>
206  ; CHECK: cost of 1 {{.*}} fptoui
207  %r96 = fptoui <2 x float> undef to <2 x i32>
208  ; CHECK: cost of 1 {{.*}} fptosi
209  %r97 = fptosi <2 x float> undef to <2 x i32>
210  ; CHECK: cost of 24 {{.*}} fptoui
211  %r98 = fptoui <2 x float> undef to <2 x i64>
212  ; CHECK: cost of 24 {{.*}} fptosi
213  %r99 = fptosi <2 x float> undef to <2 x i64>
214
215  ; CHECK: cost of 8 {{.*}} fptoui
216  %r100 = fptoui <2 x double> undef to <2 x i1>
217  ; CHECK: cost of 8 {{.*}} fptosi
218  %r101 = fptosi <2 x double> undef to <2 x i1>
219  ; CHECK: cost of 8 {{.*}} fptoui
220  %r102 = fptoui <2 x double> undef to <2 x i8>
221  ; CHECK: cost of 8 {{.*}} fptosi
222  %r103 = fptosi <2 x double> undef to <2 x i8>
223  ; CHECK: cost of 8 {{.*}} fptoui
224  %r104 = fptoui <2 x double> undef to <2 x i16>
225  ; CHECK: cost of 8 {{.*}} fptosi
226  %r105 = fptosi <2 x double> undef to <2 x i16>
227  ; CHECK: cost of 2 {{.*}} fptoui
228  %r106 = fptoui <2 x double> undef to <2 x i32>
229  ; CHECK: cost of 2 {{.*}} fptosi
230  %r107 = fptosi <2 x double> undef to <2 x i32>
231  ; CHECK: cost of 24 {{.*}} fptoui
232  %r108 = fptoui <2 x double> undef to <2 x i64>
233  ; CHECK: cost of 24 {{.*}} fptosi
234  %r109 = fptosi <2 x double> undef to <2 x i64>
235
236  ; CHECK: cost of 16 {{.*}} fptoui
237  %r110 = fptoui <4 x float> undef to <4 x i1>
238  ; CHECK: cost of 16 {{.*}} fptosi
239  %r111 = fptosi <4 x float> undef to <4 x i1>
240  ; CHECK: cost of 3 {{.*}} fptoui
241  %r112 = fptoui <4 x float> undef to <4 x i8>
242  ; CHECK: cost of 3 {{.*}} fptosi
243  %r113 = fptosi <4 x float> undef to <4 x i8>
244  ; CHECK: cost of 2 {{.*}} fptoui
245  %r114 = fptoui <4 x float> undef to <4 x i16>
246  ; CHECK: cost of 2 {{.*}} fptosi
247  %r115 = fptosi <4 x float> undef to <4 x i16>
248  ; CHECK: cost of 1 {{.*}} fptoui
249  %r116 = fptoui <4 x float> undef to <4 x i32>
250  ; CHECK: cost of 1 {{.*}} fptosi
251  %r117 = fptosi <4 x float> undef to <4 x i32>
252  ; CHECK: cost of 48 {{.*}} fptoui
253  %r118 = fptoui <4 x float> undef to <4 x i64>
254  ; CHECK: cost of 48 {{.*}} fptosi
255  %r119 = fptosi <4 x float> undef to <4 x i64>
256
257  ; CHECK: cost of 16 {{.*}} fptoui
258  %r120 = fptoui <4 x double> undef to <4 x i1>
259  ; CHECK: cost of 16 {{.*}} fptosi
260  %r121 = fptosi <4 x double> undef to <4 x i1>
261  ; CHECK: cost of 16 {{.*}} fptoui
262  %r122 = fptoui <4 x double> undef to <4 x i8>
263  ; CHECK: cost of 16 {{.*}} fptosi
264  %r123 = fptosi <4 x double> undef to <4 x i8>
265  ; CHECK: cost of 16 {{.*}} fptoui
266  %r124 = fptoui <4 x double> undef to <4 x i16>
267  ; CHECK: cost of 16 {{.*}} fptosi
268  %r125 = fptosi <4 x double> undef to <4 x i16>
269  ; CHECK: cost of 16 {{.*}} fptoui
270  %r126 = fptoui <4 x double> undef to <4 x i32>
271  ; CHECK: cost of 16 {{.*}} fptosi
272  %r127 = fptosi <4 x double> undef to <4 x i32>
273  ; CHECK: cost of 48 {{.*}} fptoui
274  %r128 = fptoui <4 x double> undef to <4 x i64>
275  ; CHECK: cost of 48 {{.*}} fptosi
276  %r129 = fptosi <4 x double> undef to <4 x i64>
277
278  ; CHECK: cost of 32 {{.*}} fptoui
279  %r130 = fptoui <8 x float> undef to <8 x i1>
280  ; CHECK: cost of 32 {{.*}} fptosi
281  %r131 = fptosi <8 x float> undef to <8 x i1>
282  ; CHECK: cost of 32 {{.*}} fptoui
283  %r132 = fptoui <8 x float> undef to <8 x i8>
284  ; CHECK: cost of 32 {{.*}} fptosi
285  %r133 = fptosi <8 x float> undef to <8 x i8>
286  ; CHECK: cost of 4 {{.*}} fptoui
287  %r134 = fptoui <8 x float> undef to <8 x i16>
288  ; CHECK: cost of 4 {{.*}} fptosi
289  %r135 = fptosi <8 x float> undef to <8 x i16>
290  ; CHECK: cost of 2 {{.*}} fptoui
291  %r136 = fptoui <8 x float> undef to <8 x i32>
292  ; CHECK: cost of 2 {{.*}} fptosi
293  %r137 = fptosi <8 x float> undef to <8 x i32>
294  ; CHECK: cost of 96 {{.*}} fptoui
295  %r138 = fptoui <8 x float> undef to <8 x i64>
296  ; CHECK: cost of 96 {{.*}} fptosi
297  %r139 = fptosi <8 x float> undef to <8 x i64>
298
299  ; CHECK: cost of 32 {{.*}} fptoui
300  %r140 = fptoui <8 x double> undef to <8 x i1>
301  ; CHECK: cost of 32 {{.*}} fptosi
302  %r141 = fptosi <8 x double> undef to <8 x i1>
303  ; CHECK: cost of 32 {{.*}} fptoui
304  %r142 = fptoui <8 x double> undef to <8 x i8>
305  ; CHECK: cost of 32 {{.*}} fptosi
306  %r143 = fptosi <8 x double> undef to <8 x i8>
307  ; CHECK: cost of 32 {{.*}} fptoui
308  %r144 = fptoui <8 x double> undef to <8 x i16>
309  ; CHECK: cost of 32 {{.*}} fptosi
310  %r145 = fptosi <8 x double> undef to <8 x i16>
311  ; CHECK: cost of 32 {{.*}} fptoui
312  %r146 = fptoui <8 x double> undef to <8 x i32>
313  ; CHECK: cost of 32 {{.*}} fptosi
314  %r147 = fptosi <8 x double> undef to <8 x i32>
315  ; CHECK: cost of 96 {{.*}} fptoui
316  %r148 = fptoui <8 x double> undef to <8 x i64>
317  ; CHECK: cost of 96 {{.*}} fptosi
318  %r149 = fptosi <8 x double> undef to <8 x i64>
319
320  ; CHECK: cost of 64 {{.*}} fptoui
321  %r150 = fptoui <16 x float> undef to <16 x i1>
322  ; CHECK: cost of 64 {{.*}} fptosi
323  %r151 = fptosi <16 x float> undef to <16 x i1>
324  ; CHECK: cost of 64 {{.*}} fptoui
325  %r152 = fptoui <16 x float> undef to <16 x i8>
326  ; CHECK: cost of 64 {{.*}} fptosi
327  %r153 = fptosi <16 x float> undef to <16 x i8>
328  ; CHECK: cost of 8 {{.*}} fptoui
329  %r154 = fptoui <16 x float> undef to <16 x i16>
330  ; CHECK: cost of 8 {{.*}} fptosi
331  %r155 = fptosi <16 x float> undef to <16 x i16>
332  ; CHECK: cost of 4 {{.*}} fptoui
333  %r156 = fptoui <16 x float> undef to <16 x i32>
334  ; CHECK: cost of 4 {{.*}} fptosi
335  %r157 = fptosi <16 x float> undef to <16 x i32>
336  ; CHECK: cost of 192 {{.*}} fptoui
337  %r158 = fptoui <16 x float> undef to <16 x i64>
338  ; CHECK: cost of 192 {{.*}} fptosi
339  %r159 = fptosi <16 x float> undef to <16 x i64>
340
341  ; CHECK: cost of 64 {{.*}} fptoui
342  %r160 = fptoui <16 x double> undef to <16 x i1>
343  ; CHECK: cost of 64 {{.*}} fptosi
344  %r161 = fptosi <16 x double> undef to <16 x i1>
345  ; CHECK: cost of 64 {{.*}} fptoui
346  %r162 = fptoui <16 x double> undef to <16 x i8>
347  ; CHECK: cost of 64 {{.*}} fptosi
348  %r163 = fptosi <16 x double> undef to <16 x i8>
349  ; CHECK: cost of 64 {{.*}} fptoui
350  %r164 = fptoui <16 x double> undef to <16 x i16>
351  ; CHECK: cost of 64 {{.*}} fptosi
352  %r165 = fptosi <16 x double> undef to <16 x i16>
353  ; CHECK: cost of 64 {{.*}} fptoui
354  %r166 = fptoui <16 x double> undef to <16 x i32>
355  ; CHECK: cost of 64 {{.*}} fptosi
356  %r167 = fptosi <16 x double> undef to <16 x i32>
357  ; CHECK: cost of 192 {{.*}} fptoui
358  %r168 = fptoui <16 x double> undef to <16 x i64>
359  ; CHECK: cost of 192 {{.*}} fptosi
360  %r169 = fptosi <16 x double> undef to <16 x i64>
361
362  ; CHECK: cost of 8 {{.*}} uitofp
363  %r170 = uitofp <2 x i1> undef to <2 x float>
364  ; CHECK: cost of 8 {{.*}} sitofp
365  %r171 = sitofp <2 x i1> undef to <2 x float>
366  ; CHECK: cost of 3 {{.*}} uitofp
367  %r172 = uitofp <2 x i8> undef to <2 x float>
368  ; CHECK: cost of 3 {{.*}} sitofp
369  %r173 = sitofp <2 x i8> undef to <2 x float>
370  ; CHECK: cost of 2 {{.*}} uitofp
371  %r174 = uitofp <2 x i16> undef to <2 x float>
372  ; CHECK: cost of 2 {{.*}} sitofp
373  %r175 = sitofp <2 x i16> undef to <2 x float>
374  ; CHECK: cost of 1 {{.*}} uitofp
375  %r176 = uitofp <2 x i32> undef to <2 x float>
376  ; CHECK: cost of 1 {{.*}} sitofp
377  %r177 = sitofp <2 x i32> undef to <2 x float>
378  ; CHECK: cost of 24 {{.*}} uitofp
379  %r178 = uitofp <2 x i64> undef to <2 x float>
380  ; CHECK: cost of 24 {{.*}} sitofp
381  %r179 = sitofp <2 x i64> undef to <2 x float>
382
383  ; CHECK: cost of 8 {{.*}} uitofp
384  %r180 = uitofp <2 x i1> undef to <2 x double>
385  ; CHECK: cost of 8 {{.*}} sitofp
386  %r181 = sitofp <2 x i1> undef to <2 x double>
387  ; CHECK: cost of 4 {{.*}} uitofp
388  %r182 = uitofp <2 x i8> undef to <2 x double>
389  ; CHECK: cost of 4 {{.*}} sitofp
390  %r183 = sitofp <2 x i8> undef to <2 x double>
391  ; CHECK: cost of 3 {{.*}} uitofp
392  %r184 = uitofp <2 x i16> undef to <2 x double>
393  ; CHECK: cost of 3 {{.*}} sitofp
394  %r185 = sitofp <2 x i16> undef to <2 x double>
395  ; CHECK: cost of 2 {{.*}} uitofp
396  %r186 = uitofp <2 x i32> undef to <2 x double>
397  ; CHECK: cost of 2 {{.*}} sitofp
398  %r187 = sitofp <2 x i32> undef to <2 x double>
399  ; CHECK: cost of 24 {{.*}} uitofp
400  %r188 = uitofp <2 x i64> undef to <2 x double>
401  ; CHECK: cost of 24 {{.*}} sitofp
402  %r189 = sitofp <2 x i64> undef to <2 x double>
403
404  ; CHECK: cost of 3 {{.*}} uitofp
405  %r190 = uitofp <4 x i1> undef to <4 x float>
406  ; CHECK: cost of 3 {{.*}} sitofp
407  %r191 = sitofp <4 x i1> undef to <4 x float>
408  ; CHECK: cost of 3 {{.*}} uitofp
409  %r192 = uitofp <4 x i8> undef to <4 x float>
410  ; CHECK: cost of 3 {{.*}} sitofp
411  %r193 = sitofp <4 x i8> undef to <4 x float>
412  ; CHECK: cost of 2 {{.*}} uitofp
413  %r194 = uitofp <4 x i16> undef to <4 x float>
414  ; CHECK: cost of 2 {{.*}} sitofp
415  %r195 = sitofp <4 x i16> undef to <4 x float>
416  ; CHECK: cost of 1 {{.*}} uitofp
417  %r196 = uitofp <4 x i32> undef to <4 x float>
418  ; CHECK: cost of 1 {{.*}} sitofp
419  %r197 = sitofp <4 x i32> undef to <4 x float>
420  ; CHECK: cost of 48 {{.*}} uitofp
421  %r198 = uitofp <4 x i64> undef to <4 x float>
422  ; CHECK: cost of 48 {{.*}} sitofp
423  %r199 = sitofp <4 x i64> undef to <4 x float>
424
425  ; CHECK: cost of 16 {{.*}} uitofp
426  %r200 = uitofp <4 x i1> undef to <4 x double>
427  ; CHECK: cost of 16 {{.*}} sitofp
428  %r201 = sitofp <4 x i1> undef to <4 x double>
429  ; CHECK: cost of 16 {{.*}} uitofp
430  %r202 = uitofp <4 x i8> undef to <4 x double>
431  ; CHECK: cost of 16 {{.*}} sitofp
432  %r203 = sitofp <4 x i8> undef to <4 x double>
433  ; CHECK: cost of 16 {{.*}} uitofp
434  %r204 = uitofp <4 x i16> undef to <4 x double>
435  ; CHECK: cost of 16 {{.*}} sitofp
436  %r205 = sitofp <4 x i16> undef to <4 x double>
437  ; CHECK: cost of 16 {{.*}} uitofp
438  %r206 = uitofp <4 x i32> undef to <4 x double>
439  ; CHECK: cost of 16 {{.*}} sitofp
440  %r207 = sitofp <4 x i32> undef to <4 x double>
441  ; CHECK: cost of 48 {{.*}} uitofp
442  %r208 = uitofp <4 x i64> undef to <4 x double>
443  ; CHECK: cost of 48 {{.*}} sitofp
444  %r209 = sitofp <4 x i64> undef to <4 x double>
445
446  ; CHECK: cost of 32 {{.*}} uitofp
447  %r210 = uitofp <8 x i1> undef to <8 x float>
448  ; CHECK: cost of 32 {{.*}} sitofp
449  %r211 = sitofp <8 x i1> undef to <8 x float>
450  ; CHECK: cost of 32 {{.*}} uitofp
451  %r212 = uitofp <8 x i8> undef to <8 x float>
452  ; CHECK: cost of 32 {{.*}} sitofp
453  %r213 = sitofp <8 x i8> undef to <8 x float>
454  ; CHECK: cost of 4 {{.*}} uitofp
455  %r214 = uitofp <8 x i16> undef to <8 x float>
456  ; CHECK: cost of 4 {{.*}} sitofp
457  %r215 = sitofp <8 x i16> undef to <8 x float>
458  ; CHECK: cost of 2 {{.*}} uitofp
459  %r216 = uitofp <8 x i32> undef to <8 x float>
460  ; CHECK: cost of 2 {{.*}} sitofp
461  %r217 = sitofp <8 x i32> undef to <8 x float>
462  ; CHECK: cost of 96 {{.*}} uitofp
463  %r218 = uitofp <8 x i64> undef to <8 x float>
464  ; CHECK: cost of 96 {{.*}} sitofp
465  %r219 = sitofp <8 x i64> undef to <8 x float>
466
467  ; CHECK: cost of 32 {{.*}} uitofp
468  %r220 = uitofp <8 x i1> undef to <8 x double>
469  ; CHECK: cost of 32 {{.*}} sitofp
470  %r221 = sitofp <8 x i1> undef to <8 x double>
471  ; CHECK: cost of 32 {{.*}} uitofp
472  %r222 = uitofp <8 x i8> undef to <8 x double>
473  ; CHECK: cost of 32 {{.*}} sitofp
474  %r223 = sitofp <8 x i8> undef to <8 x double>
475  ; CHECK: cost of 32 {{.*}} uitofp
476  %r224 = uitofp <8 x i16> undef to <8 x double>
477  ; CHECK: cost of 32 {{.*}} sitofp
478  %r225 = sitofp <8 x i16> undef to <8 x double>
479  ; CHECK: cost of 32 {{.*}} uitofp
480  %r226 = uitofp <8 x i16> undef to <8 x double>
481  ; CHECK: cost of 32 {{.*}} sitofp
482  %r227 = sitofp <8 x i16> undef to <8 x double>
483  ; CHECK: cost of 96 {{.*}} uitofp
484  %r228 = uitofp <8 x i64> undef to <8 x double>
485  ; CHECK: cost of 96 {{.*}} sitofp
486  %r229 = sitofp <8 x i64> undef to <8 x double>
487
488  ; CHECK: cost of 64 {{.*}} uitofp
489  %r230 = uitofp <16 x i1> undef to <16 x float>
490  ; CHECK: cost of 64 {{.*}} sitofp
491  %r231 = sitofp <16 x i1> undef to <16 x float>
492  ; CHECK: cost of 64 {{.*}} uitofp
493  %r232 = uitofp <16 x i8> undef to <16 x float>
494  ; CHECK: cost of 64 {{.*}} sitofp
495  %r233 = sitofp <16 x i8> undef to <16 x float>
496  ; CHECK: cost of 8 {{.*}} uitofp
497  %r234 = uitofp <16 x i16> undef to <16 x float>
498  ; CHECK: cost of 8 {{.*}} sitofp
499  %r235 = sitofp <16 x i16> undef to <16 x float>
500  ; CHECK: cost of 4 {{.*}} uitofp
501  %r236 = uitofp <16 x i32> undef to <16 x float>
502  ; CHECK: cost of 4 {{.*}} sitofp
503  %r237 = sitofp <16 x i32> undef to <16 x float>
504  ; CHECK: cost of 192 {{.*}} uitofp
505  %r238 = uitofp <16 x i64> undef to <16 x float>
506  ; CHECK: cost of 192 {{.*}} sitofp
507  %r239 = sitofp <16 x i64> undef to <16 x float>
508
509  ; CHECK: cost of 64 {{.*}} uitofp
510  %r240 = uitofp <16 x i1> undef to <16 x double>
511  ; CHECK: cost of 64 {{.*}} sitofp
512  %r241 = sitofp <16 x i1> undef to <16 x double>
513  ; CHECK: cost of 64 {{.*}} uitofp
514  %r242 = uitofp <16 x i8> undef to <16 x double>
515  ; CHECK: cost of 64 {{.*}} sitofp
516  %r243 = sitofp <16 x i8> undef to <16 x double>
517  ; C4ECK: cost of 64 {{.*}} uitofp
518  %r244 = uitofp <16 x i16> undef to <16 x double>
519  ; CHECK: cost of 64 {{.*}} sitofp
520  %r245 = sitofp <16 x i16> undef to <16 x double>
521  ; CHECK: cost of 64 {{.*}} uitofp
522  %r246 = uitofp <16 x i16> undef to <16 x double>
523  ; CHECK: cost of 64 {{.*}} sitofp
524  %r247 = sitofp <16 x i16> undef to <16 x double>
525  ; CHECK: cost of 192 {{.*}} uitofp
526  %r248 = uitofp <16 x i64> undef to <16 x double>
527  ; CHECK: cost of 192 {{.*}} sitofp
528  %r249 = sitofp <16 x i64> undef to <16 x double>
529
530  ;CHECK: cost of 0 {{.*}} ret
531  ret i32 undef
532}
533
534