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
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 };
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;
21 // CHECK-LABEL: define void @test1
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
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
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
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
46 /* ----------------------- predicates --------------------------- */
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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'
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'
664 res_vi = vec_vpkudum(vll, vll);
667 // CHECK-PPC: warning: implicit declaration of function 'vec_vpkudum'
669 res_vui = vec_vpkudum(vull, vull);
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'
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'
684 res_vbll = vec_vupkhsw(vbi);
685 // CHECK: llvm.ppc.altivec.vupkhsw
686 // CHECK-LE: llvm.ppc.altivec.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'
694 res_vbll = vec_vupklsw(vbi);
695 // CHECK: llvm.ppc.altivec.vupklsw
696 // CHECK-LE: llvm.ppc.altivec.vupkhsw