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