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