]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - test/CodeGen/builtins-ppc-p8vector.c
Vendor import of clang trunk r238337:
[FreeBSD/FreeBSD.git] / test / CodeGen / builtins-ppc-p8vector.c
1 // REQUIRES: powerpc-registered-target
2 // RUN: %clang_cc1 -faltivec -target-feature +power8-vector -triple powerpc64-unknown-unknown -emit-llvm %s -o - | FileCheck %s
3 // RUN: %clang_cc1 -faltivec -target-feature +power8-vector -triple powerpc64le-unknown-unknown -emit-llvm %s -o - | FileCheck %s -check-prefix=CHECK-LE
4 // RUN: not %clang_cc1 -faltivec -triple powerpc64-unknown-unknown -emit-llvm %s -o - 2>&1 | FileCheck %s -check-prefix=CHECK-PPC
5
6 vector int vi = { -1, 2, -3, 4 };
7 vector unsigned int vui = { 1, 2, 3, 4 };
8 vector bool int vbi = {0, -1, -1, 0};
9 vector bool long long vbll = { 1, 0 };
10 vector long long vll = { 1, 2 };
11 vector unsigned long long vull = { 1, 2 };
12
13 int res_i;
14 vector int res_vi;
15 vector unsigned int res_vui;
16 vector bool int res_vbi;
17 vector long long res_vll;
18 vector unsigned long long res_vull;
19 vector bool long long res_vbll;
20
21 // CHECK-LABEL: define void @test1
22 void test1() {
23
24   /* vec_cmpeq */
25   res_vbll = vec_cmpeq(vll, vll);
26 // CHECK: @llvm.ppc.altivec.vcmpequd
27 // CHECK-LE: @llvm.ppc.altivec.vcmpequd
28 // CHECK-PPC: error: call to 'vec_cmpeq' is ambiguous
29
30   res_vbll = vec_cmpeq(vull, vull);
31 // CHECK: @llvm.ppc.altivec.vcmpequd
32 // CHECK-LE: @llvm.ppc.altivec.vcmpequd
33 // CHECK-PPC: error: call to 'vec_cmpeq' is ambiguous
34
35   /* vec_cmpgt */
36   res_vbll = vec_cmpgt(vll, vll);
37 // CHECK: @llvm.ppc.altivec.vcmpgtsd
38 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsd
39 // CHECK-PPC: error: call to 'vec_cmpgt' is ambiguous
40
41   res_vbll = vec_cmpgt(vull, vull);
42 // CHECK: @llvm.ppc.altivec.vcmpgtud
43 // CHECK-LE: @llvm.ppc.altivec.vcmpgtud
44 // CHECK-PPC: error: call to 'vec_cmpgt' is ambiguous
45
46   /* ----------------------- predicates --------------------------- */
47   /* vec_all_eq */
48   res_i = vec_all_eq(vll, vll);
49 // CHECK: @llvm.ppc.altivec.vcmpequd.p
50 // CHECK-LE: @llvm.ppc.altivec.vcmpequd.p
51 // CHECK-PPC: error: call to 'vec_all_eq' is ambiguous
52
53   res_i = vec_all_eq(vll, vbll);
54 // CHECK: @llvm.ppc.altivec.vcmpequd.p
55 // CHECK-LE: @llvm.ppc.altivec.vcmpequd.p
56 // CHECK-PPC: error: call to 'vec_all_eq' is ambiguous
57
58   res_i = vec_all_eq(vull, vull);
59 // CHECK: @llvm.ppc.altivec.vcmpequd.p
60 // CHECK-LE: @llvm.ppc.altivec.vcmpequd.p
61 // CHECK-PPC: error: call to 'vec_all_eq' is ambiguous
62
63   res_i = vec_all_eq(vull, vbll);
64 // CHECK: @llvm.ppc.altivec.vcmpequd.p
65 // CHECK-LE: @llvm.ppc.altivec.vcmpequd.p
66 // CHECK-PPC: error: call to 'vec_all_eq' is ambiguous
67
68   res_i = vec_all_eq(vbll, vll);
69 // CHECK: @llvm.ppc.altivec.vcmpequd.p
70 // CHECK-LE: @llvm.ppc.altivec.vcmpequd.p
71 // CHECK-PPC: error: call to 'vec_all_eq' is ambiguous
72
73   res_i = vec_all_eq(vbll, vull);
74 // CHECK: @llvm.ppc.altivec.vcmpequd.p
75 // CHECK-LE: @llvm.ppc.altivec.vcmpequd.p
76 // CHECK-PPC: error: call to 'vec_all_eq' is ambiguous
77
78   res_i = vec_all_eq(vbll, vbll);
79 // CHECK: @llvm.ppc.altivec.vcmpequd.p
80 // CHECK-LE: @llvm.ppc.altivec.vcmpequd.p
81 // CHECK-PPC: error: call to 'vec_all_eq' is ambiguous
82
83   /* vec_all_ne */
84   res_i = vec_all_ne(vll, vll);
85 // CHECK: @llvm.ppc.altivec.vcmpequd.p
86 // CHECK-LE: @llvm.ppc.altivec.vcmpequd.p
87 // CHECK-PPC: error: call to 'vec_all_ne' is ambiguous
88
89   res_i = vec_all_ne(vll, vbll);
90 // CHECK: @llvm.ppc.altivec.vcmpequd.p
91 // CHECK-LE: @llvm.ppc.altivec.vcmpequd.p
92 // CHECK-PPC: error: call to 'vec_all_ne' is ambiguous
93
94   res_i = vec_all_ne(vull, vull);
95 // CHECK: @llvm.ppc.altivec.vcmpequd.p
96 // CHECK-LE: @llvm.ppc.altivec.vcmpequd.p
97 // CHECK-PPC: error: call to 'vec_all_ne' is ambiguous
98
99   res_i = vec_all_ne(vull, vbll);
100 // CHECK: @llvm.ppc.altivec.vcmpequd.p
101 // CHECK-LE: @llvm.ppc.altivec.vcmpequd.p
102 // CHECK-PPC: error: call to 'vec_all_ne' is ambiguous
103
104   res_i = vec_all_ne(vbll, vll);
105 // CHECK: @llvm.ppc.altivec.vcmpequd.p
106 // CHECK-LE: @llvm.ppc.altivec.vcmpequd.p
107 // CHECK-PPC: error: call to 'vec_all_ne' is ambiguous
108
109   res_i = vec_all_ne(vbll, vull);
110 // CHECK: @llvm.ppc.altivec.vcmpequd.p
111 // CHECK-LE: @llvm.ppc.altivec.vcmpequd.p
112 // CHECK-PPC: error: call to 'vec_all_ne' is ambiguous
113
114   res_i = vec_all_ne(vbll, vbll);
115 // CHECK: @llvm.ppc.altivec.vcmpequd.p
116 // CHECK-LE: @llvm.ppc.altivec.vcmpequd.p
117 // CHECK-PPC: error: call to 'vec_all_ne' is ambiguous
118
119   /* vec_any_eq */
120   res_i = vec_any_eq(vll, vll);
121 // CHECK: @llvm.ppc.altivec.vcmpequd.p
122 // CHECK-LE: @llvm.ppc.altivec.vcmpequd.p
123 // CHECK-PPC: error: call to 'vec_any_eq' is ambiguous
124
125   res_i = vec_any_eq(vll, vbll);
126 // CHECK: @llvm.ppc.altivec.vcmpequd.p
127 // CHECK-LE: @llvm.ppc.altivec.vcmpequd.p
128 // CHECK-PPC: error: call to 'vec_any_eq' is ambiguous
129
130   res_i = vec_any_eq(vull, vull);
131 // CHECK: @llvm.ppc.altivec.vcmpequd.p
132 // CHECK-LE: @llvm.ppc.altivec.vcmpequd.p
133 // CHECK-PPC: error: call to 'vec_any_eq' is ambiguous
134
135   res_i = vec_any_eq(vull, vbll);
136 // CHECK: @llvm.ppc.altivec.vcmpequd.p
137 // CHECK-LE: @llvm.ppc.altivec.vcmpequd.p
138 // CHECK-PPC: error: call to 'vec_any_eq' is ambiguous
139
140   res_i = vec_any_eq(vbll, vll);
141 // CHECK: @llvm.ppc.altivec.vcmpequd.p
142 // CHECK-LE: @llvm.ppc.altivec.vcmpequd.p
143 // CHECK-PPC: error: call to 'vec_any_eq' is ambiguous
144
145   res_i = vec_any_eq(vbll, vull);
146 // CHECK: @llvm.ppc.altivec.vcmpequd.p
147 // CHECK-LE: @llvm.ppc.altivec.vcmpequd.p
148 // CHECK-PPC: error: call to 'vec_any_eq' is ambiguous
149
150   res_i = vec_any_eq(vbll, vbll);
151 // CHECK: @llvm.ppc.altivec.vcmpequd.p
152 // CHECK-LE: @llvm.ppc.altivec.vcmpequd.p
153 // CHECK-PPC: error: call to 'vec_any_eq' is ambiguous
154
155   /* vec_any_ne */
156   res_i = vec_any_ne(vll, vll);
157 // CHECK: @llvm.ppc.altivec.vcmpequd.p
158 // CHECK-LE: @llvm.ppc.altivec.vcmpequd.p
159 // CHECK-PPC: error: call to 'vec_any_ne' is ambiguous
160
161   res_i = vec_any_ne(vll, vbll);
162 // CHECK: @llvm.ppc.altivec.vcmpequd.p
163 // CHECK-LE: @llvm.ppc.altivec.vcmpequd.p
164 // CHECK-PPC: error: call to 'vec_any_ne' is ambiguous
165
166   res_i = vec_any_ne(vull, vull);
167 // CHECK: @llvm.ppc.altivec.vcmpequd.p
168 // CHECK-LE: @llvm.ppc.altivec.vcmpequd.p
169 // CHECK-PPC: error: call to 'vec_any_ne' is ambiguous
170
171   res_i = vec_any_ne(vull, vbll);
172 // CHECK: @llvm.ppc.altivec.vcmpequd.p
173 // CHECK-LE: @llvm.ppc.altivec.vcmpequd.p
174 // CHECK-PPC: error: call to 'vec_any_ne' is ambiguous
175
176   res_i = vec_any_ne(vbll, vll);
177 // CHECK: @llvm.ppc.altivec.vcmpequd.p
178 // CHECK-LE: @llvm.ppc.altivec.vcmpequd.p
179 // CHECK-PPC: error: call to 'vec_any_ne' is ambiguous
180
181   res_i = vec_any_ne(vbll, vull);
182 // CHECK: @llvm.ppc.altivec.vcmpequd.p
183 // CHECK-LE: @llvm.ppc.altivec.vcmpequd.p
184 // CHECK-PPC: error: call to 'vec_any_ne' is ambiguous
185
186   res_i = vec_any_ne(vbll, vbll);
187 // CHECK: @llvm.ppc.altivec.vcmpequd.p
188 // CHECK-LE: @llvm.ppc.altivec.vcmpequd.p
189 // CHECK-PPC: error: call to 'vec_any_ne' is ambiguous
190
191   /* vec_all_ge */
192   res_i = vec_all_ge(vll, vll);
193 // CHECK: @llvm.ppc.altivec.vcmpgtsd.p
194 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsd.p
195 // CHECK-PPC: error: call to 'vec_all_ge' is ambiguous
196
197   res_i = vec_all_ge(vll, vbll);
198 // CHECK: @llvm.ppc.altivec.vcmpgtsd.p
199 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsd.p
200 // CHECK-PPC: error: call to 'vec_all_ge' is ambiguous
201
202   res_i = vec_all_ge(vull, vull);
203 // CHECK: @llvm.ppc.altivec.vcmpgtud.p
204 // CHECK-LE: @llvm.ppc.altivec.vcmpgtud.p
205 // CHECK-PPC: error: call to 'vec_all_ge' is ambiguous
206
207   res_i = vec_all_ge(vull, vbll);
208 // CHECK: @llvm.ppc.altivec.vcmpgtud.p
209 // CHECK-LE: @llvm.ppc.altivec.vcmpgtud.p
210 // CHECK-PPC: error: call to 'vec_all_ge' is ambiguous
211
212   res_i = vec_all_ge(vbll, vll);
213 // CHECK: @llvm.ppc.altivec.vcmpgtud.p
214 // CHECK-LE: @llvm.ppc.altivec.vcmpgtud.p
215 // CHECK-PPC: error: call to 'vec_all_ge' is ambiguous
216
217   res_i = vec_all_ge(vbll, vull);
218 // CHECK: @llvm.ppc.altivec.vcmpgtud.p
219 // CHECK-LE: @llvm.ppc.altivec.vcmpgtud.p
220 // CHECK-PPC: error: call to 'vec_all_ge' is ambiguous
221
222   res_i = vec_all_ge(vbll, vbll);
223 // CHECK: @llvm.ppc.altivec.vcmpgtud.p
224 // CHECK-LE: @llvm.ppc.altivec.vcmpgtud.p
225 // CHECK-PPC: error: call to 'vec_all_ge' is ambiguous
226
227   /* vec_all_gt */
228   res_i = vec_all_gt(vll, vll);
229 // CHECK: @llvm.ppc.altivec.vcmpgtsd.p
230 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsd.p
231 // CHECK-PPC: error: call to 'vec_all_gt' is ambiguous
232
233   res_i = vec_all_gt(vll, vbll);
234 // CHECK: @llvm.ppc.altivec.vcmpgtsd.p
235 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsd.p
236 // CHECK-PPC: error: call to 'vec_all_gt' is ambiguous
237
238   res_i = vec_all_gt(vull, vull);
239 // CHECK: @llvm.ppc.altivec.vcmpgtud.p
240 // CHECK-LE: @llvm.ppc.altivec.vcmpgtud.p
241 // CHECK-PPC: error: call to 'vec_all_gt' is ambiguous
242
243   res_i = vec_all_gt(vull, vbll);
244 // CHECK: @llvm.ppc.altivec.vcmpgtud.p
245 // CHECK-LE: @llvm.ppc.altivec.vcmpgtud.p
246 // CHECK-PPC: error: call to 'vec_all_gt' is ambiguous
247
248   res_i = vec_all_gt(vbll, vll);
249 // CHECK: @llvm.ppc.altivec.vcmpgtud.p
250 // CHECK-LE: @llvm.ppc.altivec.vcmpgtud.p
251 // CHECK-PPC: error: call to 'vec_all_gt' is ambiguous
252
253   res_i = vec_all_gt(vbll, vull);
254 // CHECK: @llvm.ppc.altivec.vcmpgtud.p
255 // CHECK-LE: @llvm.ppc.altivec.vcmpgtud.p
256 // CHECK-PPC: error: call to 'vec_all_gt' is ambiguous
257
258   res_i = vec_all_gt(vbll, vbll);
259 // CHECK: @llvm.ppc.altivec.vcmpgtud.p
260 // CHECK-LE: @llvm.ppc.altivec.vcmpgtud.p
261 // CHECK-PPC: error: call to 'vec_all_gt' is ambiguous
262
263   /* vec_all_le */
264   res_i = vec_all_le(vll, vll);
265 // CHECK: @llvm.ppc.altivec.vcmpgtsd.p
266 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsd.p
267 // CHECK-PPC: error: call to 'vec_all_le' is ambiguous
268
269   res_i = vec_all_le(vll, vbll);
270 // CHECK: @llvm.ppc.altivec.vcmpgtsd.p
271 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsd.p
272 // CHECK-PPC: error: call to 'vec_all_le' is ambiguous
273
274   res_i = vec_all_le(vull, vull);
275 // CHECK: @llvm.ppc.altivec.vcmpgtud.p
276 // CHECK-LE: @llvm.ppc.altivec.vcmpgtud.p
277 // CHECK-PPC: error: call to 'vec_all_le' is ambiguous
278
279   res_i = vec_all_le(vull, vbll);
280 // CHECK: @llvm.ppc.altivec.vcmpgtud.p
281 // CHECK-LE: @llvm.ppc.altivec.vcmpgtud.p
282 // CHECK-PPC: error: call to 'vec_all_le' is ambiguous
283
284   res_i = vec_all_le(vbll, vll);
285 // CHECK: @llvm.ppc.altivec.vcmpgtud.p
286 // CHECK-LE: @llvm.ppc.altivec.vcmpgtud.p
287 // CHECK-PPC: error: call to 'vec_all_le' is ambiguous
288
289   res_i = vec_all_le(vbll, vull);
290 // CHECK: @llvm.ppc.altivec.vcmpgtud.p
291 // CHECK-LE: @llvm.ppc.altivec.vcmpgtud.p
292 // CHECK-PPC: error: call to 'vec_all_le' is ambiguous
293
294   res_i = vec_all_le(vbll, vbll);
295 // CHECK: @llvm.ppc.altivec.vcmpgtud.p
296 // CHECK-LE: @llvm.ppc.altivec.vcmpgtud.p
297 // CHECK-PPC: error: call to 'vec_all_le' is ambiguous
298
299   /* vec_all_lt */
300   res_i = vec_all_lt(vll, vll);
301 // CHECK: @llvm.ppc.altivec.vcmpgtsd.p
302 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsd.p
303 // CHECK-PPC: error: call to 'vec_all_lt' is ambiguous
304
305   res_i = vec_all_lt(vll, vbll);
306 // CHECK: @llvm.ppc.altivec.vcmpgtsd.p
307 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsd.p
308 // CHECK-PPC: error: call to 'vec_all_lt' is ambiguous
309
310   res_i = vec_all_lt(vull, vull);
311 // CHECK: @llvm.ppc.altivec.vcmpgtud.p
312 // CHECK-LE: @llvm.ppc.altivec.vcmpgtud.p
313 // CHECK-PPC: error: call to 'vec_all_lt' is ambiguous
314
315   res_i = vec_all_lt(vull, vbll);
316 // CHECK: @llvm.ppc.altivec.vcmpgtud.p
317 // CHECK-LE: @llvm.ppc.altivec.vcmpgtud.p
318 // CHECK-PPC: error: call to 'vec_all_lt' is ambiguous
319
320   res_i = vec_all_lt(vbll, vll);
321 // CHECK: @llvm.ppc.altivec.vcmpgtud.p
322 // CHECK-LE: @llvm.ppc.altivec.vcmpgtud.p
323 // CHECK-PPC: error: call to 'vec_all_lt' is ambiguous
324
325   res_i = vec_all_lt(vbll, vull);
326 // CHECK: @llvm.ppc.altivec.vcmpgtud.p
327 // CHECK-LE: @llvm.ppc.altivec.vcmpgtud.p
328 // CHECK-PPC: error: call to 'vec_all_lt' is ambiguous
329
330   res_i = vec_all_lt(vbll, vbll);
331 // CHECK: @llvm.ppc.altivec.vcmpgtud.p
332 // CHECK-LE: @llvm.ppc.altivec.vcmpgtud.p
333 // CHECK-PPC: error: call to 'vec_all_lt' is ambiguous
334
335   /* vec_any_ge */
336   res_i = vec_any_ge(vll, vll);
337 // CHECK: @llvm.ppc.altivec.vcmpgtsd.p
338 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsd.p
339 // CHECK-PPC: error: call to 'vec_any_ge' is ambiguous
340
341   res_i = vec_any_ge(vll, vbll);
342 // CHECK: @llvm.ppc.altivec.vcmpgtsd.p
343 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsd.p
344 // CHECK-PPC: error: call to 'vec_any_ge' is ambiguous
345
346   res_i = vec_any_ge(vull, vull);
347 // CHECK: @llvm.ppc.altivec.vcmpgtud.p
348 // CHECK-LE: @llvm.ppc.altivec.vcmpgtud.p
349 // CHECK-PPC: error: call to 'vec_any_ge' is ambiguous
350
351   res_i = vec_any_ge(vull, vbll);
352 // CHECK: @llvm.ppc.altivec.vcmpgtud.p
353 // CHECK-LE: @llvm.ppc.altivec.vcmpgtud.p
354 // CHECK-PPC: error: call to 'vec_any_ge' is ambiguous
355
356   res_i = vec_any_ge(vbll, vll);
357 // CHECK: @llvm.ppc.altivec.vcmpgtud.p
358 // CHECK-LE: @llvm.ppc.altivec.vcmpgtud.p
359 // CHECK-PPC: error: call to 'vec_any_ge' is ambiguous
360
361   res_i = vec_any_ge(vbll, vull);
362 // CHECK: @llvm.ppc.altivec.vcmpgtud.p
363 // CHECK-LE: @llvm.ppc.altivec.vcmpgtud.p
364 // CHECK-PPC: error: call to 'vec_any_ge' is ambiguous
365
366   res_i = vec_any_ge(vbll, vbll);
367 // CHECK: @llvm.ppc.altivec.vcmpgtud.p
368 // CHECK-LE: @llvm.ppc.altivec.vcmpgtud.p
369 // CHECK-PPC: error: call to 'vec_any_ge' is ambiguous
370
371   /* vec_any_gt */
372   res_i = vec_any_gt(vll, vll);
373 // CHECK: @llvm.ppc.altivec.vcmpgtsd.p
374 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsd.p
375 // CHECK-PPC: error: call to 'vec_any_gt' is ambiguous
376
377   res_i = vec_any_gt(vll, vbll);
378 // CHECK: @llvm.ppc.altivec.vcmpgtsd.p
379 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsd.p
380 // CHECK-PPC: error: call to 'vec_any_gt' is ambiguous
381
382   res_i = vec_any_gt(vull, vull);
383 // CHECK: @llvm.ppc.altivec.vcmpgtud.p
384 // CHECK-LE: @llvm.ppc.altivec.vcmpgtud.p
385 // CHECK-PPC: error: call to 'vec_any_gt' is ambiguous
386
387   res_i = vec_any_gt(vull, vbll);
388 // CHECK: @llvm.ppc.altivec.vcmpgtud.p
389 // CHECK-LE: @llvm.ppc.altivec.vcmpgtud.p
390 // CHECK-PPC: error: call to 'vec_any_gt' is ambiguous
391
392   res_i = vec_any_gt(vbll, vll);
393 // CHECK: @llvm.ppc.altivec.vcmpgtud.p
394 // CHECK-LE: @llvm.ppc.altivec.vcmpgtud.p
395 // CHECK-PPC: error: call to 'vec_any_gt' is ambiguous
396
397   res_i = vec_any_gt(vbll, vull);
398 // CHECK: @llvm.ppc.altivec.vcmpgtud.p
399 // CHECK-LE: @llvm.ppc.altivec.vcmpgtud.p
400 // CHECK-PPC: error: call to 'vec_any_gt' is ambiguous
401
402   res_i = vec_any_gt(vbll, vbll);
403 // CHECK: @llvm.ppc.altivec.vcmpgtud.p
404 // CHECK-LE: @llvm.ppc.altivec.vcmpgtud.p
405 // CHECK-PPC: error: call to 'vec_any_gt' is ambiguous
406
407   /* vec_any_le */
408   res_i = vec_any_le(vll, vll);
409 // CHECK: @llvm.ppc.altivec.vcmpgtsd.p
410 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsd.p
411 // CHECK-PPC: error: call to 'vec_any_le' is ambiguous
412
413   res_i = vec_any_le(vll, vbll);
414 // CHECK: @llvm.ppc.altivec.vcmpgtsd.p
415 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsd.p
416 // CHECK-PPC: error: call to 'vec_any_le' is ambiguous
417
418   res_i = vec_any_le(vull, vull);
419 // CHECK: @llvm.ppc.altivec.vcmpgtud.p
420 // CHECK-LE: @llvm.ppc.altivec.vcmpgtud.p
421 // CHECK-PPC: error: call to 'vec_any_le' is ambiguous
422
423   res_i = vec_any_le(vull, vbll);
424 // CHECK: @llvm.ppc.altivec.vcmpgtud.p
425 // CHECK-LE: @llvm.ppc.altivec.vcmpgtud.p
426 // CHECK-PPC: error: call to 'vec_any_le' is ambiguous
427
428   res_i = vec_any_le(vbll, vll);
429 // CHECK: @llvm.ppc.altivec.vcmpgtud.p
430 // CHECK-LE: @llvm.ppc.altivec.vcmpgtud.p
431 // CHECK-PPC: error: call to 'vec_any_le' is ambiguous
432
433   res_i = vec_any_le(vbll, vull);
434 // CHECK: @llvm.ppc.altivec.vcmpgtud.p
435 // CHECK-LE: @llvm.ppc.altivec.vcmpgtud.p
436 // CHECK-PPC: error: call to 'vec_any_le' is ambiguous
437
438   res_i = vec_any_le(vbll, vbll);
439 // CHECK: @llvm.ppc.altivec.vcmpgtud.p
440 // CHECK-LE: @llvm.ppc.altivec.vcmpgtud.p
441 // CHECK-PPC: error: call to 'vec_any_le' is ambiguous
442
443   /* vec_any_lt */
444   res_i = vec_any_lt(vll, vll);
445 // CHECK: @llvm.ppc.altivec.vcmpgtsd.p
446 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsd.p
447 // CHECK-PPC: error: call to 'vec_any_lt' is ambiguous
448
449   res_i = vec_any_lt(vll, vbll);
450 // CHECK: @llvm.ppc.altivec.vcmpgtsd.p
451 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsd.p
452 // CHECK-PPC: error: call to 'vec_any_lt' is ambiguous
453
454   res_i = vec_any_lt(vull, vull);
455 // CHECK: @llvm.ppc.altivec.vcmpgtud.p
456 // CHECK-LE: @llvm.ppc.altivec.vcmpgtud.p
457 // CHECK-PPC: error: call to 'vec_any_lt' is ambiguous
458
459   res_i = vec_any_lt(vull, vbll);
460 // CHECK: @llvm.ppc.altivec.vcmpgtud.p
461 // CHECK-LE: @llvm.ppc.altivec.vcmpgtud.p
462 // CHECK-PPC: error: call to 'vec_any_lt' is ambiguous
463
464   res_i = vec_any_lt(vbll, vll);
465 // CHECK: @llvm.ppc.altivec.vcmpgtud.p
466 // CHECK-LE: @llvm.ppc.altivec.vcmpgtud.p
467 // CHECK-PPC: error: call to 'vec_any_lt' is ambiguous
468
469   res_i = vec_any_lt(vbll, vull);
470 // CHECK: @llvm.ppc.altivec.vcmpgtud.p
471 // CHECK-LE: @llvm.ppc.altivec.vcmpgtud.p
472 // CHECK-PPC: error: call to 'vec_any_lt' is ambiguous
473
474   res_i = vec_any_lt(vbll, vbll);
475 // CHECK: @llvm.ppc.altivec.vcmpgtud.p
476 // CHECK-LE: @llvm.ppc.altivec.vcmpgtud.p
477 // CHECK-PPC: error: call to 'vec_any_lt' is ambiguous
478
479   /* vec_max */
480   res_vll = vec_max(vll, vll);
481 // CHECK: @llvm.ppc.altivec.vmaxsd
482 // CHECK-LE: @llvm.ppc.altivec.vmaxsd
483 // CHECK-PPC: error: call to 'vec_max' is ambiguous
484
485   res_vll = vec_max(vbll, vll);
486 // CHECK: @llvm.ppc.altivec.vmaxsd
487 // CHECK-LE: @llvm.ppc.altivec.vmaxsd
488 // CHECK-PPC: error: call to 'vec_max' is ambiguous
489
490   res_vll = vec_max(vll, vbll);
491 // CHECK: @llvm.ppc.altivec.vmaxsd
492 // CHECK-LE: @llvm.ppc.altivec.vmaxsd
493 // CHECK-PPC: error: call to 'vec_max' is ambiguous
494
495   res_vull = vec_max(vull, vull);
496 // CHECK: @llvm.ppc.altivec.vmaxud
497 // CHECK-LE: @llvm.ppc.altivec.vmaxud
498 // CHECK-PPC: error: call to 'vec_max' is ambiguous
499
500   res_vull = vec_max(vbll, vull);
501 // CHECK: @llvm.ppc.altivec.vmaxud
502 // CHECK-LE: @llvm.ppc.altivec.vmaxud
503 // CHECK-PPC: error: call to 'vec_max' is ambiguous
504
505   res_vull = vec_max(vull, vbll);
506 // CHECK: @llvm.ppc.altivec.vmaxud
507 // CHECK-LE: @llvm.ppc.altivec.vmaxud
508 // CHECK-PPC: error: call to 'vec_max' is ambiguous
509
510   /* vec_min */
511   res_vll = vec_min(vll, vll);
512 // CHECK: @llvm.ppc.altivec.vminsd
513 // CHECK-LE: @llvm.ppc.altivec.vminsd
514 // CHECK-PPC: error: call to 'vec_min' is ambiguous
515
516   res_vll = vec_min(vbll, vll);
517 // CHECK: @llvm.ppc.altivec.vminsd
518 // CHECK-LE: @llvm.ppc.altivec.vminsd
519 // CHECK-PPC: error: call to 'vec_min' is ambiguous
520
521   res_vll = vec_min(vll, vbll);
522 // CHECK: @llvm.ppc.altivec.vminsd
523 // CHECK-LE: @llvm.ppc.altivec.vminsd
524 // CHECK-PPC: error: call to 'vec_min' is ambiguous
525
526   res_vull = vec_min(vull, vull);
527 // CHECK: @llvm.ppc.altivec.vminud
528 // CHECK-LE: @llvm.ppc.altivec.vminud
529 // CHECK-PPC: error: call to 'vec_min' is ambiguous
530
531   res_vull = vec_min(vbll, vull);
532 // CHECK: @llvm.ppc.altivec.vminud
533 // CHECK-LE: @llvm.ppc.altivec.vminud
534 // CHECK-PPC: error: call to 'vec_min' is ambiguous
535
536   res_vull = vec_min(vull, vbll);
537 // CHECK: @llvm.ppc.altivec.vminud
538 // CHECK-LE: @llvm.ppc.altivec.vminud
539 // CHECK-PPC: error: call to 'vec_min' is ambiguous
540
541   /* vec_mule */
542   res_vll = vec_mule(vi, vi);
543 // CHECK: @llvm.ppc.altivec.vmulesw
544 // CHECK-LE: @llvm.ppc.altivec.vmulosw
545 // CHECK-PPC: error: call to 'vec_mule' is ambiguous
546
547   res_vull = vec_mule(vui , vui);
548 // CHECK: @llvm.ppc.altivec.vmuleuw
549 // CHECK-LE: @llvm.ppc.altivec.vmulouw
550 // CHECK-PPC: error: call to 'vec_mule' is ambiguous
551
552   /* vec_mulo */
553   res_vll = vec_mulo(vi, vi);
554 // CHECK: @llvm.ppc.altivec.vmulosw
555 // CHECK-LE: @llvm.ppc.altivec.vmulesw
556 // CHECK-PPC: error: call to 'vec_mulo' is ambiguous
557
558   res_vull = vec_mulo(vui, vui);
559 // CHECK: @llvm.ppc.altivec.vmulouw
560 // CHECK-LE: @llvm.ppc.altivec.vmuleuw
561 // CHECK-PPC: error: call to 'vec_mulo' is ambiguous
562
563   /* vec_packs */
564   res_vi = vec_packs(vll, vll);
565 // CHECK: @llvm.ppc.altivec.vpksdss
566 // CHECK-LE: @llvm.ppc.altivec.vpksdss
567 // CHECK-PPC: error: call to 'vec_packs' is ambiguous
568
569   res_vui = vec_packs(vull, vull);
570 // CHECK: @llvm.ppc.altivec.vpkudus
571 // CHECK-LE: @llvm.ppc.altivec.vpkudus
572 // CHECK-PPC: error: call to 'vec_packs' is ambiguous
573
574   /* vec_packsu */
575   res_vui = vec_packsu(vll, vll);
576 // CHECK: @llvm.ppc.altivec.vpksdus
577 // CHECK-LE: @llvm.ppc.altivec.vpksdus
578 // CHECK-PPC: error: call to 'vec_packsu' is ambiguous
579
580   res_vui = vec_packsu(vull, vull);
581 // CHECK: @llvm.ppc.altivec.vpkudus
582 // CHECK-LE: @llvm.ppc.altivec.vpkudus
583 // CHECK-PPC: error: call to 'vec_packsu' is ambiguous
584
585   /* vec_rl */
586   res_vll = vec_rl(vll, vull);
587 // CHECK: @llvm.ppc.altivec.vrld
588 // CHECK-LE: @llvm.ppc.altivec.vrld
589 // CHECK-PPC: error: call to 'vec_rl' is ambiguous
590
591   res_vull = vec_rl(vull, vull);
592 // CHECK: @llvm.ppc.altivec.vrld
593 // CHECK-LE: @llvm.ppc.altivec.vrld
594 // CHECK-PPC: error: call to 'vec_rl' is ambiguous
595
596   /* vec_sl */
597   res_vll = vec_sl(vll, vull);
598 // CHECK: shl <2 x i64>
599 // CHECK-LE: shl <2 x i64>
600 // CHECK-PPC: error: call to 'vec_sl' is ambiguous
601
602   res_vull = vec_sl(vull, vull);
603 // CHECK: shl <2 x i64>
604 // CHECK-LE: shl <2 x i64>
605 // CHECK-PPC: error: call to 'vec_sl' is ambiguous
606
607   /* vec_sr */
608   res_vll = vec_sr(vll, vull);
609 // CHECK: ashr <2 x i64>
610 // CHECK-LE: ashr <2 x i64>
611 // CHECK-PPC: error: call to 'vec_sr' is ambiguous
612
613   res_vull = vec_sr(vull, vull);
614 // CHECK: lshr <2 x i64>
615 // CHECK-LE: lshr <2 x i64>
616 // CHECK-PPC: error: call to 'vec_sr' is ambiguous
617
618   /* vec_sra */
619   res_vll = vec_sra(vll, vull);
620 // CHECK: ashr <2 x i64>
621 // CHECK-LE: ashr <2 x i64>
622 // CHECK-PPC: error: call to 'vec_sra' is ambiguous
623
624   res_vull = vec_sra(vull, vull);
625 // CHECK: ashr <2 x i64>
626 // CHECK-LE: ashr <2 x i64>
627 // CHECK-PPC: error: call to 'vec_sra' is ambiguous
628
629   /* vec_unpackh */
630   res_vll = vec_unpackh(vi);
631 // CHECK: llvm.ppc.altivec.vupkhsw
632 // CHECK-LE: llvm.ppc.altivec.vupklsw
633 // CHECK-PPC: error: call to 'vec_unpackh' is ambiguous
634
635   res_vbll = vec_unpackh(vbi);
636 // CHECK: llvm.ppc.altivec.vupkhsw
637 // CHECK-LE: llvm.ppc.altivec.vupklsw
638 // CHECK-PPC: error: call to 'vec_unpackh' is ambiguous
639
640   /* vec_unpackl */
641   res_vll = vec_unpackl(vi);
642 // CHECK: llvm.ppc.altivec.vupklsw
643 // CHECK-LE: llvm.ppc.altivec.vupkhsw
644 // CHECK-PPC: error: call to 'vec_unpackl' is ambiguous
645
646   res_vbll = vec_unpackl(vbi);
647 // CHECK: llvm.ppc.altivec.vupklsw
648 // CHECK-LE: llvm.ppc.altivec.vupkhsw
649 // CHECK-PPC: error: call to 'vec_unpackl' is ambiguous
650
651   /* vec_vpksdss */
652   res_vi = vec_vpksdss(vll, vll);
653 // CHECK: llvm.ppc.altivec.vpksdss
654 // CHECK-LE: llvm.ppc.altivec.vpksdss
655 // CHECK-PPC: warning: implicit declaration of function 'vec_vpksdss'
656
657   /* vec_vpksdus */
658   res_vui = vec_vpksdus(vll, vll);
659 // CHECK: llvm.ppc.altivec.vpksdus
660 // CHECK-LE: llvm.ppc.altivec.vpksdus
661 // CHECK-PPC: warning: implicit declaration of function 'vec_vpksdus'
662
663   /* vec_vpkudum */
664   res_vi = vec_vpkudum(vll, vll);
665 // CHECK: vperm
666 // CHECK-LE: vperm
667 // CHECK-PPC: warning: implicit declaration of function 'vec_vpkudum'
668
669   res_vui = vec_vpkudum(vull, vull);
670 // CHECK: vperm
671 // CHECK-LE: vperm
672
673   res_vui = vec_vpkudus(vull, vull);
674 // CHECK: llvm.ppc.altivec.vpkudus
675 // CHECK-LE: llvm.ppc.altivec.vpkudus
676 // CHECK-PPC: warning: implicit declaration of function 'vec_vpkudus'
677
678   /* vec_vupkhsw */
679   res_vll = vec_vupkhsw(vi);
680 // CHECK: llvm.ppc.altivec.vupkhsw
681 // CHECK-LE: llvm.ppc.altivec.vupklsw
682 // CHECK-PPC: warning: implicit declaration of function 'vec_vupkhsw'
683
684   res_vbll = vec_vupkhsw(vbi);
685 // CHECK: llvm.ppc.altivec.vupkhsw
686 // CHECK-LE: llvm.ppc.altivec.vupklsw
687
688   /* vec_vupklsw */
689   res_vll = vec_vupklsw(vi);
690 // CHECK: llvm.ppc.altivec.vupklsw
691 // CHECK-LE: llvm.ppc.altivec.vupkhsw
692 // CHECK-PPC: warning: implicit declaration of function 'vec_vupklsw'
693
694   res_vbll = vec_vupklsw(vbi);
695 // CHECK: llvm.ppc.altivec.vupklsw
696 // CHECK-LE: llvm.ppc.altivec.vupkhsw
697
698 }