1; NOTE: Assertions have been autogenerated by utils/update_analyze_test_checks.py
2; RUN: opt -passes='print<cost-model>' -cost-kind=throughput 2>&1 -disable-output -mtriple=aarch64-linux-gnu < %s | FileCheck %s
3
4define void @i1() {
5; CHECK-LABEL: 'i1'
6; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %c = add i1 undef, undef
7; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %d = sub i1 undef, undef
8; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %e = mul i1 undef, undef
9; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %f = ashr i1 undef, undef
10; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %g = lshr i1 undef, undef
11; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %h = shl i1 undef, undef
12; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %i = and i1 undef, undef
13; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %j = or i1 undef, undef
14; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %k = xor i1 undef, undef
15; CHECK-NEXT:  Cost Model: Found an estimated cost of 0 for instruction: ret void
16;
17  %c = add i1 undef, undef
18  %d = sub i1 undef, undef
19  %e = mul i1 undef, undef
20  %f = ashr i1 undef, undef
21  %g = lshr i1 undef, undef
22  %h = shl i1 undef, undef
23  %i = and i1 undef, undef
24  %j = or i1 undef, undef
25  %k = xor i1 undef, undef
26  ret void
27}
28
29define void @i8() {
30; CHECK-LABEL: 'i8'
31; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %c = add i8 undef, undef
32; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %d = sub i8 undef, undef
33; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %e = mul i8 undef, undef
34; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %f = ashr i8 undef, undef
35; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %g = lshr i8 undef, undef
36; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %h = shl i8 undef, undef
37; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %i = and i8 undef, undef
38; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %j = or i8 undef, undef
39; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %k = xor i8 undef, undef
40; CHECK-NEXT:  Cost Model: Found an estimated cost of 0 for instruction: ret void
41;
42  %c = add i8 undef, undef
43  %d = sub i8 undef, undef
44  %e = mul i8 undef, undef
45  %f = ashr i8 undef, undef
46  %g = lshr i8 undef, undef
47  %h = shl i8 undef, undef
48  %i = and i8 undef, undef
49  %j = or i8 undef, undef
50  %k = xor i8 undef, undef
51  ret void
52}
53
54define void @i16() {
55; CHECK-LABEL: 'i16'
56; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %c = add i16 undef, undef
57; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %d = sub i16 undef, undef
58; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %e = mul i16 undef, undef
59; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %f = ashr i16 undef, undef
60; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %g = lshr i16 undef, undef
61; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %h = shl i16 undef, undef
62; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %i = and i16 undef, undef
63; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %j = or i16 undef, undef
64; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %k = xor i16 undef, undef
65; CHECK-NEXT:  Cost Model: Found an estimated cost of 0 for instruction: ret void
66;
67  %c = add i16 undef, undef
68  %d = sub i16 undef, undef
69  %e = mul i16 undef, undef
70  %f = ashr i16 undef, undef
71  %g = lshr i16 undef, undef
72  %h = shl i16 undef, undef
73  %i = and i16 undef, undef
74  %j = or i16 undef, undef
75  %k = xor i16 undef, undef
76  ret void
77}
78
79define void @i32() {
80; CHECK-LABEL: 'i32'
81; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %c = add i32 undef, undef
82; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %d = sub i32 undef, undef
83; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %e = mul i32 undef, undef
84; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %f = ashr i32 undef, undef
85; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %g = lshr i32 undef, undef
86; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %h = shl i32 undef, undef
87; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %i = and i32 undef, undef
88; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %j = or i32 undef, undef
89; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %k = xor i32 undef, undef
90; CHECK-NEXT:  Cost Model: Found an estimated cost of 0 for instruction: ret void
91;
92  %c = add i32 undef, undef
93  %d = sub i32 undef, undef
94  %e = mul i32 undef, undef
95  %f = ashr i32 undef, undef
96  %g = lshr i32 undef, undef
97  %h = shl i32 undef, undef
98  %i = and i32 undef, undef
99  %j = or i32 undef, undef
100  %k = xor i32 undef, undef
101  ret void
102}
103
104define void @i64() {
105; CHECK-LABEL: 'i64'
106; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %c = add i64 undef, undef
107; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %d = sub i64 undef, undef
108; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %e = mul i64 undef, undef
109; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %f = ashr i64 undef, undef
110; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %g = lshr i64 undef, undef
111; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %h = shl i64 undef, undef
112; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %i = and i64 undef, undef
113; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %j = or i64 undef, undef
114; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %k = xor i64 undef, undef
115; CHECK-NEXT:  Cost Model: Found an estimated cost of 0 for instruction: ret void
116;
117  %c = add i64 undef, undef
118  %d = sub i64 undef, undef
119  %e = mul i64 undef, undef
120  %f = ashr i64 undef, undef
121  %g = lshr i64 undef, undef
122  %h = shl i64 undef, undef
123  %i = and i64 undef, undef
124  %j = or i64 undef, undef
125  %k = xor i64 undef, undef
126  ret void
127}
128
129
130define void @vi8() {
131; CHECK-LABEL: 'vi8'
132; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %c2 = add <2 x i8> undef, undef
133; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %d2 = sub <2 x i8> undef, undef
134; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %e2 = mul <2 x i8> undef, undef
135; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %f2 = ashr <2 x i8> undef, undef
136; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %g2 = lshr <2 x i8> undef, undef
137; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %h2 = shl <2 x i8> undef, undef
138; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %i2 = and <2 x i8> undef, undef
139; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %j2 = or <2 x i8> undef, undef
140; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %k2 = xor <2 x i8> undef, undef
141; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %c4 = add <4 x i8> undef, undef
142; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %d4 = sub <4 x i8> undef, undef
143; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %e4 = mul <4 x i8> undef, undef
144; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %f4 = ashr <4 x i8> undef, undef
145; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %g4 = lshr <4 x i8> undef, undef
146; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %h4 = shl <4 x i8> undef, undef
147; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %i4 = and <4 x i8> undef, undef
148; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %j4 = or <4 x i8> undef, undef
149; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %k4 = xor <4 x i8> undef, undef
150; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %c8 = add <8 x i8> undef, undef
151; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %d8 = sub <8 x i8> undef, undef
152; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %e8 = mul <8 x i8> undef, undef
153; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %f8 = ashr <8 x i8> undef, undef
154; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %g8 = lshr <8 x i8> undef, undef
155; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %h8 = shl <8 x i8> undef, undef
156; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %i8 = and <8 x i8> undef, undef
157; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %j8 = or <8 x i8> undef, undef
158; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %k8 = xor <8 x i8> undef, undef
159; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %c16 = add <16 x i8> undef, undef
160; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %d16 = sub <16 x i8> undef, undef
161; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %e16 = mul <16 x i8> undef, undef
162; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %f16 = ashr <16 x i8> undef, undef
163; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %g16 = lshr <16 x i8> undef, undef
164; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %h16 = shl <16 x i8> undef, undef
165; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %i16 = and <16 x i8> undef, undef
166; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %j16 = or <16 x i8> undef, undef
167; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %k16 = xor <16 x i8> undef, undef
168; CHECK-NEXT:  Cost Model: Found an estimated cost of 0 for instruction: ret void
169;
170  %c2 = add <2 x i8> undef, undef
171  %d2 = sub <2 x i8> undef, undef
172  %e2 = mul <2 x i8> undef, undef
173  %f2 = ashr <2 x i8> undef, undef
174  %g2 = lshr <2 x i8> undef, undef
175  %h2 = shl <2 x i8> undef, undef
176  %i2 = and <2 x i8> undef, undef
177  %j2 = or <2 x i8> undef, undef
178  %k2 = xor <2 x i8> undef, undef
179  %c4 = add <4 x i8> undef, undef
180  %d4 = sub <4 x i8> undef, undef
181  %e4 = mul <4 x i8> undef, undef
182  %f4 = ashr <4 x i8> undef, undef
183  %g4 = lshr <4 x i8> undef, undef
184  %h4 = shl <4 x i8> undef, undef
185  %i4 = and <4 x i8> undef, undef
186  %j4 = or <4 x i8> undef, undef
187  %k4 = xor <4 x i8> undef, undef
188  %c8 = add <8 x i8> undef, undef
189  %d8 = sub <8 x i8> undef, undef
190  %e8 = mul <8 x i8> undef, undef
191  %f8 = ashr <8 x i8> undef, undef
192  %g8 = lshr <8 x i8> undef, undef
193  %h8 = shl <8 x i8> undef, undef
194  %i8 = and <8 x i8> undef, undef
195  %j8 = or <8 x i8> undef, undef
196  %k8 = xor <8 x i8> undef, undef
197  %c16 = add <16 x i8> undef, undef
198  %d16 = sub <16 x i8> undef, undef
199  %e16 = mul <16 x i8> undef, undef
200  %f16 = ashr <16 x i8> undef, undef
201  %g16 = lshr <16 x i8> undef, undef
202  %h16 = shl <16 x i8> undef, undef
203  %i16 = and <16 x i8> undef, undef
204  %j16 = or <16 x i8> undef, undef
205  %k16 = xor <16 x i8> undef, undef
206  ret void
207}
208
209define void @vi16() {
210; CHECK-LABEL: 'vi16'
211; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %c2 = add <2 x i16> undef, undef
212; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %d2 = sub <2 x i16> undef, undef
213; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %e2 = mul <2 x i16> undef, undef
214; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %f2 = ashr <2 x i16> undef, undef
215; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %g2 = lshr <2 x i16> undef, undef
216; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %h2 = shl <2 x i16> undef, undef
217; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %i2 = and <2 x i16> undef, undef
218; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %j2 = or <2 x i16> undef, undef
219; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %k2 = xor <2 x i16> undef, undef
220; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %c4 = add <4 x i16> undef, undef
221; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %d4 = sub <4 x i16> undef, undef
222; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %e4 = mul <4 x i16> undef, undef
223; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %f4 = ashr <4 x i16> undef, undef
224; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %g4 = lshr <4 x i16> undef, undef
225; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %h4 = shl <4 x i16> undef, undef
226; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %i4 = and <4 x i16> undef, undef
227; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %j4 = or <4 x i16> undef, undef
228; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %k4 = xor <4 x i16> undef, undef
229; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %c8 = add <8 x i16> undef, undef
230; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %d8 = sub <8 x i16> undef, undef
231; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %e8 = mul <8 x i16> undef, undef
232; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %f8 = ashr <8 x i16> undef, undef
233; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %g8 = lshr <8 x i16> undef, undef
234; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %h8 = shl <8 x i16> undef, undef
235; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %i8 = and <8 x i16> undef, undef
236; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %j8 = or <8 x i16> undef, undef
237; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %k8 = xor <8 x i16> undef, undef
238; CHECK-NEXT:  Cost Model: Found an estimated cost of 2 for instruction: %c16 = add <16 x i16> undef, undef
239; CHECK-NEXT:  Cost Model: Found an estimated cost of 2 for instruction: %d16 = sub <16 x i16> undef, undef
240; CHECK-NEXT:  Cost Model: Found an estimated cost of 2 for instruction: %e16 = mul <16 x i16> undef, undef
241; CHECK-NEXT:  Cost Model: Found an estimated cost of 2 for instruction: %f16 = ashr <16 x i16> undef, undef
242; CHECK-NEXT:  Cost Model: Found an estimated cost of 2 for instruction: %g16 = lshr <16 x i16> undef, undef
243; CHECK-NEXT:  Cost Model: Found an estimated cost of 2 for instruction: %h16 = shl <16 x i16> undef, undef
244; CHECK-NEXT:  Cost Model: Found an estimated cost of 2 for instruction: %i16 = and <16 x i16> undef, undef
245; CHECK-NEXT:  Cost Model: Found an estimated cost of 2 for instruction: %j16 = or <16 x i16> undef, undef
246; CHECK-NEXT:  Cost Model: Found an estimated cost of 2 for instruction: %k16 = xor <16 x i16> undef, undef
247; CHECK-NEXT:  Cost Model: Found an estimated cost of 0 for instruction: ret void
248;
249  %c2 = add <2 x i16> undef, undef
250  %d2 = sub <2 x i16> undef, undef
251  %e2 = mul <2 x i16> undef, undef
252  %f2 = ashr <2 x i16> undef, undef
253  %g2 = lshr <2 x i16> undef, undef
254  %h2 = shl <2 x i16> undef, undef
255  %i2 = and <2 x i16> undef, undef
256  %j2 = or <2 x i16> undef, undef
257  %k2 = xor <2 x i16> undef, undef
258  %c4 = add <4 x i16> undef, undef
259  %d4 = sub <4 x i16> undef, undef
260  %e4 = mul <4 x i16> undef, undef
261  %f4 = ashr <4 x i16> undef, undef
262  %g4 = lshr <4 x i16> undef, undef
263  %h4 = shl <4 x i16> undef, undef
264  %i4 = and <4 x i16> undef, undef
265  %j4 = or <4 x i16> undef, undef
266  %k4 = xor <4 x i16> undef, undef
267  %c8 = add <8 x i16> undef, undef
268  %d8 = sub <8 x i16> undef, undef
269  %e8 = mul <8 x i16> undef, undef
270  %f8 = ashr <8 x i16> undef, undef
271  %g8 = lshr <8 x i16> undef, undef
272  %h8 = shl <8 x i16> undef, undef
273  %i8 = and <8 x i16> undef, undef
274  %j8 = or <8 x i16> undef, undef
275  %k8 = xor <8 x i16> undef, undef
276  %c16 = add <16 x i16> undef, undef
277  %d16 = sub <16 x i16> undef, undef
278  %e16 = mul <16 x i16> undef, undef
279  %f16 = ashr <16 x i16> undef, undef
280  %g16 = lshr <16 x i16> undef, undef
281  %h16 = shl <16 x i16> undef, undef
282  %i16 = and <16 x i16> undef, undef
283  %j16 = or <16 x i16> undef, undef
284  %k16 = xor <16 x i16> undef, undef
285  ret void
286}
287
288define void @vi32() {
289; CHECK-LABEL: 'vi32'
290; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %c2 = add <2 x i32> undef, undef
291; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %d2 = sub <2 x i32> undef, undef
292; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %e2 = mul <2 x i32> undef, undef
293; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %f2 = ashr <2 x i32> undef, undef
294; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %g2 = lshr <2 x i32> undef, undef
295; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %h2 = shl <2 x i32> undef, undef
296; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %i2 = and <2 x i32> undef, undef
297; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %j2 = or <2 x i32> undef, undef
298; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %k2 = xor <2 x i32> undef, undef
299; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %c4 = add <4 x i32> undef, undef
300; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %d4 = sub <4 x i32> undef, undef
301; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %e4 = mul <4 x i32> undef, undef
302; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %f4 = ashr <4 x i32> undef, undef
303; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %g4 = lshr <4 x i32> undef, undef
304; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %h4 = shl <4 x i32> undef, undef
305; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %i4 = and <4 x i32> undef, undef
306; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %j4 = or <4 x i32> undef, undef
307; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %k4 = xor <4 x i32> undef, undef
308; CHECK-NEXT:  Cost Model: Found an estimated cost of 2 for instruction: %c8 = add <8 x i32> undef, undef
309; CHECK-NEXT:  Cost Model: Found an estimated cost of 2 for instruction: %d8 = sub <8 x i32> undef, undef
310; CHECK-NEXT:  Cost Model: Found an estimated cost of 2 for instruction: %e8 = mul <8 x i32> undef, undef
311; CHECK-NEXT:  Cost Model: Found an estimated cost of 2 for instruction: %f8 = ashr <8 x i32> undef, undef
312; CHECK-NEXT:  Cost Model: Found an estimated cost of 2 for instruction: %g8 = lshr <8 x i32> undef, undef
313; CHECK-NEXT:  Cost Model: Found an estimated cost of 2 for instruction: %h8 = shl <8 x i32> undef, undef
314; CHECK-NEXT:  Cost Model: Found an estimated cost of 2 for instruction: %i8 = and <8 x i32> undef, undef
315; CHECK-NEXT:  Cost Model: Found an estimated cost of 2 for instruction: %j8 = or <8 x i32> undef, undef
316; CHECK-NEXT:  Cost Model: Found an estimated cost of 2 for instruction: %k8 = xor <8 x i32> undef, undef
317; CHECK-NEXT:  Cost Model: Found an estimated cost of 4 for instruction: %c16 = add <16 x i32> undef, undef
318; CHECK-NEXT:  Cost Model: Found an estimated cost of 4 for instruction: %d16 = sub <16 x i32> undef, undef
319; CHECK-NEXT:  Cost Model: Found an estimated cost of 4 for instruction: %e16 = mul <16 x i32> undef, undef
320; CHECK-NEXT:  Cost Model: Found an estimated cost of 4 for instruction: %f16 = ashr <16 x i32> undef, undef
321; CHECK-NEXT:  Cost Model: Found an estimated cost of 4 for instruction: %g16 = lshr <16 x i32> undef, undef
322; CHECK-NEXT:  Cost Model: Found an estimated cost of 4 for instruction: %h16 = shl <16 x i32> undef, undef
323; CHECK-NEXT:  Cost Model: Found an estimated cost of 4 for instruction: %i16 = and <16 x i32> undef, undef
324; CHECK-NEXT:  Cost Model: Found an estimated cost of 4 for instruction: %j16 = or <16 x i32> undef, undef
325; CHECK-NEXT:  Cost Model: Found an estimated cost of 4 for instruction: %k16 = xor <16 x i32> undef, undef
326; CHECK-NEXT:  Cost Model: Found an estimated cost of 0 for instruction: ret void
327;
328  %c2 = add <2 x i32> undef, undef
329  %d2 = sub <2 x i32> undef, undef
330  %e2 = mul <2 x i32> undef, undef
331  %f2 = ashr <2 x i32> undef, undef
332  %g2 = lshr <2 x i32> undef, undef
333  %h2 = shl <2 x i32> undef, undef
334  %i2 = and <2 x i32> undef, undef
335  %j2 = or <2 x i32> undef, undef
336  %k2 = xor <2 x i32> undef, undef
337  %c4 = add <4 x i32> undef, undef
338  %d4 = sub <4 x i32> undef, undef
339  %e4 = mul <4 x i32> undef, undef
340  %f4 = ashr <4 x i32> undef, undef
341  %g4 = lshr <4 x i32> undef, undef
342  %h4 = shl <4 x i32> undef, undef
343  %i4 = and <4 x i32> undef, undef
344  %j4 = or <4 x i32> undef, undef
345  %k4 = xor <4 x i32> undef, undef
346  %c8 = add <8 x i32> undef, undef
347  %d8 = sub <8 x i32> undef, undef
348  %e8 = mul <8 x i32> undef, undef
349  %f8 = ashr <8 x i32> undef, undef
350  %g8 = lshr <8 x i32> undef, undef
351  %h8 = shl <8 x i32> undef, undef
352  %i8 = and <8 x i32> undef, undef
353  %j8 = or <8 x i32> undef, undef
354  %k8 = xor <8 x i32> undef, undef
355  %c16 = add <16 x i32> undef, undef
356  %d16 = sub <16 x i32> undef, undef
357  %e16 = mul <16 x i32> undef, undef
358  %f16 = ashr <16 x i32> undef, undef
359  %g16 = lshr <16 x i32> undef, undef
360  %h16 = shl <16 x i32> undef, undef
361  %i16 = and <16 x i32> undef, undef
362  %j16 = or <16 x i32> undef, undef
363  %k16 = xor <16 x i32> undef, undef
364  ret void
365}
366
367define void @vi64() {
368; CHECK-LABEL: 'vi64'
369; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %c2 = add <2 x i64> undef, undef
370; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %d2 = sub <2 x i64> undef, undef
371; CHECK-NEXT:  Cost Model: Found an estimated cost of 14 for instruction: %e2 = mul <2 x i64> undef, undef
372; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %f2 = ashr <2 x i64> undef, undef
373; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %g2 = lshr <2 x i64> undef, undef
374; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %h2 = shl <2 x i64> undef, undef
375; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %i2 = and <2 x i64> undef, undef
376; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %j2 = or <2 x i64> undef, undef
377; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %k2 = xor <2 x i64> undef, undef
378; CHECK-NEXT:  Cost Model: Found an estimated cost of 2 for instruction: %c4 = add <4 x i64> undef, undef
379; CHECK-NEXT:  Cost Model: Found an estimated cost of 2 for instruction: %d4 = sub <4 x i64> undef, undef
380; CHECK-NEXT:  Cost Model: Found an estimated cost of 28 for instruction: %e4 = mul <4 x i64> undef, undef
381; CHECK-NEXT:  Cost Model: Found an estimated cost of 2 for instruction: %f4 = ashr <4 x i64> undef, undef
382; CHECK-NEXT:  Cost Model: Found an estimated cost of 2 for instruction: %g4 = lshr <4 x i64> undef, undef
383; CHECK-NEXT:  Cost Model: Found an estimated cost of 2 for instruction: %h4 = shl <4 x i64> undef, undef
384; CHECK-NEXT:  Cost Model: Found an estimated cost of 2 for instruction: %i4 = and <4 x i64> undef, undef
385; CHECK-NEXT:  Cost Model: Found an estimated cost of 2 for instruction: %j4 = or <4 x i64> undef, undef
386; CHECK-NEXT:  Cost Model: Found an estimated cost of 2 for instruction: %k4 = xor <4 x i64> undef, undef
387; CHECK-NEXT:  Cost Model: Found an estimated cost of 4 for instruction: %c8 = add <8 x i64> undef, undef
388; CHECK-NEXT:  Cost Model: Found an estimated cost of 4 for instruction: %d8 = sub <8 x i64> undef, undef
389; CHECK-NEXT:  Cost Model: Found an estimated cost of 56 for instruction: %e8 = mul <8 x i64> undef, undef
390; CHECK-NEXT:  Cost Model: Found an estimated cost of 4 for instruction: %f8 = ashr <8 x i64> undef, undef
391; CHECK-NEXT:  Cost Model: Found an estimated cost of 4 for instruction: %g8 = lshr <8 x i64> undef, undef
392; CHECK-NEXT:  Cost Model: Found an estimated cost of 4 for instruction: %h8 = shl <8 x i64> undef, undef
393; CHECK-NEXT:  Cost Model: Found an estimated cost of 4 for instruction: %i8 = and <8 x i64> undef, undef
394; CHECK-NEXT:  Cost Model: Found an estimated cost of 4 for instruction: %j8 = or <8 x i64> undef, undef
395; CHECK-NEXT:  Cost Model: Found an estimated cost of 4 for instruction: %k8 = xor <8 x i64> undef, undef
396; CHECK-NEXT:  Cost Model: Found an estimated cost of 8 for instruction: %c16 = add <16 x i64> undef, undef
397; CHECK-NEXT:  Cost Model: Found an estimated cost of 8 for instruction: %d16 = sub <16 x i64> undef, undef
398; CHECK-NEXT:  Cost Model: Found an estimated cost of 112 for instruction: %e16 = mul <16 x i64> undef, undef
399; CHECK-NEXT:  Cost Model: Found an estimated cost of 8 for instruction: %f16 = ashr <16 x i64> undef, undef
400; CHECK-NEXT:  Cost Model: Found an estimated cost of 8 for instruction: %g16 = lshr <16 x i64> undef, undef
401; CHECK-NEXT:  Cost Model: Found an estimated cost of 8 for instruction: %h16 = shl <16 x i64> undef, undef
402; CHECK-NEXT:  Cost Model: Found an estimated cost of 8 for instruction: %i16 = and <16 x i64> undef, undef
403; CHECK-NEXT:  Cost Model: Found an estimated cost of 8 for instruction: %j16 = or <16 x i64> undef, undef
404; CHECK-NEXT:  Cost Model: Found an estimated cost of 8 for instruction: %k16 = xor <16 x i64> undef, undef
405; CHECK-NEXT:  Cost Model: Found an estimated cost of 0 for instruction: ret void
406;
407  %c2 = add <2 x i64> undef, undef
408  %d2 = sub <2 x i64> undef, undef
409  %e2 = mul <2 x i64> undef, undef
410  %f2 = ashr <2 x i64> undef, undef
411  %g2 = lshr <2 x i64> undef, undef
412  %h2 = shl <2 x i64> undef, undef
413  %i2 = and <2 x i64> undef, undef
414  %j2 = or <2 x i64> undef, undef
415  %k2 = xor <2 x i64> undef, undef
416  %c4 = add <4 x i64> undef, undef
417  %d4 = sub <4 x i64> undef, undef
418  %e4 = mul <4 x i64> undef, undef
419  %f4 = ashr <4 x i64> undef, undef
420  %g4 = lshr <4 x i64> undef, undef
421  %h4 = shl <4 x i64> undef, undef
422  %i4 = and <4 x i64> undef, undef
423  %j4 = or <4 x i64> undef, undef
424  %k4 = xor <4 x i64> undef, undef
425  %c8 = add <8 x i64> undef, undef
426  %d8 = sub <8 x i64> undef, undef
427  %e8 = mul <8 x i64> undef, undef
428  %f8 = ashr <8 x i64> undef, undef
429  %g8 = lshr <8 x i64> undef, undef
430  %h8 = shl <8 x i64> undef, undef
431  %i8 = and <8 x i64> undef, undef
432  %j8 = or <8 x i64> undef, undef
433  %k8 = xor <8 x i64> undef, undef
434  %c16 = add <16 x i64> undef, undef
435  %d16 = sub <16 x i64> undef, undef
436  %e16 = mul <16 x i64> undef, undef
437  %f16 = ashr <16 x i64> undef, undef
438  %g16 = lshr <16 x i64> undef, undef
439  %h16 = shl <16 x i64> undef, undef
440  %i16 = and <16 x i64> undef, undef
441  %j16 = or <16 x i64> undef, undef
442  %k16 = xor <16 x i64> undef, undef
443  ret void
444}
445