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