1; RUN: opt < %s -cost-model -analyze -mtriple=systemz-unknown -mcpu=z13 \
2; RUN:  | FileCheck %s -check-prefixes=CHECK,Z13
3; RUN: opt < %s -cost-model -analyze -mtriple=systemz-unknown -mcpu=z15 \
4; RUN:  | FileCheck %s -check-prefixes=CHECK,Z15
5;
6; Note: The scalarized vector instructions costs are not including any
7; extracts, due to the undef operands.
8
9define void @fpext() {
10  %v0 = fpext double undef to fp128
11  %v1 = fpext float undef to fp128
12  %v2 = fpext float undef to double
13  %v3 = fpext <2 x double> undef to <2 x fp128>
14  %v4 = fpext <2 x float> undef to <2 x fp128>
15  %v5 = fpext <2 x float> undef to <2 x double>
16  %v6 = fpext <4 x double> undef to <4 x fp128>
17  %v7 = fpext <4 x float> undef to <4 x fp128>
18  %v8 = fpext <4 x float> undef to <4 x double>
19  %v9 = fpext <8 x double> undef to <8 x fp128>
20  %v10 = fpext <8 x float> undef to <8 x fp128>
21  %v11 = fpext <8 x float> undef to <8 x double>
22  %v12 = fpext <16 x float> undef to <16 x double>
23
24; CHECK: Cost Model: Found an estimated cost of 1 for instruction:   %v0 = fpext double undef to fp128
25; CHECK: Cost Model: Found an estimated cost of 1 for instruction:   %v1 = fpext float undef to fp128
26; CHECK: Cost Model: Found an estimated cost of 1 for instruction:   %v2 = fpext float undef to double
27; CHECK: Cost Model: Found an estimated cost of 4 for instruction:   %v3 = fpext <2 x double> undef to <2 x fp128>
28; CHECK: Cost Model: Found an estimated cost of 4 for instruction:   %v4 = fpext <2 x float> undef to <2 x fp128>
29; CHECK: Cost Model: Found an estimated cost of 4 for instruction:   %v5 = fpext <2 x float> undef to <2 x double>
30; CHECK: Cost Model: Found an estimated cost of 8 for instruction:   %v6 = fpext <4 x double> undef to <4 x fp128>
31; CHECK: Cost Model: Found an estimated cost of 8 for instruction:   %v7 = fpext <4 x float> undef to <4 x fp128>
32; CHECK: Cost Model: Found an estimated cost of 8 for instruction:   %v8 = fpext <4 x float> undef to <4 x double>
33; CHECK: Cost Model: Found an estimated cost of 16 for instruction:   %v9 = fpext <8 x double> undef to <8 x fp128>
34; CHECK: Cost Model: Found an estimated cost of 16 for instruction:   %v10 = fpext <8 x float> undef to <8 x fp128>
35; CHECK: Cost Model: Found an estimated cost of 16 for instruction:   %v11 = fpext <8 x float> undef to <8 x double>
36; CHECK: Cost Model: Found an estimated cost of 32 for instruction:   %v12 = fpext <16 x float> undef to <16 x double>
37
38  ret void;
39}
40
41define void @fptosi() {
42  %v0 = fptosi fp128 undef to i64
43  %v1 = fptosi fp128 undef to i32
44  %v2 = fptosi fp128 undef to i16
45  %v3 = fptosi fp128 undef to i8
46  %v4 = fptosi double undef to i64
47  %v5 = fptosi double undef to i32
48  %v6 = fptosi double undef to i16
49  %v7 = fptosi double undef to i8
50  %v8 = fptosi float undef to i64
51  %v9 = fptosi float undef to i32
52  %v10 = fptosi float undef to i16
53  %v11 = fptosi float undef to i8
54  %v12 = fptosi <2 x fp128> undef to <2 x i64>
55  %v13 = fptosi <2 x fp128> undef to <2 x i32>
56  %v14 = fptosi <2 x fp128> undef to <2 x i16>
57  %v15 = fptosi <2 x fp128> undef to <2 x i8>
58  %v16 = fptosi <2 x double> undef to <2 x i64>
59  %v17 = fptosi <2 x double> undef to <2 x i32>
60  %v18 = fptosi <2 x double> undef to <2 x i16>
61  %v19 = fptosi <2 x double> undef to <2 x i8>
62  %v20 = fptosi <2 x float> undef to <2 x i64>
63  %v21 = fptosi <2 x float> undef to <2 x i32>
64  %v22 = fptosi <2 x float> undef to <2 x i16>
65  %v23 = fptosi <2 x float> undef to <2 x i8>
66  %v24 = fptosi <4 x fp128> undef to <4 x i64>
67  %v25 = fptosi <4 x fp128> undef to <4 x i32>
68  %v26 = fptosi <4 x fp128> undef to <4 x i16>
69  %v27 = fptosi <4 x fp128> undef to <4 x i8>
70  %v28 = fptosi <4 x double> undef to <4 x i64>
71  %v29 = fptosi <4 x double> undef to <4 x i32>
72  %v30 = fptosi <4 x double> undef to <4 x i16>
73  %v31 = fptosi <4 x double> undef to <4 x i8>
74  %v32 = fptosi <4 x float> undef to <4 x i64>
75  %v33 = fptosi <4 x float> undef to <4 x i32>
76  %v34 = fptosi <4 x float> undef to <4 x i16>
77  %v35 = fptosi <4 x float> undef to <4 x i8>
78  %v36 = fptosi <8 x fp128> undef to <8 x i64>
79  %v37 = fptosi <8 x fp128> undef to <8 x i32>
80  %v38 = fptosi <8 x fp128> undef to <8 x i16>
81  %v39 = fptosi <8 x fp128> undef to <8 x i8>
82  %v40 = fptosi <8 x double> undef to <8 x i64>
83  %v41 = fptosi <8 x double> undef to <8 x i32>
84  %v42 = fptosi <8 x double> undef to <8 x i16>
85  %v43 = fptosi <8 x double> undef to <8 x i8>
86  %v44 = fptosi <8 x float> undef to <8 x i64>
87  %v45 = fptosi <8 x float> undef to <8 x i32>
88  %v46 = fptosi <8 x float> undef to <8 x i16>
89  %v47 = fptosi <8 x float> undef to <8 x i8>
90  %v48 = fptosi <16 x double> undef to <16 x i64>
91  %v49 = fptosi <16 x double> undef to <16 x i32>
92  %v50 = fptosi <16 x double> undef to <16 x i16>
93  %v51 = fptosi <16 x double> undef to <16 x i8>
94  %v52 = fptosi <16 x float> undef to <16 x i64>
95  %v53 = fptosi <16 x float> undef to <16 x i32>
96  %v54 = fptosi <16 x float> undef to <16 x i16>
97  %v55 = fptosi <16 x float> undef to <16 x i8>
98
99; CHECK: Cost Model: Found an estimated cost of 1 for instruction:   %v0 = fptosi fp128 undef to i64
100; CHECK: Cost Model: Found an estimated cost of 1 for instruction:   %v1 = fptosi fp128 undef to i32
101; CHECK: Cost Model: Found an estimated cost of 1 for instruction:   %v2 = fptosi fp128 undef to i16
102; CHECK: Cost Model: Found an estimated cost of 1 for instruction:   %v3 = fptosi fp128 undef to i8
103; CHECK: Cost Model: Found an estimated cost of 1 for instruction:   %v4 = fptosi double undef to i64
104; CHECK: Cost Model: Found an estimated cost of 1 for instruction:   %v5 = fptosi double undef to i32
105; CHECK: Cost Model: Found an estimated cost of 1 for instruction:   %v6 = fptosi double undef to i16
106; CHECK: Cost Model: Found an estimated cost of 1 for instruction:   %v7 = fptosi double undef to i8
107; CHECK: Cost Model: Found an estimated cost of 1 for instruction:   %v8 = fptosi float undef to i64
108; CHECK: Cost Model: Found an estimated cost of 1 for instruction:   %v9 = fptosi float undef to i32
109; CHECK: Cost Model: Found an estimated cost of 1 for instruction:   %v10 = fptosi float undef to i16
110; CHECK: Cost Model: Found an estimated cost of 1 for instruction:   %v11 = fptosi float undef to i8
111; CHECK: Cost Model: Found an estimated cost of 3 for instruction:   %v12 = fptosi <2 x fp128> undef to <2 x i64>
112; CHECK: Cost Model: Found an estimated cost of 4 for instruction:   %v13 = fptosi <2 x fp128> undef to <2 x i32>
113; CHECK: Cost Model: Found an estimated cost of 4 for instruction:   %v14 = fptosi <2 x fp128> undef to <2 x i16>
114; CHECK: Cost Model: Found an estimated cost of 4 for instruction:   %v15 = fptosi <2 x fp128> undef to <2 x i8>
115; CHECK: Cost Model: Found an estimated cost of 1 for instruction:   %v16 = fptosi <2 x double> undef to <2 x i64>
116; CHECK: Cost Model: Found an estimated cost of 6 for instruction:   %v17 = fptosi <2 x double> undef to <2 x i32>
117; CHECK: Cost Model: Found an estimated cost of 6 for instruction:   %v18 = fptosi <2 x double> undef to <2 x i16>
118; CHECK: Cost Model: Found an estimated cost of 6 for instruction:   %v19 = fptosi <2 x double> undef to <2 x i8>
119; CHECK: Cost Model: Found an estimated cost of 5 for instruction:   %v20 = fptosi <2 x float> undef to <2 x i64>
120; Z13:   Cost Model: Found an estimated cost of 12 for instruction:   %v21 = fptosi <2 x float> undef to <2 x i32>
121; Z15:   Cost Model: Found an estimated cost of 1 for instruction:   %v21 = fptosi <2 x float> undef to <2 x i32>
122; CHECK: Cost Model: Found an estimated cost of 6 for instruction:   %v22 = fptosi <2 x float> undef to <2 x i16>
123; CHECK: Cost Model: Found an estimated cost of 6 for instruction:   %v23 = fptosi <2 x float> undef to <2 x i8>
124; CHECK: Cost Model: Found an estimated cost of 6 for instruction:   %v24 = fptosi <4 x fp128> undef to <4 x i64>
125; CHECK: Cost Model: Found an estimated cost of 8 for instruction:   %v25 = fptosi <4 x fp128> undef to <4 x i32>
126; CHECK: Cost Model: Found an estimated cost of 8 for instruction:   %v26 = fptosi <4 x fp128> undef to <4 x i16>
127; CHECK: Cost Model: Found an estimated cost of 8 for instruction:   %v27 = fptosi <4 x fp128> undef to <4 x i8>
128; CHECK: Cost Model: Found an estimated cost of 2 for instruction:   %v28 = fptosi <4 x double> undef to <4 x i64>
129; CHECK: Cost Model: Found an estimated cost of 12 for instruction:   %v29 = fptosi <4 x double> undef to <4 x i32>
130; CHECK: Cost Model: Found an estimated cost of 12 for instruction:   %v30 = fptosi <4 x double> undef to <4 x i16>
131; CHECK: Cost Model: Found an estimated cost of 12 for instruction:   %v31 = fptosi <4 x double> undef to <4 x i8>
132; CHECK: Cost Model: Found an estimated cost of 10 for instruction:   %v32 = fptosi <4 x float> undef to <4 x i64>
133; Z13:   Cost Model: Found an estimated cost of 12 for instruction:   %v33 = fptosi <4 x float> undef to <4 x i32>
134; Z15:   Cost Model: Found an estimated cost of 1 for instruction:   %v33 = fptosi <4 x float> undef to <4 x i32>
135; CHECK: Cost Model: Found an estimated cost of 12 for instruction:   %v34 = fptosi <4 x float> undef to <4 x i16>
136; CHECK: Cost Model: Found an estimated cost of 12 for instruction:   %v35 = fptosi <4 x float> undef to <4 x i8>
137; CHECK: Cost Model: Found an estimated cost of 12 for instruction:   %v36 = fptosi <8 x fp128> undef to <8 x i64>
138; CHECK: Cost Model: Found an estimated cost of 16 for instruction:   %v37 = fptosi <8 x fp128> undef to <8 x i32>
139; CHECK: Cost Model: Found an estimated cost of 16 for instruction:   %v38 = fptosi <8 x fp128> undef to <8 x i16>
140; CHECK: Cost Model: Found an estimated cost of 16 for instruction:   %v39 = fptosi <8 x fp128> undef to <8 x i8>
141; CHECK: Cost Model: Found an estimated cost of 4 for instruction:   %v40 = fptosi <8 x double> undef to <8 x i64>
142; CHECK: Cost Model: Found an estimated cost of 24 for instruction:   %v41 = fptosi <8 x double> undef to <8 x i32>
143; CHECK: Cost Model: Found an estimated cost of 24 for instruction:   %v42 = fptosi <8 x double> undef to <8 x i16>
144; CHECK: Cost Model: Found an estimated cost of 24 for instruction:   %v43 = fptosi <8 x double> undef to <8 x i8>
145; CHECK: Cost Model: Found an estimated cost of 20 for instruction:   %v44 = fptosi <8 x float> undef to <8 x i64>
146; Z13:   Cost Model: Found an estimated cost of 24 for instruction:   %v45 = fptosi <8 x float> undef to <8 x i32>
147; Z15:   Cost Model: Found an estimated cost of 2 for instruction:   %v45 = fptosi <8 x float> undef to <8 x i32>
148; CHECK: Cost Model: Found an estimated cost of 24 for instruction:   %v46 = fptosi <8 x float> undef to <8 x i16>
149; CHECK: Cost Model: Found an estimated cost of 24 for instruction:   %v47 = fptosi <8 x float> undef to <8 x i8>
150; CHECK: Cost Model: Found an estimated cost of 8 for instruction:   %v48 = fptosi <16 x double> undef to <16 x i64>
151; CHECK: Cost Model: Found an estimated cost of 48 for instruction:   %v49 = fptosi <16 x double> undef to <16 x i32>
152; CHECK: Cost Model: Found an estimated cost of 48 for instruction:   %v50 = fptosi <16 x double> undef to <16 x i16>
153; CHECK: Cost Model: Found an estimated cost of 48 for instruction:   %v51 = fptosi <16 x double> undef to <16 x i8>
154; CHECK: Cost Model: Found an estimated cost of 40 for instruction:   %v52 = fptosi <16 x float> undef to <16 x i64>
155; Z13:   Cost Model: Found an estimated cost of 48 for instruction:   %v53 = fptosi <16 x float> undef to <16 x i32>
156; Z15:   Cost Model: Found an estimated cost of 4 for instruction:   %v53 = fptosi <16 x float> undef to <16 x i32>
157; CHECK: Cost Model: Found an estimated cost of 48 for instruction:   %v54 = fptosi <16 x float> undef to <16 x i16>
158; CHECK: Cost Model: Found an estimated cost of 48 for instruction:   %v55 = fptosi <16 x float> undef to <16 x i8>
159
160  ret void;
161}
162
163
164define void @fptoui() {
165  %v0 = fptoui fp128 undef to i64
166  %v1 = fptoui fp128 undef to i32
167  %v2 = fptoui fp128 undef to i16
168  %v3 = fptoui fp128 undef to i8
169  %v4 = fptoui double undef to i64
170  %v5 = fptoui double undef to i32
171  %v6 = fptoui double undef to i16
172  %v7 = fptoui double undef to i8
173  %v8 = fptoui float undef to i64
174  %v9 = fptoui float undef to i32
175  %v10 = fptoui float undef to i16
176  %v11 = fptoui float undef to i8
177  %v12 = fptoui <2 x fp128> undef to <2 x i64>
178  %v13 = fptoui <2 x fp128> undef to <2 x i32>
179  %v14 = fptoui <2 x fp128> undef to <2 x i16>
180  %v15 = fptoui <2 x fp128> undef to <2 x i8>
181  %v16 = fptoui <2 x double> undef to <2 x i64>
182  %v17 = fptoui <2 x double> undef to <2 x i32>
183  %v18 = fptoui <2 x double> undef to <2 x i16>
184  %v19 = fptoui <2 x double> undef to <2 x i8>
185  %v20 = fptoui <2 x float> undef to <2 x i64>
186  %v21 = fptoui <2 x float> undef to <2 x i32>
187  %v22 = fptoui <2 x float> undef to <2 x i16>
188  %v23 = fptoui <2 x float> undef to <2 x i8>
189  %v24 = fptoui <4 x fp128> undef to <4 x i64>
190  %v25 = fptoui <4 x fp128> undef to <4 x i32>
191  %v26 = fptoui <4 x fp128> undef to <4 x i16>
192  %v27 = fptoui <4 x fp128> undef to <4 x i8>
193  %v28 = fptoui <4 x double> undef to <4 x i64>
194  %v29 = fptoui <4 x double> undef to <4 x i32>
195  %v30 = fptoui <4 x double> undef to <4 x i16>
196  %v31 = fptoui <4 x double> undef to <4 x i8>
197  %v32 = fptoui <4 x float> undef to <4 x i64>
198  %v33 = fptoui <4 x float> undef to <4 x i32>
199  %v34 = fptoui <4 x float> undef to <4 x i16>
200  %v35 = fptoui <4 x float> undef to <4 x i8>
201  %v36 = fptoui <8 x fp128> undef to <8 x i64>
202  %v37 = fptoui <8 x fp128> undef to <8 x i32>
203  %v38 = fptoui <8 x fp128> undef to <8 x i16>
204  %v39 = fptoui <8 x fp128> undef to <8 x i8>
205  %v40 = fptoui <8 x double> undef to <8 x i64>
206  %v41 = fptoui <8 x double> undef to <8 x i32>
207  %v42 = fptoui <8 x double> undef to <8 x i16>
208  %v43 = fptoui <8 x double> undef to <8 x i8>
209  %v44 = fptoui <8 x float> undef to <8 x i64>
210  %v45 = fptoui <8 x float> undef to <8 x i32>
211  %v46 = fptoui <8 x float> undef to <8 x i16>
212  %v47 = fptoui <8 x float> undef to <8 x i8>
213  %v48 = fptoui <16 x double> undef to <16 x i64>
214  %v49 = fptoui <16 x double> undef to <16 x i32>
215  %v50 = fptoui <16 x double> undef to <16 x i16>
216  %v51 = fptoui <16 x double> undef to <16 x i8>
217  %v52 = fptoui <16 x float> undef to <16 x i64>
218  %v53 = fptoui <16 x float> undef to <16 x i32>
219  %v54 = fptoui <16 x float> undef to <16 x i16>
220  %v55 = fptoui <16 x float> undef to <16 x i8>
221
222; CHECK: Cost Model: Found an estimated cost of 1 for instruction:   %v0 = fptoui fp128 undef to i64
223; CHECK: Cost Model: Found an estimated cost of 1 for instruction:   %v1 = fptoui fp128 undef to i32
224; CHECK: Cost Model: Found an estimated cost of 1 for instruction:   %v2 = fptoui fp128 undef to i16
225; CHECK: Cost Model: Found an estimated cost of 1 for instruction:   %v3 = fptoui fp128 undef to i8
226; CHECK: Cost Model: Found an estimated cost of 1 for instruction:   %v4 = fptoui double undef to i64
227; CHECK: Cost Model: Found an estimated cost of 1 for instruction:   %v5 = fptoui double undef to i32
228; CHECK: Cost Model: Found an estimated cost of 1 for instruction:   %v6 = fptoui double undef to i16
229; CHECK: Cost Model: Found an estimated cost of 1 for instruction:   %v7 = fptoui double undef to i8
230; CHECK: Cost Model: Found an estimated cost of 1 for instruction:   %v8 = fptoui float undef to i64
231; CHECK: Cost Model: Found an estimated cost of 1 for instruction:   %v9 = fptoui float undef to i32
232; CHECK: Cost Model: Found an estimated cost of 1 for instruction:   %v10 = fptoui float undef to i16
233; CHECK: Cost Model: Found an estimated cost of 1 for instruction:   %v11 = fptoui float undef to i8
234; CHECK: Cost Model: Found an estimated cost of 3 for instruction:   %v12 = fptoui <2 x fp128> undef to <2 x i64>
235; CHECK: Cost Model: Found an estimated cost of 4 for instruction:   %v13 = fptoui <2 x fp128> undef to <2 x i32>
236; CHECK: Cost Model: Found an estimated cost of 4 for instruction:   %v14 = fptoui <2 x fp128> undef to <2 x i16>
237; CHECK: Cost Model: Found an estimated cost of 4 for instruction:   %v15 = fptoui <2 x fp128> undef to <2 x i8>
238; CHECK: Cost Model: Found an estimated cost of 1 for instruction:   %v16 = fptoui <2 x double> undef to <2 x i64>
239; CHECK: Cost Model: Found an estimated cost of 6 for instruction:   %v17 = fptoui <2 x double> undef to <2 x i32>
240; CHECK: Cost Model: Found an estimated cost of 6 for instruction:   %v18 = fptoui <2 x double> undef to <2 x i16>
241; CHECK: Cost Model: Found an estimated cost of 6 for instruction:   %v19 = fptoui <2 x double> undef to <2 x i8>
242; CHECK: Cost Model: Found an estimated cost of 5 for instruction:   %v20 = fptoui <2 x float> undef to <2 x i64>
243; Z13:   Cost Model: Found an estimated cost of 12 for instruction:   %v21 = fptoui <2 x float> undef to <2 x i32>
244; Z15:   Cost Model: Found an estimated cost of 1 for instruction:   %v21 = fptoui <2 x float> undef to <2 x i32>
245; CHECK: Cost Model: Found an estimated cost of 6 for instruction:   %v22 = fptoui <2 x float> undef to <2 x i16>
246; CHECK: Cost Model: Found an estimated cost of 6 for instruction:   %v23 = fptoui <2 x float> undef to <2 x i8>
247; CHECK: Cost Model: Found an estimated cost of 6 for instruction:   %v24 = fptoui <4 x fp128> undef to <4 x i64>
248; CHECK: Cost Model: Found an estimated cost of 8 for instruction:   %v25 = fptoui <4 x fp128> undef to <4 x i32>
249; CHECK: Cost Model: Found an estimated cost of 8 for instruction:   %v26 = fptoui <4 x fp128> undef to <4 x i16>
250; CHECK: Cost Model: Found an estimated cost of 8 for instruction:   %v27 = fptoui <4 x fp128> undef to <4 x i8>
251; CHECK: Cost Model: Found an estimated cost of 2 for instruction:   %v28 = fptoui <4 x double> undef to <4 x i64>
252; CHECK: Cost Model: Found an estimated cost of 12 for instruction:   %v29 = fptoui <4 x double> undef to <4 x i32>
253; CHECK: Cost Model: Found an estimated cost of 12 for instruction:   %v30 = fptoui <4 x double> undef to <4 x i16>
254; CHECK: Cost Model: Found an estimated cost of 12 for instruction:   %v31 = fptoui <4 x double> undef to <4 x i8>
255; CHECK: Cost Model: Found an estimated cost of 10 for instruction:   %v32 = fptoui <4 x float> undef to <4 x i64>
256; Z13:   Cost Model: Found an estimated cost of 12 for instruction:   %v33 = fptoui <4 x float> undef to <4 x i32>
257; Z15:   Cost Model: Found an estimated cost of 1 for instruction:   %v33 = fptoui <4 x float> undef to <4 x i32>
258; CHECK: Cost Model: Found an estimated cost of 12 for instruction:   %v34 = fptoui <4 x float> undef to <4 x i16>
259; CHECK: Cost Model: Found an estimated cost of 12 for instruction:   %v35 = fptoui <4 x float> undef to <4 x i8>
260; CHECK: Cost Model: Found an estimated cost of 12 for instruction:   %v36 = fptoui <8 x fp128> undef to <8 x i64>
261; CHECK: Cost Model: Found an estimated cost of 16 for instruction:   %v37 = fptoui <8 x fp128> undef to <8 x i32>
262; CHECK: Cost Model: Found an estimated cost of 16 for instruction:   %v38 = fptoui <8 x fp128> undef to <8 x i16>
263; CHECK: Cost Model: Found an estimated cost of 16 for instruction:   %v39 = fptoui <8 x fp128> undef to <8 x i8>
264; CHECK: Cost Model: Found an estimated cost of 4 for instruction:   %v40 = fptoui <8 x double> undef to <8 x i64>
265; CHECK: Cost Model: Found an estimated cost of 24 for instruction:   %v41 = fptoui <8 x double> undef to <8 x i32>
266; CHECK: Cost Model: Found an estimated cost of 24 for instruction:   %v42 = fptoui <8 x double> undef to <8 x i16>
267; CHECK: Cost Model: Found an estimated cost of 24 for instruction:   %v43 = fptoui <8 x double> undef to <8 x i8>
268; CHECK: Cost Model: Found an estimated cost of 20 for instruction:   %v44 = fptoui <8 x float> undef to <8 x i64>
269; Z13:   Cost Model: Found an estimated cost of 24 for instruction:   %v45 = fptoui <8 x float> undef to <8 x i32>
270; Z15:   Cost Model: Found an estimated cost of 2 for instruction:   %v45 = fptoui <8 x float> undef to <8 x i32>
271; CHECK: Cost Model: Found an estimated cost of 24 for instruction:   %v46 = fptoui <8 x float> undef to <8 x i16>
272; CHECK: Cost Model: Found an estimated cost of 24 for instruction:   %v47 = fptoui <8 x float> undef to <8 x i8>
273; CHECK: Cost Model: Found an estimated cost of 8 for instruction:   %v48 = fptoui <16 x double> undef to <16 x i64>
274; CHECK: Cost Model: Found an estimated cost of 48 for instruction:   %v49 = fptoui <16 x double> undef to <16 x i32>
275; CHECK: Cost Model: Found an estimated cost of 48 for instruction:   %v50 = fptoui <16 x double> undef to <16 x i16>
276; CHECK: Cost Model: Found an estimated cost of 48 for instruction:   %v51 = fptoui <16 x double> undef to <16 x i8>
277; CHECK: Cost Model: Found an estimated cost of 40 for instruction:   %v52 = fptoui <16 x float> undef to <16 x i64>
278; Z13:   Cost Model: Found an estimated cost of 48 for instruction:   %v53 = fptoui <16 x float> undef to <16 x i32>
279; Z15:   Cost Model: Found an estimated cost of 4 for instruction:   %v53 = fptoui <16 x float> undef to <16 x i32>
280; CHECK: Cost Model: Found an estimated cost of 48 for instruction:   %v54 = fptoui <16 x float> undef to <16 x i16>
281; CHECK: Cost Model: Found an estimated cost of 48 for instruction:   %v55 = fptoui <16 x float> undef to <16 x i8>
282
283  ret void;
284}
285
286define void @fptrunc() {
287  %v0 = fptrunc fp128 undef to double
288  %v1 = fptrunc fp128 undef to float
289  %v2 = fptrunc double undef to float
290  %v3 = fptrunc <2 x fp128> undef to <2 x double>
291  %v4 = fptrunc <2 x fp128> undef to <2 x float>
292  %v5 = fptrunc <2 x double> undef to <2 x float>
293  %v6 = fptrunc <4 x fp128> undef to <4 x double>
294  %v7 = fptrunc <4 x fp128> undef to <4 x float>
295  %v8 = fptrunc <4 x double> undef to <4 x float>
296  %v9 = fptrunc <8 x fp128> undef to <8 x double>
297  %v10 = fptrunc <8 x fp128> undef to <8 x float>
298  %v11 = fptrunc <8 x double> undef to <8 x float>
299  %v12 = fptrunc <16 x double> undef to <16 x float>
300
301; CHECK: Cost Model: Found an estimated cost of 1 for instruction:   %v0 = fptrunc fp128 undef to double
302; CHECK: Cost Model: Found an estimated cost of 1 for instruction:   %v1 = fptrunc fp128 undef to float
303; CHECK: Cost Model: Found an estimated cost of 1 for instruction:   %v2 = fptrunc double undef to float
304; CHECK: Cost Model: Found an estimated cost of 4 for instruction:   %v3 = fptrunc <2 x fp128> undef to <2 x double>
305; CHECK: Cost Model: Found an estimated cost of 4 for instruction:   %v4 = fptrunc <2 x fp128> undef to <2 x float>
306; CHECK: Cost Model: Found an estimated cost of 2 for instruction:   %v5 = fptrunc <2 x double> undef to <2 x float>
307; CHECK: Cost Model: Found an estimated cost of 8 for instruction:   %v6 = fptrunc <4 x fp128> undef to <4 x double>
308; CHECK: Cost Model: Found an estimated cost of 8 for instruction:   %v7 = fptrunc <4 x fp128> undef to <4 x float>
309; CHECK: Cost Model: Found an estimated cost of 3 for instruction:   %v8 = fptrunc <4 x double> undef to <4 x float>
310; CHECK: Cost Model: Found an estimated cost of 16 for instruction:   %v9 = fptrunc <8 x fp128> undef to <8 x double>
311; CHECK: Cost Model: Found an estimated cost of 16 for instruction:   %v10 = fptrunc <8 x fp128> undef to <8 x float>
312; CHECK: Cost Model: Found an estimated cost of 6 for instruction:   %v11 = fptrunc <8 x double> undef to <8 x float>
313; CHECK: Cost Model: Found an estimated cost of 12 for instruction:   %v12 = fptrunc <16 x double> undef to <16 x float>
314
315  ret void;
316}
317
318define void @sitofp() {
319  %v0 = sitofp i64 undef to fp128
320  %v1 = sitofp i64 undef to double
321  %v2 = sitofp i64 undef to float
322  %v3 = sitofp i32 undef to fp128
323  %v4 = sitofp i32 undef to double
324  %v5 = sitofp i32 undef to float
325  %v6 = sitofp i16 undef to fp128
326  %v7 = sitofp i16 undef to double
327  %v8 = sitofp i16 undef to float
328  %v9 = sitofp i8 undef to fp128
329  %v10 = sitofp i8 undef to double
330  %v11 = sitofp i8 undef to float
331  %v12 = sitofp <2 x i64> undef to <2 x fp128>
332  %v13 = sitofp <2 x i64> undef to <2 x double>
333  %v14 = sitofp <2 x i64> undef to <2 x float>
334  %v15 = sitofp <2 x i32> undef to <2 x fp128>
335  %v16 = sitofp <2 x i32> undef to <2 x double>
336  %v17 = sitofp <2 x i32> undef to <2 x float>
337  %v18 = sitofp <2 x i16> undef to <2 x fp128>
338  %v19 = sitofp <2 x i16> undef to <2 x double>
339  %v20 = sitofp <2 x i16> undef to <2 x float>
340  %v21 = sitofp <2 x i8> undef to <2 x fp128>
341  %v22 = sitofp <2 x i8> undef to <2 x double>
342  %v23 = sitofp <2 x i8> undef to <2 x float>
343  %v24 = sitofp <4 x i64> undef to <4 x fp128>
344  %v25 = sitofp <4 x i64> undef to <4 x double>
345  %v26 = sitofp <4 x i64> undef to <4 x float>
346  %v27 = sitofp <4 x i32> undef to <4 x fp128>
347  %v28 = sitofp <4 x i32> undef to <4 x double>
348  %v29 = sitofp <4 x i32> undef to <4 x float>
349  %v30 = sitofp <4 x i16> undef to <4 x fp128>
350  %v31 = sitofp <4 x i16> undef to <4 x double>
351  %v32 = sitofp <4 x i16> undef to <4 x float>
352  %v33 = sitofp <4 x i8> undef to <4 x fp128>
353  %v34 = sitofp <4 x i8> undef to <4 x double>
354  %v35 = sitofp <4 x i8> undef to <4 x float>
355  %v36 = sitofp <8 x i64> undef to <8 x fp128>
356  %v37 = sitofp <8 x i64> undef to <8 x double>
357  %v38 = sitofp <8 x i64> undef to <8 x float>
358  %v39 = sitofp <8 x i32> undef to <8 x fp128>
359  %v40 = sitofp <8 x i32> undef to <8 x double>
360  %v41 = sitofp <8 x i32> undef to <8 x float>
361  %v42 = sitofp <8 x i16> undef to <8 x fp128>
362  %v43 = sitofp <8 x i16> undef to <8 x double>
363  %v44 = sitofp <8 x i16> undef to <8 x float>
364  %v45 = sitofp <8 x i8> undef to <8 x fp128>
365  %v46 = sitofp <8 x i8> undef to <8 x double>
366  %v47 = sitofp <8 x i8> undef to <8 x float>
367  %v48 = sitofp <16 x i64> undef to <16 x double>
368  %v49 = sitofp <16 x i64> undef to <16 x float>
369  %v50 = sitofp <16 x i32> undef to <16 x double>
370  %v51 = sitofp <16 x i32> undef to <16 x float>
371  %v52 = sitofp <16 x i16> undef to <16 x double>
372  %v53 = sitofp <16 x i16> undef to <16 x float>
373  %v54 = sitofp <16 x i8> undef to <16 x double>
374  %v55 = sitofp <16 x i8> undef to <16 x float>
375
376; CHECK: Cost Model: Found an estimated cost of 1 for instruction:   %v0 = sitofp i64 undef to fp128
377; CHECK: Cost Model: Found an estimated cost of 1 for instruction:   %v1 = sitofp i64 undef to double
378; CHECK: Cost Model: Found an estimated cost of 1 for instruction:   %v2 = sitofp i64 undef to float
379; CHECK: Cost Model: Found an estimated cost of 1 for instruction:   %v3 = sitofp i32 undef to fp128
380; CHECK: Cost Model: Found an estimated cost of 1 for instruction:   %v4 = sitofp i32 undef to double
381; CHECK: Cost Model: Found an estimated cost of 1 for instruction:   %v5 = sitofp i32 undef to float
382; CHECK: Cost Model: Found an estimated cost of 2 for instruction:   %v6 = sitofp i16 undef to fp128
383; CHECK: Cost Model: Found an estimated cost of 2 for instruction:   %v7 = sitofp i16 undef to double
384; CHECK: Cost Model: Found an estimated cost of 2 for instruction:   %v8 = sitofp i16 undef to float
385; CHECK: Cost Model: Found an estimated cost of 2 for instruction:   %v9 = sitofp i8 undef to fp128
386; CHECK: Cost Model: Found an estimated cost of 2 for instruction:   %v10 = sitofp i8 undef to double
387; CHECK: Cost Model: Found an estimated cost of 2 for instruction:   %v11 = sitofp i8 undef to float
388; CHECK: Cost Model: Found an estimated cost of 5 for instruction:   %v12 = sitofp <2 x i64> undef to <2 x fp128>
389; CHECK: Cost Model: Found an estimated cost of 1 for instruction:   %v13 = sitofp <2 x i64> undef to <2 x double>
390; CHECK: Cost Model: Found an estimated cost of 7 for instruction:   %v14 = sitofp <2 x i64> undef to <2 x float>
391; CHECK: Cost Model: Found an estimated cost of 5 for instruction:   %v15 = sitofp <2 x i32> undef to <2 x fp128>
392; CHECK: Cost Model: Found an estimated cost of 7 for instruction:   %v16 = sitofp <2 x i32> undef to <2 x double>
393; Z13:   Cost Model: Found an estimated cost of 14 for instruction:   %v17 = sitofp <2 x i32> undef to <2 x float>
394; Z15:   Cost Model: Found an estimated cost of 1 for instruction:   %v17 = sitofp <2 x i32> undef to <2 x float>
395; CHECK: Cost Model: Found an estimated cost of 7 for instruction:   %v18 = sitofp <2 x i16> undef to <2 x fp128>
396; CHECK: Cost Model: Found an estimated cost of 9 for instruction:   %v19 = sitofp <2 x i16> undef to <2 x double>
397; CHECK: Cost Model: Found an estimated cost of 9 for instruction:   %v20 = sitofp <2 x i16> undef to <2 x float>
398; CHECK: Cost Model: Found an estimated cost of 7 for instruction:   %v21 = sitofp <2 x i8> undef to <2 x fp128>
399; CHECK: Cost Model: Found an estimated cost of 9 for instruction:   %v22 = sitofp <2 x i8> undef to <2 x double>
400; CHECK: Cost Model: Found an estimated cost of 9 for instruction:   %v23 = sitofp <2 x i8> undef to <2 x float>
401; CHECK: Cost Model: Found an estimated cost of 9 for instruction:   %v24 = sitofp <4 x i64> undef to <4 x fp128>
402; CHECK: Cost Model: Found an estimated cost of 2 for instruction:   %v25 = sitofp <4 x i64> undef to <4 x double>
403; CHECK: Cost Model: Found an estimated cost of 13 for instruction:   %v26 = sitofp <4 x i64> undef to <4 x float>
404; CHECK: Cost Model: Found an estimated cost of 9 for instruction:   %v27 = sitofp <4 x i32> undef to <4 x fp128>
405; CHECK: Cost Model: Found an estimated cost of 13 for instruction:   %v28 = sitofp <4 x i32> undef to <4 x double>
406; Z13:   Cost Model: Found an estimated cost of 13 for instruction:   %v29 = sitofp <4 x i32> undef to <4 x float>
407; Z15:   Cost Model: Found an estimated cost of 1 for instruction:   %v29 = sitofp <4 x i32> undef to <4 x float>
408; CHECK: Cost Model: Found an estimated cost of 13 for instruction:   %v30 = sitofp <4 x i16> undef to <4 x fp128>
409; CHECK: Cost Model: Found an estimated cost of 17 for instruction:   %v31 = sitofp <4 x i16> undef to <4 x double>
410; CHECK: Cost Model: Found an estimated cost of 17 for instruction:   %v32 = sitofp <4 x i16> undef to <4 x float>
411; CHECK: Cost Model: Found an estimated cost of 13 for instruction:   %v33 = sitofp <4 x i8> undef to <4 x fp128>
412; CHECK: Cost Model: Found an estimated cost of 17 for instruction:   %v34 = sitofp <4 x i8> undef to <4 x double>
413; CHECK: Cost Model: Found an estimated cost of 17 for instruction:   %v35 = sitofp <4 x i8> undef to <4 x float>
414; CHECK: Cost Model: Found an estimated cost of 17 for instruction:   %v36 = sitofp <8 x i64> undef to <8 x fp128>
415; CHECK: Cost Model: Found an estimated cost of 4 for instruction:   %v37 = sitofp <8 x i64> undef to <8 x double>
416; CHECK: Cost Model: Found an estimated cost of 25 for instruction:   %v38 = sitofp <8 x i64> undef to <8 x float>
417; CHECK: Cost Model: Found an estimated cost of 17 for instruction:   %v39 = sitofp <8 x i32> undef to <8 x fp128>
418; CHECK: Cost Model: Found an estimated cost of 25 for instruction:   %v40 = sitofp <8 x i32> undef to <8 x double>
419; Z13:   Cost Model: Found an estimated cost of 25 for instruction:   %v41 = sitofp <8 x i32> undef to <8 x float>
420; Z15:   Cost Model: Found an estimated cost of 2 for instruction:   %v41 = sitofp <8 x i32> undef to <8 x float>
421; CHECK: Cost Model: Found an estimated cost of 25 for instruction:   %v42 = sitofp <8 x i16> undef to <8 x fp128>
422; CHECK: Cost Model: Found an estimated cost of 33 for instruction:   %v43 = sitofp <8 x i16> undef to <8 x double>
423; CHECK: Cost Model: Found an estimated cost of 33 for instruction:   %v44 = sitofp <8 x i16> undef to <8 x float>
424; CHECK: Cost Model: Found an estimated cost of 25 for instruction:   %v45 = sitofp <8 x i8> undef to <8 x fp128>
425; CHECK: Cost Model: Found an estimated cost of 33 for instruction:   %v46 = sitofp <8 x i8> undef to <8 x double>
426; CHECK: Cost Model: Found an estimated cost of 33 for instruction:   %v47 = sitofp <8 x i8> undef to <8 x float>
427; CHECK: Cost Model: Found an estimated cost of 8 for instruction:   %v48 = sitofp <16 x i64> undef to <16 x double>
428; CHECK: Cost Model: Found an estimated cost of 49 for instruction:   %v49 = sitofp <16 x i64> undef to <16 x float>
429; CHECK: Cost Model: Found an estimated cost of 49 for instruction:   %v50 = sitofp <16 x i32> undef to <16 x double>
430; Z13:   Cost Model: Found an estimated cost of 49 for instruction:   %v51 = sitofp <16 x i32> undef to <16 x float>
431; Z15:   Cost Model: Found an estimated cost of 4 for instruction:   %v51 = sitofp <16 x i32> undef to <16 x float>
432; CHECK: Cost Model: Found an estimated cost of 65 for instruction:   %v52 = sitofp <16 x i16> undef to <16 x double>
433; CHECK: Cost Model: Found an estimated cost of 65 for instruction:   %v53 = sitofp <16 x i16> undef to <16 x float>
434; CHECK: Cost Model: Found an estimated cost of 65 for instruction:   %v54 = sitofp <16 x i8> undef to <16 x double>
435; CHECK: Cost Model: Found an estimated cost of 65 for instruction:   %v55 = sitofp <16 x i8> undef to <16 x float>
436
437  ret void;
438}
439
440define void @uitofp() {
441  %v0 = uitofp i64 undef to fp128
442  %v1 = uitofp i64 undef to double
443  %v2 = uitofp i64 undef to float
444  %v3 = uitofp i32 undef to fp128
445  %v4 = uitofp i32 undef to double
446  %v5 = uitofp i32 undef to float
447  %v6 = uitofp i16 undef to fp128
448  %v7 = uitofp i16 undef to double
449  %v8 = uitofp i16 undef to float
450  %v9 = uitofp i8 undef to fp128
451  %v10 = uitofp i8 undef to double
452  %v11 = uitofp i8 undef to float
453  %v12 = uitofp <2 x i64> undef to <2 x fp128>
454  %v13 = uitofp <2 x i64> undef to <2 x double>
455  %v14 = uitofp <2 x i64> undef to <2 x float>
456  %v15 = uitofp <2 x i32> undef to <2 x fp128>
457  %v16 = uitofp <2 x i32> undef to <2 x double>
458  %v17 = uitofp <2 x i32> undef to <2 x float>
459  %v18 = uitofp <2 x i16> undef to <2 x fp128>
460  %v19 = uitofp <2 x i16> undef to <2 x double>
461  %v20 = uitofp <2 x i16> undef to <2 x float>
462  %v21 = uitofp <2 x i8> undef to <2 x fp128>
463  %v22 = uitofp <2 x i8> undef to <2 x double>
464  %v23 = uitofp <2 x i8> undef to <2 x float>
465  %v24 = uitofp <4 x i64> undef to <4 x fp128>
466  %v25 = uitofp <4 x i64> undef to <4 x double>
467  %v26 = uitofp <4 x i64> undef to <4 x float>
468  %v27 = uitofp <4 x i32> undef to <4 x fp128>
469  %v28 = uitofp <4 x i32> undef to <4 x double>
470  %v29 = uitofp <4 x i32> undef to <4 x float>
471  %v30 = uitofp <4 x i16> undef to <4 x fp128>
472  %v31 = uitofp <4 x i16> undef to <4 x double>
473  %v32 = uitofp <4 x i16> undef to <4 x float>
474  %v33 = uitofp <4 x i8> undef to <4 x fp128>
475  %v34 = uitofp <4 x i8> undef to <4 x double>
476  %v35 = uitofp <4 x i8> undef to <4 x float>
477  %v36 = uitofp <8 x i64> undef to <8 x fp128>
478  %v37 = uitofp <8 x i64> undef to <8 x double>
479  %v38 = uitofp <8 x i64> undef to <8 x float>
480  %v39 = uitofp <8 x i32> undef to <8 x fp128>
481  %v40 = uitofp <8 x i32> undef to <8 x double>
482  %v41 = uitofp <8 x i32> undef to <8 x float>
483  %v42 = uitofp <8 x i16> undef to <8 x fp128>
484  %v43 = uitofp <8 x i16> undef to <8 x double>
485  %v44 = uitofp <8 x i16> undef to <8 x float>
486  %v45 = uitofp <8 x i8> undef to <8 x fp128>
487  %v46 = uitofp <8 x i8> undef to <8 x double>
488  %v47 = uitofp <8 x i8> undef to <8 x float>
489  %v48 = uitofp <16 x i64> undef to <16 x double>
490  %v49 = uitofp <16 x i64> undef to <16 x float>
491  %v50 = uitofp <16 x i32> undef to <16 x double>
492  %v51 = uitofp <16 x i32> undef to <16 x float>
493  %v52 = uitofp <16 x i16> undef to <16 x double>
494  %v53 = uitofp <16 x i16> undef to <16 x float>
495  %v54 = uitofp <16 x i8> undef to <16 x double>
496  %v55 = uitofp <16 x i8> undef to <16 x float>
497
498; CHECK: Cost Model: Found an estimated cost of 1 for instruction:   %v0 = uitofp i64 undef to fp128
499; CHECK: Cost Model: Found an estimated cost of 1 for instruction:   %v1 = uitofp i64 undef to double
500; CHECK: Cost Model: Found an estimated cost of 1 for instruction:   %v2 = uitofp i64 undef to float
501; CHECK: Cost Model: Found an estimated cost of 1 for instruction:   %v3 = uitofp i32 undef to fp128
502; CHECK: Cost Model: Found an estimated cost of 1 for instruction:   %v4 = uitofp i32 undef to double
503; CHECK: Cost Model: Found an estimated cost of 1 for instruction:   %v5 = uitofp i32 undef to float
504; CHECK: Cost Model: Found an estimated cost of 2 for instruction:   %v6 = uitofp i16 undef to fp128
505; CHECK: Cost Model: Found an estimated cost of 2 for instruction:   %v7 = uitofp i16 undef to double
506; CHECK: Cost Model: Found an estimated cost of 2 for instruction:   %v8 = uitofp i16 undef to float
507; CHECK: Cost Model: Found an estimated cost of 2 for instruction:   %v9 = uitofp i8 undef to fp128
508; CHECK: Cost Model: Found an estimated cost of 2 for instruction:   %v10 = uitofp i8 undef to double
509; CHECK: Cost Model: Found an estimated cost of 2 for instruction:   %v11 = uitofp i8 undef to float
510; CHECK: Cost Model: Found an estimated cost of 5 for instruction:   %v12 = uitofp <2 x i64> undef to <2 x fp128>
511; CHECK: Cost Model: Found an estimated cost of 1 for instruction:   %v13 = uitofp <2 x i64> undef to <2 x double>
512; CHECK: Cost Model: Found an estimated cost of 7 for instruction:   %v14 = uitofp <2 x i64> undef to <2 x float>
513; CHECK: Cost Model: Found an estimated cost of 5 for instruction:   %v15 = uitofp <2 x i32> undef to <2 x fp128>
514; CHECK: Cost Model: Found an estimated cost of 7 for instruction:   %v16 = uitofp <2 x i32> undef to <2 x double>
515; Z13:   Cost Model: Found an estimated cost of 14 for instruction:   %v17 = uitofp <2 x i32> undef to <2 x float>
516; Z15:   Cost Model: Found an estimated cost of 1 for instruction:   %v17 = uitofp <2 x i32> undef to <2 x float>
517; CHECK: Cost Model: Found an estimated cost of 7 for instruction:   %v18 = uitofp <2 x i16> undef to <2 x fp128>
518; CHECK: Cost Model: Found an estimated cost of 9 for instruction:   %v19 = uitofp <2 x i16> undef to <2 x double>
519; CHECK: Cost Model: Found an estimated cost of 9 for instruction:   %v20 = uitofp <2 x i16> undef to <2 x float>
520; CHECK: Cost Model: Found an estimated cost of 7 for instruction:   %v21 = uitofp <2 x i8> undef to <2 x fp128>
521; CHECK: Cost Model: Found an estimated cost of 9 for instruction:   %v22 = uitofp <2 x i8> undef to <2 x double>
522; CHECK: Cost Model: Found an estimated cost of 9 for instruction:   %v23 = uitofp <2 x i8> undef to <2 x float>
523; CHECK: Cost Model: Found an estimated cost of 9 for instruction:   %v24 = uitofp <4 x i64> undef to <4 x fp128>
524; CHECK: Cost Model: Found an estimated cost of 2 for instruction:   %v25 = uitofp <4 x i64> undef to <4 x double>
525; CHECK: Cost Model: Found an estimated cost of 13 for instruction:   %v26 = uitofp <4 x i64> undef to <4 x float>
526; CHECK: Cost Model: Found an estimated cost of 9 for instruction:   %v27 = uitofp <4 x i32> undef to <4 x fp128>
527; CHECK: Cost Model: Found an estimated cost of 13 for instruction:   %v28 = uitofp <4 x i32> undef to <4 x double>
528; Z13:   Cost Model: Found an estimated cost of 13 for instruction:   %v29 = uitofp <4 x i32> undef to <4 x float>
529; Z15:   Cost Model: Found an estimated cost of 1 for instruction:   %v29 = uitofp <4 x i32> undef to <4 x float>
530; CHECK: Cost Model: Found an estimated cost of 13 for instruction:   %v30 = uitofp <4 x i16> undef to <4 x fp128>
531; CHECK: Cost Model: Found an estimated cost of 17 for instruction:   %v31 = uitofp <4 x i16> undef to <4 x double>
532; CHECK: Cost Model: Found an estimated cost of 17 for instruction:   %v32 = uitofp <4 x i16> undef to <4 x float>
533; CHECK: Cost Model: Found an estimated cost of 13 for instruction:   %v33 = uitofp <4 x i8> undef to <4 x fp128>
534; CHECK: Cost Model: Found an estimated cost of 17 for instruction:   %v34 = uitofp <4 x i8> undef to <4 x double>
535; CHECK: Cost Model: Found an estimated cost of 17 for instruction:   %v35 = uitofp <4 x i8> undef to <4 x float>
536; CHECK: Cost Model: Found an estimated cost of 17 for instruction:   %v36 = uitofp <8 x i64> undef to <8 x fp128>
537; CHECK: Cost Model: Found an estimated cost of 4 for instruction:   %v37 = uitofp <8 x i64> undef to <8 x double>
538; CHECK: Cost Model: Found an estimated cost of 25 for instruction:   %v38 = uitofp <8 x i64> undef to <8 x float>
539; CHECK: Cost Model: Found an estimated cost of 17 for instruction:   %v39 = uitofp <8 x i32> undef to <8 x fp128>
540; CHECK: Cost Model: Found an estimated cost of 25 for instruction:   %v40 = uitofp <8 x i32> undef to <8 x double>
541; Z13:   Cost Model: Found an estimated cost of 25 for instruction:   %v41 = uitofp <8 x i32> undef to <8 x float>
542; Z15:   Cost Model: Found an estimated cost of 2 for instruction:   %v41 = uitofp <8 x i32> undef to <8 x float>
543; CHECK: Cost Model: Found an estimated cost of 25 for instruction:   %v42 = uitofp <8 x i16> undef to <8 x fp128>
544; CHECK: Cost Model: Found an estimated cost of 33 for instruction:   %v43 = uitofp <8 x i16> undef to <8 x double>
545; CHECK: Cost Model: Found an estimated cost of 33 for instruction:   %v44 = uitofp <8 x i16> undef to <8 x float>
546; CHECK: Cost Model: Found an estimated cost of 25 for instruction:   %v45 = uitofp <8 x i8> undef to <8 x fp128>
547; CHECK: Cost Model: Found an estimated cost of 33 for instruction:   %v46 = uitofp <8 x i8> undef to <8 x double>
548; CHECK: Cost Model: Found an estimated cost of 33 for instruction:   %v47 = uitofp <8 x i8> undef to <8 x float>
549; CHECK: Cost Model: Found an estimated cost of 8 for instruction:   %v48 = uitofp <16 x i64> undef to <16 x double>
550; CHECK: Cost Model: Found an estimated cost of 49 for instruction:   %v49 = uitofp <16 x i64> undef to <16 x float>
551; CHECK: Cost Model: Found an estimated cost of 49 for instruction:   %v50 = uitofp <16 x i32> undef to <16 x double>
552; Z13:   Cost Model: Found an estimated cost of 49 for instruction:   %v51 = uitofp <16 x i32> undef to <16 x float>
553; Z15:   Cost Model: Found an estimated cost of 4 for instruction:   %v51 = uitofp <16 x i32> undef to <16 x float>
554; CHECK: Cost Model: Found an estimated cost of 65 for instruction:   %v52 = uitofp <16 x i16> undef to <16 x double>
555; CHECK: Cost Model: Found an estimated cost of 65 for instruction:   %v53 = uitofp <16 x i16> undef to <16 x float>
556; CHECK: Cost Model: Found an estimated cost of 65 for instruction:   %v54 = uitofp <16 x i8> undef to <16 x double>
557; CHECK: Cost Model: Found an estimated cost of 65 for instruction:   %v55 = uitofp <16 x i8> undef to <16 x float>
558
559  ret void;
560}
561
562define void @sitofp_extload(i16 *%src16, i8 *%src8) {
563  %ld16 = load i16, i16 *%src16
564  %v6 = sitofp i16 %ld16 to fp128
565  %v7 = sitofp i16 %ld16 to double
566  %v8 = sitofp i16 %ld16 to float
567
568  %ld8 = load i8, i8 *%src8
569  %v9 = sitofp i8 %ld8 to fp128
570  %v10 = sitofp i8 %ld8 to double
571  %v11 = sitofp i8 %ld8 to float
572
573; CHECK: Cost Model: Found an estimated cost of 1 for instruction:   %ld16 = load i16, i16* %src16
574; CHECK: Cost Model: Found an estimated cost of 1 for instruction:   %v6 = sitofp i16 %ld16 to fp128
575; CHECK: Cost Model: Found an estimated cost of 1 for instruction:   %v7 = sitofp i16 %ld16 to double
576; CHECK: Cost Model: Found an estimated cost of 1 for instruction:   %v8 = sitofp i16 %ld16 to float
577; CHECK: Cost Model: Found an estimated cost of 1 for instruction:   %ld8 = load i8, i8* %src8
578; CHECK: Cost Model: Found an estimated cost of 1 for instruction:   %v9 = sitofp i8 %ld8 to fp128
579; CHECK: Cost Model: Found an estimated cost of 1 for instruction:   %v10 = sitofp i8 %ld8 to double
580; CHECK: Cost Model: Found an estimated cost of 1 for instruction:   %v11 = sitofp i8 %ld8 to float
581
582  ret void;
583}
584
585define void @uitofp_extload(i16 *%src16, i8 *%src8) {
586  %ld16 = load i16, i16 *%src16
587  %v6 = uitofp i16 %ld16 to fp128
588  %v7 = uitofp i16 %ld16 to double
589  %v8 = uitofp i16 %ld16 to float
590
591  %ld8 = load i8, i8 *%src8
592  %v9 = uitofp i8 %ld8 to fp128
593  %v10 = uitofp i8 %ld8 to double
594  %v11 = uitofp i8 %ld8 to float
595
596; CHECK: Cost Model: Found an estimated cost of 1 for instruction:   %ld16 = load i16, i16* %src16
597; CHECK: Cost Model: Found an estimated cost of 1 for instruction:   %v6 = uitofp i16 %ld16 to fp128
598; CHECK: Cost Model: Found an estimated cost of 1 for instruction:   %v7 = uitofp i16 %ld16 to double
599; CHECK: Cost Model: Found an estimated cost of 1 for instruction:   %v8 = uitofp i16 %ld16 to float
600; CHECK: Cost Model: Found an estimated cost of 1 for instruction:   %ld8 = load i8, i8* %src8
601; CHECK: Cost Model: Found an estimated cost of 1 for instruction:   %v9 = uitofp i8 %ld8 to fp128
602; CHECK: Cost Model: Found an estimated cost of 1 for instruction:   %v10 = uitofp i8 %ld8 to double
603; CHECK: Cost Model: Found an estimated cost of 1 for instruction:   %v11 = uitofp i8 %ld8 to float
604
605  ret void;
606}
607