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  ; CHECK: cost of 3 {{.*}} sext
156  %r70 = sext <8 x i8> undef to <8 x i32>
157  ; CHECK: cost of 6 {{.*}} sext
158  %r71 = sext <16 x i8> undef to <16 x i32>
159  ; CHECK: cost of 3 {{.*}} zext
160  %r72 = zext <8 x i8> undef to <8 x i32>
161  ; CHECK: cost of 6 {{.*}} zext
162  %r73 = zext <16 x i8> undef to <16 x i32>
163
164  ; CHECK: cost of 7 {{.*}} sext
165  %rext_0 = sext <8 x i8> undef to <8 x i64>
166  ; CHECK: cost of 7 {{.*}} zext
167  %rext_1 = zext <8 x i8> undef to <8 x i64>
168  ; CHECK: cost of 6 {{.*}} sext
169  %rext_2 = sext <8 x i16> undef to <8 x i64>
170  ; CHECK: cost of 6 {{.*}} zext
171  %rext_3 = zext <8 x i16> undef to <8 x i64>
172  ; CHECK: cost of 3 {{.*}} sext
173  %rext_4 = sext <4 x i16> undef to <4 x i64>
174  ; CHECK: cost of 3 {{.*}} zext
175  %rext_5 = zext <4 x i16> undef to <4 x i64>
176
177  ; Vector cast cost of instructions lowering the cast to the stack.
178  ; CHECK: cost of 3 {{.*}} trunc
179  %r74 = trunc <8 x i32> undef to <8 x i8>
180  ; CHECK: cost of 6 {{.*}} trunc
181  %r75 = trunc <16 x i32> undef to <16 x i8>
182
183  ; Floating point truncation costs.
184  ; CHECK: cost of 1 {{.*}} fptrunc double
185  %r80 = fptrunc double undef to float
186  ; CHECK: cost of 2 {{.*}} fptrunc <2 x double
187  %r81 = fptrunc <2 x double> undef to <2 x float>
188  ; CHECK: cost of 4 {{.*}} fptrunc <4 x double
189  %r82 = fptrunc <4 x double> undef to <4 x float>
190  ; CHECK: cost of 8 {{.*}} fptrunc <8 x double
191  %r83 = fptrunc <8 x double> undef to <8 x float>
192  ; CHECK: cost of 16 {{.*}} fptrunc <16 x double
193  %r84 = fptrunc <16 x double> undef to <16 x float>
194
195  ; Floating point extension costs.
196  ; CHECK: cost of 1 {{.*}} fpext float
197  %r85 = fpext float undef to double
198  ; CHECK: cost of 2 {{.*}} fpext <2 x float
199  %r86 = fpext <2 x float> undef to <2 x double>
200  ; CHECK: cost of 4 {{.*}} fpext <4 x float
201  %r87 = fpext <4 x float> undef to <4 x double>
202  ; CHECK: cost of 8 {{.*}} fpext <8 x float
203  %r88 = fpext <8 x float> undef to <8 x double>
204  ; CHECK: cost of 16 {{.*}} fpext <16 x float
205  %r89 = fpext <16 x float> undef to <16 x double>
206
207  ;; Floating point to integer vector casts.
208  ; CHECK: cost of 1 {{.*}} fptoui
209  %r90 = fptoui <2 x float> undef to <2 x i1>
210  ; CHECK: cost of 1 {{.*}} fptosi
211  %r91 = fptosi <2 x float> undef to <2 x i1>
212  ; CHECK: cost of 1 {{.*}} fptoui
213  %r92 = fptoui <2 x float> undef to <2 x i8>
214  ; CHECK: cost of 1 {{.*}} fptosi
215  %r93 = fptosi <2 x float> undef to <2 x i8>
216  ; CHECK: cost of 1 {{.*}} fptoui
217  %r94 = fptoui <2 x float> undef to <2 x i16>
218  ; CHECK: cost of 1 {{.*}} fptosi
219  %r95 = fptosi <2 x float> undef to <2 x i16>
220  ; CHECK: cost of 1 {{.*}} fptoui
221  %r96 = fptoui <2 x float> undef to <2 x i32>
222  ; CHECK: cost of 1 {{.*}} fptosi
223  %r97 = fptosi <2 x float> undef to <2 x i32>
224  ; CHECK: cost of 24 {{.*}} fptoui
225  %r98 = fptoui <2 x float> undef to <2 x i64>
226  ; CHECK: cost of 24 {{.*}} fptosi
227  %r99 = fptosi <2 x float> undef to <2 x i64>
228
229  ; CHECK: cost of 8 {{.*}} fptoui
230  %r100 = fptoui <2 x double> undef to <2 x i1>
231  ; CHECK: cost of 8 {{.*}} fptosi
232  %r101 = fptosi <2 x double> undef to <2 x i1>
233  ; CHECK: cost of 8 {{.*}} fptoui
234  %r102 = fptoui <2 x double> undef to <2 x i8>
235  ; CHECK: cost of 8 {{.*}} fptosi
236  %r103 = fptosi <2 x double> undef to <2 x i8>
237  ; CHECK: cost of 8 {{.*}} fptoui
238  %r104 = fptoui <2 x double> undef to <2 x i16>
239  ; CHECK: cost of 8 {{.*}} fptosi
240  %r105 = fptosi <2 x double> undef to <2 x i16>
241  ; CHECK: cost of 2 {{.*}} fptoui
242  %r106 = fptoui <2 x double> undef to <2 x i32>
243  ; CHECK: cost of 2 {{.*}} fptosi
244  %r107 = fptosi <2 x double> undef to <2 x i32>
245  ; CHECK: cost of 24 {{.*}} fptoui
246  %r108 = fptoui <2 x double> undef to <2 x i64>
247  ; CHECK: cost of 24 {{.*}} fptosi
248  %r109 = fptosi <2 x double> undef to <2 x i64>
249
250  ; CHECK: cost of 16 {{.*}} fptoui
251  %r110 = fptoui <4 x float> undef to <4 x i1>
252  ; CHECK: cost of 16 {{.*}} fptosi
253  %r111 = fptosi <4 x float> undef to <4 x i1>
254  ; CHECK: cost of 3 {{.*}} fptoui
255  %r112 = fptoui <4 x float> undef to <4 x i8>
256  ; CHECK: cost of 3 {{.*}} fptosi
257  %r113 = fptosi <4 x float> undef to <4 x i8>
258  ; CHECK: cost of 2 {{.*}} fptoui
259  %r114 = fptoui <4 x float> undef to <4 x i16>
260  ; CHECK: cost of 2 {{.*}} fptosi
261  %r115 = fptosi <4 x float> undef to <4 x i16>
262  ; CHECK: cost of 1 {{.*}} fptoui
263  %r116 = fptoui <4 x float> undef to <4 x i32>
264  ; CHECK: cost of 1 {{.*}} fptosi
265  %r117 = fptosi <4 x float> undef to <4 x i32>
266  ; CHECK: cost of 48 {{.*}} fptoui
267  %r118 = fptoui <4 x float> undef to <4 x i64>
268  ; CHECK: cost of 48 {{.*}} fptosi
269  %r119 = fptosi <4 x float> undef to <4 x i64>
270
271  ; CHECK: cost of 16 {{.*}} fptoui
272  %r120 = fptoui <4 x double> undef to <4 x i1>
273  ; CHECK: cost of 16 {{.*}} fptosi
274  %r121 = fptosi <4 x double> undef to <4 x i1>
275  ; CHECK: cost of 16 {{.*}} fptoui
276  %r122 = fptoui <4 x double> undef to <4 x i8>
277  ; CHECK: cost of 16 {{.*}} fptosi
278  %r123 = fptosi <4 x double> undef to <4 x i8>
279  ; CHECK: cost of 16 {{.*}} fptoui
280  %r124 = fptoui <4 x double> undef to <4 x i16>
281  ; CHECK: cost of 16 {{.*}} fptosi
282  %r125 = fptosi <4 x double> undef to <4 x i16>
283  ; CHECK: cost of 16 {{.*}} fptoui
284  %r126 = fptoui <4 x double> undef to <4 x i32>
285  ; CHECK: cost of 16 {{.*}} fptosi
286  %r127 = fptosi <4 x double> undef to <4 x i32>
287  ; CHECK: cost of 48 {{.*}} fptoui
288  %r128 = fptoui <4 x double> undef to <4 x i64>
289  ; CHECK: cost of 48 {{.*}} fptosi
290  %r129 = fptosi <4 x double> undef to <4 x i64>
291
292  ; CHECK: cost of 32 {{.*}} fptoui
293  %r130 = fptoui <8 x float> undef to <8 x i1>
294  ; CHECK: cost of 32 {{.*}} fptosi
295  %r131 = fptosi <8 x float> undef to <8 x i1>
296  ; CHECK: cost of 32 {{.*}} fptoui
297  %r132 = fptoui <8 x float> undef to <8 x i8>
298  ; CHECK: cost of 32 {{.*}} fptosi
299  %r133 = fptosi <8 x float> undef to <8 x i8>
300  ; CHECK: cost of 4 {{.*}} fptoui
301  %r134 = fptoui <8 x float> undef to <8 x i16>
302  ; CHECK: cost of 4 {{.*}} fptosi
303  %r135 = fptosi <8 x float> undef to <8 x i16>
304  ; CHECK: cost of 2 {{.*}} fptoui
305  %r136 = fptoui <8 x float> undef to <8 x i32>
306  ; CHECK: cost of 2 {{.*}} fptosi
307  %r137 = fptosi <8 x float> undef to <8 x i32>
308  ; CHECK: cost of 96 {{.*}} fptoui
309  %r138 = fptoui <8 x float> undef to <8 x i64>
310  ; CHECK: cost of 96 {{.*}} fptosi
311  %r139 = fptosi <8 x float> undef to <8 x i64>
312
313  ; CHECK: cost of 32 {{.*}} fptoui
314  %r140 = fptoui <8 x double> undef to <8 x i1>
315  ; CHECK: cost of 32 {{.*}} fptosi
316  %r141 = fptosi <8 x double> undef to <8 x i1>
317  ; CHECK: cost of 32 {{.*}} fptoui
318  %r142 = fptoui <8 x double> undef to <8 x i8>
319  ; CHECK: cost of 32 {{.*}} fptosi
320  %r143 = fptosi <8 x double> undef to <8 x i8>
321  ; CHECK: cost of 32 {{.*}} fptoui
322  %r144 = fptoui <8 x double> undef to <8 x i16>
323  ; CHECK: cost of 32 {{.*}} fptosi
324  %r145 = fptosi <8 x double> undef to <8 x i16>
325  ; CHECK: cost of 32 {{.*}} fptoui
326  %r146 = fptoui <8 x double> undef to <8 x i32>
327  ; CHECK: cost of 32 {{.*}} fptosi
328  %r147 = fptosi <8 x double> undef to <8 x i32>
329  ; CHECK: cost of 96 {{.*}} fptoui
330  %r148 = fptoui <8 x double> undef to <8 x i64>
331  ; CHECK: cost of 96 {{.*}} fptosi
332  %r149 = fptosi <8 x double> undef to <8 x i64>
333
334  ; CHECK: cost of 64 {{.*}} fptoui
335  %r150 = fptoui <16 x float> undef to <16 x i1>
336  ; CHECK: cost of 64 {{.*}} fptosi
337  %r151 = fptosi <16 x float> undef to <16 x i1>
338  ; CHECK: cost of 64 {{.*}} fptoui
339  %r152 = fptoui <16 x float> undef to <16 x i8>
340  ; CHECK: cost of 64 {{.*}} fptosi
341  %r153 = fptosi <16 x float> undef to <16 x i8>
342  ; CHECK: cost of 8 {{.*}} fptoui
343  %r154 = fptoui <16 x float> undef to <16 x i16>
344  ; CHECK: cost of 8 {{.*}} fptosi
345  %r155 = fptosi <16 x float> undef to <16 x i16>
346  ; CHECK: cost of 4 {{.*}} fptoui
347  %r156 = fptoui <16 x float> undef to <16 x i32>
348  ; CHECK: cost of 4 {{.*}} fptosi
349  %r157 = fptosi <16 x float> undef to <16 x i32>
350  ; CHECK: cost of 192 {{.*}} fptoui
351  %r158 = fptoui <16 x float> undef to <16 x i64>
352  ; CHECK: cost of 192 {{.*}} fptosi
353  %r159 = fptosi <16 x float> undef to <16 x i64>
354
355  ; CHECK: cost of 64 {{.*}} fptoui
356  %r160 = fptoui <16 x double> undef to <16 x i1>
357  ; CHECK: cost of 64 {{.*}} fptosi
358  %r161 = fptosi <16 x double> undef to <16 x i1>
359  ; CHECK: cost of 64 {{.*}} fptoui
360  %r162 = fptoui <16 x double> undef to <16 x i8>
361  ; CHECK: cost of 64 {{.*}} fptosi
362  %r163 = fptosi <16 x double> undef to <16 x i8>
363  ; CHECK: cost of 64 {{.*}} fptoui
364  %r164 = fptoui <16 x double> undef to <16 x i16>
365  ; CHECK: cost of 64 {{.*}} fptosi
366  %r165 = fptosi <16 x double> undef to <16 x i16>
367  ; CHECK: cost of 64 {{.*}} fptoui
368  %r166 = fptoui <16 x double> undef to <16 x i32>
369  ; CHECK: cost of 64 {{.*}} fptosi
370  %r167 = fptosi <16 x double> undef to <16 x i32>
371  ; CHECK: cost of 192 {{.*}} fptoui
372  %r168 = fptoui <16 x double> undef to <16 x i64>
373  ; CHECK: cost of 192 {{.*}} fptosi
374  %r169 = fptosi <16 x double> undef to <16 x i64>
375
376  ; CHECK: cost of 8 {{.*}} uitofp
377  %r170 = uitofp <2 x i1> undef to <2 x float>
378  ; CHECK: cost of 8 {{.*}} sitofp
379  %r171 = sitofp <2 x i1> undef to <2 x float>
380  ; CHECK: cost of 3 {{.*}} uitofp
381  %r172 = uitofp <2 x i8> undef to <2 x float>
382  ; CHECK: cost of 3 {{.*}} sitofp
383  %r173 = sitofp <2 x i8> undef to <2 x float>
384  ; CHECK: cost of 2 {{.*}} uitofp
385  %r174 = uitofp <2 x i16> undef to <2 x float>
386  ; CHECK: cost of 2 {{.*}} sitofp
387  %r175 = sitofp <2 x i16> undef to <2 x float>
388  ; CHECK: cost of 1 {{.*}} uitofp
389  %r176 = uitofp <2 x i32> undef to <2 x float>
390  ; CHECK: cost of 1 {{.*}} sitofp
391  %r177 = sitofp <2 x i32> undef to <2 x float>
392  ; CHECK: cost of 24 {{.*}} uitofp
393  %r178 = uitofp <2 x i64> undef to <2 x float>
394  ; CHECK: cost of 24 {{.*}} sitofp
395  %r179 = sitofp <2 x i64> undef to <2 x float>
396
397  ; CHECK: cost of 8 {{.*}} uitofp
398  %r180 = uitofp <2 x i1> undef to <2 x double>
399  ; CHECK: cost of 8 {{.*}} sitofp
400  %r181 = sitofp <2 x i1> undef to <2 x double>
401  ; CHECK: cost of 4 {{.*}} uitofp
402  %r182 = uitofp <2 x i8> undef to <2 x double>
403  ; CHECK: cost of 4 {{.*}} sitofp
404  %r183 = sitofp <2 x i8> undef to <2 x double>
405  ; CHECK: cost of 3 {{.*}} uitofp
406  %r184 = uitofp <2 x i16> undef to <2 x double>
407  ; CHECK: cost of 3 {{.*}} sitofp
408  %r185 = sitofp <2 x i16> undef to <2 x double>
409  ; CHECK: cost of 2 {{.*}} uitofp
410  %r186 = uitofp <2 x i32> undef to <2 x double>
411  ; CHECK: cost of 2 {{.*}} sitofp
412  %r187 = sitofp <2 x i32> undef to <2 x double>
413  ; CHECK: cost of 24 {{.*}} uitofp
414  %r188 = uitofp <2 x i64> undef to <2 x double>
415  ; CHECK: cost of 24 {{.*}} sitofp
416  %r189 = sitofp <2 x i64> undef to <2 x double>
417
418  ; CHECK: cost of 3 {{.*}} uitofp
419  %r190 = uitofp <4 x i1> undef to <4 x float>
420  ; CHECK: cost of 3 {{.*}} sitofp
421  %r191 = sitofp <4 x i1> undef to <4 x float>
422  ; CHECK: cost of 3 {{.*}} uitofp
423  %r192 = uitofp <4 x i8> undef to <4 x float>
424  ; CHECK: cost of 3 {{.*}} sitofp
425  %r193 = sitofp <4 x i8> undef to <4 x float>
426  ; CHECK: cost of 2 {{.*}} uitofp
427  %r194 = uitofp <4 x i16> undef to <4 x float>
428  ; CHECK: cost of 2 {{.*}} sitofp
429  %r195 = sitofp <4 x i16> undef to <4 x float>
430  ; CHECK: cost of 1 {{.*}} uitofp
431  %r196 = uitofp <4 x i32> undef to <4 x float>
432  ; CHECK: cost of 1 {{.*}} sitofp
433  %r197 = sitofp <4 x i32> undef to <4 x float>
434  ; CHECK: cost of 48 {{.*}} uitofp
435  %r198 = uitofp <4 x i64> undef to <4 x float>
436  ; CHECK: cost of 48 {{.*}} sitofp
437  %r199 = sitofp <4 x i64> undef to <4 x float>
438
439  ; CHECK: cost of 16 {{.*}} uitofp
440  %r200 = uitofp <4 x i1> undef to <4 x double>
441  ; CHECK: cost of 16 {{.*}} sitofp
442  %r201 = sitofp <4 x i1> undef to <4 x double>
443  ; CHECK: cost of 16 {{.*}} uitofp
444  %r202 = uitofp <4 x i8> undef to <4 x double>
445  ; CHECK: cost of 16 {{.*}} sitofp
446  %r203 = sitofp <4 x i8> undef to <4 x double>
447  ; CHECK: cost of 16 {{.*}} uitofp
448  %r204 = uitofp <4 x i16> undef to <4 x double>
449  ; CHECK: cost of 16 {{.*}} sitofp
450  %r205 = sitofp <4 x i16> undef to <4 x double>
451  ; CHECK: cost of 16 {{.*}} uitofp
452  %r206 = uitofp <4 x i32> undef to <4 x double>
453  ; CHECK: cost of 16 {{.*}} sitofp
454  %r207 = sitofp <4 x i32> undef to <4 x double>
455  ; CHECK: cost of 48 {{.*}} uitofp
456  %r208 = uitofp <4 x i64> undef to <4 x double>
457  ; CHECK: cost of 48 {{.*}} sitofp
458  %r209 = sitofp <4 x i64> undef to <4 x double>
459
460  ; CHECK: cost of 32 {{.*}} uitofp
461  %r210 = uitofp <8 x i1> undef to <8 x float>
462  ; CHECK: cost of 32 {{.*}} sitofp
463  %r211 = sitofp <8 x i1> undef to <8 x float>
464  ; CHECK: cost of 32 {{.*}} uitofp
465  %r212 = uitofp <8 x i8> undef to <8 x float>
466  ; CHECK: cost of 32 {{.*}} sitofp
467  %r213 = sitofp <8 x i8> undef to <8 x float>
468  ; CHECK: cost of 4 {{.*}} uitofp
469  %r214 = uitofp <8 x i16> undef to <8 x float>
470  ; CHECK: cost of 4 {{.*}} sitofp
471  %r215 = sitofp <8 x i16> undef to <8 x float>
472  ; CHECK: cost of 2 {{.*}} uitofp
473  %r216 = uitofp <8 x i32> undef to <8 x float>
474  ; CHECK: cost of 2 {{.*}} sitofp
475  %r217 = sitofp <8 x i32> undef to <8 x float>
476  ; CHECK: cost of 96 {{.*}} uitofp
477  %r218 = uitofp <8 x i64> undef to <8 x float>
478  ; CHECK: cost of 96 {{.*}} sitofp
479  %r219 = sitofp <8 x i64> undef to <8 x float>
480
481  ; CHECK: cost of 32 {{.*}} uitofp
482  %r220 = uitofp <8 x i1> undef to <8 x double>
483  ; CHECK: cost of 32 {{.*}} sitofp
484  %r221 = sitofp <8 x i1> undef to <8 x double>
485  ; CHECK: cost of 32 {{.*}} uitofp
486  %r222 = uitofp <8 x i8> undef to <8 x double>
487  ; CHECK: cost of 32 {{.*}} sitofp
488  %r223 = sitofp <8 x i8> undef to <8 x double>
489  ; CHECK: cost of 32 {{.*}} uitofp
490  %r224 = uitofp <8 x i16> undef to <8 x double>
491  ; CHECK: cost of 32 {{.*}} sitofp
492  %r225 = sitofp <8 x i16> undef to <8 x double>
493  ; CHECK: cost of 32 {{.*}} uitofp
494  %r226 = uitofp <8 x i16> undef to <8 x double>
495  ; CHECK: cost of 32 {{.*}} sitofp
496  %r227 = sitofp <8 x i16> undef to <8 x double>
497  ; CHECK: cost of 96 {{.*}} uitofp
498  %r228 = uitofp <8 x i64> undef to <8 x double>
499  ; CHECK: cost of 96 {{.*}} sitofp
500  %r229 = sitofp <8 x i64> undef to <8 x double>
501
502  ; CHECK: cost of 64 {{.*}} uitofp
503  %r230 = uitofp <16 x i1> undef to <16 x float>
504  ; CHECK: cost of 64 {{.*}} sitofp
505  %r231 = sitofp <16 x i1> undef to <16 x float>
506  ; CHECK: cost of 64 {{.*}} uitofp
507  %r232 = uitofp <16 x i8> undef to <16 x float>
508  ; CHECK: cost of 64 {{.*}} sitofp
509  %r233 = sitofp <16 x i8> undef to <16 x float>
510  ; CHECK: cost of 8 {{.*}} uitofp
511  %r234 = uitofp <16 x i16> undef to <16 x float>
512  ; CHECK: cost of 8 {{.*}} sitofp
513  %r235 = sitofp <16 x i16> undef to <16 x float>
514  ; CHECK: cost of 4 {{.*}} uitofp
515  %r236 = uitofp <16 x i32> undef to <16 x float>
516  ; CHECK: cost of 4 {{.*}} sitofp
517  %r237 = sitofp <16 x i32> undef to <16 x float>
518  ; CHECK: cost of 192 {{.*}} uitofp
519  %r238 = uitofp <16 x i64> undef to <16 x float>
520  ; CHECK: cost of 192 {{.*}} sitofp
521  %r239 = sitofp <16 x i64> undef to <16 x float>
522
523  ; CHECK: cost of 64 {{.*}} uitofp
524  %r240 = uitofp <16 x i1> undef to <16 x double>
525  ; CHECK: cost of 64 {{.*}} sitofp
526  %r241 = sitofp <16 x i1> undef to <16 x double>
527  ; CHECK: cost of 64 {{.*}} uitofp
528  %r242 = uitofp <16 x i8> undef to <16 x double>
529  ; CHECK: cost of 64 {{.*}} sitofp
530  %r243 = sitofp <16 x i8> undef to <16 x double>
531  ; C4ECK: cost of 64 {{.*}} uitofp
532  %r244 = uitofp <16 x i16> undef to <16 x double>
533  ; CHECK: cost of 64 {{.*}} sitofp
534  %r245 = sitofp <16 x i16> undef to <16 x double>
535  ; CHECK: cost of 64 {{.*}} uitofp
536  %r246 = uitofp <16 x i16> undef to <16 x double>
537  ; CHECK: cost of 64 {{.*}} sitofp
538  %r247 = sitofp <16 x i16> undef to <16 x double>
539  ; CHECK: cost of 192 {{.*}} uitofp
540  %r248 = uitofp <16 x i64> undef to <16 x double>
541  ; CHECK: cost of 192 {{.*}} sitofp
542  %r249 = sitofp <16 x i64> undef to <16 x double>
543
544  ;CHECK: cost of 0 {{.*}} ret
545  ret i32 undef
546}
547
548