1 // REQUIRES: systemz-registered-target
2 // RUN: %clang_cc1 -target-cpu z13 -triple s390x-linux-gnu \
3 // RUN: -fzvector -fno-lax-vector-conversions \
4 // RUN: -Wall -Wno-unused -Werror -fsyntax-only -verify %s
5
6 #include <vecintrin.h>
7
8 volatile vector signed char vsc;
9 volatile vector signed short vss;
10 volatile vector signed int vsi;
11 volatile vector signed long long vsl;
12 volatile vector unsigned char vuc;
13 volatile vector unsigned short vus;
14 volatile vector unsigned int vui;
15 volatile vector unsigned long long vul;
16 volatile vector bool char vbc;
17 volatile vector bool short vbs;
18 volatile vector bool int vbi;
19 volatile vector bool long long vbl;
20 volatile vector double vd;
21
22 volatile signed char sc;
23 volatile signed short ss;
24 volatile signed int si;
25 volatile signed long long sl;
26 volatile unsigned char uc;
27 volatile unsigned short us;
28 volatile unsigned int ui;
29 volatile unsigned long long ul;
30 volatile double d;
31
32 const void * volatile cptr;
33 const signed char * volatile cptrsc;
34 const signed short * volatile cptrss;
35 const signed int * volatile cptrsi;
36 const signed long long * volatile cptrsl;
37 const unsigned char * volatile cptruc;
38 const unsigned short * volatile cptrus;
39 const unsigned int * volatile cptrui;
40 const unsigned long long * volatile cptrul;
41 const float * volatile cptrf;
42 const double * volatile cptrd;
43
44 void * volatile ptr;
45 signed char * volatile ptrsc;
46 signed short * volatile ptrss;
47 signed int * volatile ptrsi;
48 signed long long * volatile ptrsl;
49 unsigned char * volatile ptruc;
50 unsigned short * volatile ptrus;
51 unsigned int * volatile ptrui;
52 unsigned long long * volatile ptrul;
53 float * volatile ptrf;
54 double * volatile ptrd;
55
56 volatile unsigned int len;
57 volatile int idx;
58 int cc;
59
test_core(void)60 void test_core(void) {
61 len = __lcbb(cptr, idx); // expected-error {{no matching function}}
62 // expected-note@vecintrin.h:* {{must be a constant power of 2 from 64 to 4096}}
63 len = __lcbb(cptr, 200); // expected-error {{no matching function}}
64 // expected-note@vecintrin.h:* {{must be a constant power of 2 from 64 to 4096}}
65 len = __lcbb(cptr, 32); // expected-error {{no matching function}}
66 // expected-note@vecintrin.h:* {{must be a constant power of 2 from 64 to 4096}}
67 len = __lcbb(cptr, 8192); // expected-error {{no matching function}}
68 // expected-note@vecintrin.h:* {{must be a constant power of 2 from 64 to 4096}}
69
70 vsl = vec_permi(vsl, vsl, idx); // expected-error {{no matching function}}
71 // expected-note@vecintrin.h:* 3 {{candidate function not viable}}
72 // expected-note@vecintrin.h:* 1 {{must be a constant integer from 0 to 3}}
73 vsl = vec_permi(vsl, vsl, -1); // expected-error {{no matching function}}
74 // expected-note@vecintrin.h:* 3 {{candidate function not viable}}
75 // expected-note@vecintrin.h:* 1 {{must be a constant integer from 0 to 3}}
76 vsl = vec_permi(vsl, vsl, 4); // expected-error {{no matching function}}
77 // expected-note@vecintrin.h:* 3 {{candidate function not viable}}
78 // expected-note@vecintrin.h:* 1 {{must be a constant integer from 0 to 3}}
79 vul = vec_permi(vul, vul, idx); // expected-error {{no matching function}}
80 // expected-note@vecintrin.h:* 2 {{candidate function not viable}}
81 // expected-note@vecintrin.h:* 2 {{must be a constant integer from 0 to 3}}
82 vul = vec_permi(vul, vul, -1); // expected-error {{no matching function}}
83 // expected-note@vecintrin.h:* 2 {{candidate function not viable}}
84 // expected-note@vecintrin.h:* 2 {{must be a constant integer from 0 to 3}}
85 vul = vec_permi(vul, vul, 4); // expected-error {{no matching function}}
86 // expected-note@vecintrin.h:* 2 {{candidate function not viable}}
87 // expected-note@vecintrin.h:* 2 {{must be a constant integer from 0 to 3}}
88 vbl = vec_permi(vbl, vbl, idx); // expected-error {{no matching function}}
89 // expected-note@vecintrin.h:* 2 {{candidate function not viable}}
90 // expected-note@vecintrin.h:* 2 {{must be a constant integer from 0 to 3}}
91 vbl = vec_permi(vbl, vbl, -1); // expected-error {{no matching function}}
92 // expected-note@vecintrin.h:* 2 {{candidate function not viable}}
93 // expected-note@vecintrin.h:* 2 {{must be a constant integer from 0 to 3}}
94 vbl = vec_permi(vbl, vbl, 4); // expected-error {{no matching function}}
95 // expected-note@vecintrin.h:* 2 {{candidate function not viable}}
96 // expected-note@vecintrin.h:* 2 {{must be a constant integer from 0 to 3}}
97 vd = vec_permi(vd, vd, idx); // expected-error {{no matching function}}
98 // expected-note@vecintrin.h:* 3 {{candidate function not viable}}
99 // expected-note@vecintrin.h:* 1 {{must be a constant integer from 0 to 3}}
100 vd = vec_permi(vd, vd, -1); // expected-error {{no matching function}}
101 // expected-note@vecintrin.h:* 3 {{candidate function not viable}}
102 // expected-note@vecintrin.h:* 1 {{must be a constant integer from 0 to 3}}
103 vd = vec_permi(vd, vd, 4); // expected-error {{no matching function}}
104 // expected-note@vecintrin.h:* 3 {{candidate function not viable}}
105 // expected-note@vecintrin.h:* 1 {{must be a constant integer from 0 to 3}}
106
107 vsi = vec_gather_element(vsi, vui, cptrsi, idx); // expected-error {{no matching function}}
108 // expected-note@vecintrin.h:* 6 {{candidate function not viable}}
109 // expected-note@vecintrin.h:* 1 {{must be a constant integer from 0 to 3}}
110 vsi = vec_gather_element(vsi, vui, cptrsi, -1); // expected-error {{no matching function}}
111 // expected-note@vecintrin.h:* 6 {{candidate function not viable}}
112 // expected-note@vecintrin.h:* 1 {{must be a constant integer from 0 to 3}}
113 vsi = vec_gather_element(vsi, vui, cptrsi, 4); // expected-error {{no matching function}}
114 // expected-note@vecintrin.h:* 6 {{candidate function not viable}}
115 // expected-note@vecintrin.h:* 1 {{must be a constant integer from 0 to 3}}
116 vui = vec_gather_element(vui, vui, cptrui, idx); // expected-error {{no matching function}}
117 // expected-note@vecintrin.h:* 5 {{candidate function not viable}}
118 // expected-note@vecintrin.h:* 2 {{must be a constant integer from 0 to 3}}
119 vui = vec_gather_element(vui, vui, cptrui, -1); // expected-error {{no matching function}}
120 // expected-note@vecintrin.h:* 5 {{candidate function not viable}}
121 // expected-note@vecintrin.h:* 2 {{must be a constant integer from 0 to 3}}
122 vui = vec_gather_element(vui, vui, cptrui, 4); // expected-error {{no matching function}}
123 // expected-note@vecintrin.h:* 5 {{candidate function not viable}}
124 // expected-note@vecintrin.h:* 2 {{must be a constant integer from 0 to 3}}
125 vbi = vec_gather_element(vbi, vui, cptrui, idx); // expected-error {{no matching function}}
126 // expected-note@vecintrin.h:* 5 {{candidate function not viable}}
127 // expected-note@vecintrin.h:* 2 {{must be a constant integer from 0 to 3}}
128 vbi = vec_gather_element(vbi, vui, cptrui, -1); // expected-error {{no matching function}}
129 // expected-note@vecintrin.h:* 5 {{candidate function not viable}}
130 // expected-note@vecintrin.h:* 2 {{must be a constant integer from 0 to 3}}
131 vbi = vec_gather_element(vbi, vui, cptrui, 4); // expected-error {{no matching function}}
132 // expected-note@vecintrin.h:* 5 {{candidate function not viable}}
133 // expected-note@vecintrin.h:* 2 {{must be a constant integer from 0 to 3}}
134 vsl = vec_gather_element(vsl, vul, cptrsl, idx); // expected-error {{no matching function}}
135 // expected-note@vecintrin.h:* 6 {{candidate function not viable}}
136 // expected-note@vecintrin.h:* 1 {{must be a constant integer from 0 to 1}}
137 vsl = vec_gather_element(vsl, vul, cptrsl, -1); // expected-error {{no matching function}}
138 // expected-note@vecintrin.h:* 6 {{candidate function not viable}}
139 // expected-note@vecintrin.h:* 1 {{must be a constant integer from 0 to 1}}
140 vsl = vec_gather_element(vsl, vul, cptrsl, 2); // expected-error {{no matching function}}
141 // expected-note@vecintrin.h:* 6 {{candidate function not viable}}
142 // expected-note@vecintrin.h:* 1 {{must be a constant integer from 0 to 1}}
143 vul = vec_gather_element(vul, vul, cptrul, idx); // expected-error {{no matching function}}
144 // expected-note@vecintrin.h:* 5 {{candidate function not viable}}
145 // expected-note@vecintrin.h:* 2 {{must be a constant integer from 0 to 1}}
146 vul = vec_gather_element(vul, vul, cptrul, -1); // expected-error {{no matching function}}
147 // expected-note@vecintrin.h:* 5 {{candidate function not viable}}
148 // expected-note@vecintrin.h:* 2 {{must be a constant integer from 0 to 1}}
149 vul = vec_gather_element(vul, vul, cptrul, 2); // expected-error {{no matching function}}
150 // expected-note@vecintrin.h:* 5 {{candidate function not viable}}
151 // expected-note@vecintrin.h:* 2 {{must be a constant integer from 0 to 1}}
152 vbl = vec_gather_element(vbl, vul, cptrul, idx); // expected-error {{no matching function}}
153 // expected-note@vecintrin.h:* 5 {{candidate function not viable}}
154 // expected-note@vecintrin.h:* 2 {{must be a constant integer from 0 to 1}}
155 vbl = vec_gather_element(vbl, vul, cptrul, -1); // expected-error {{no matching function}}
156 // expected-note@vecintrin.h:* 5 {{candidate function not viable}}
157 // expected-note@vecintrin.h:* 2 {{must be a constant integer from 0 to 1}}
158 vbl = vec_gather_element(vbl, vul, cptrul, 2); // expected-error {{no matching function}}
159 // expected-note@vecintrin.h:* 5 {{candidate function not viable}}
160 // expected-note@vecintrin.h:* 2 {{must be a constant integer from 0 to 1}}
161 vd = vec_gather_element(vd, vul, cptrd, idx); // expected-error {{no matching function}}
162 // expected-note@vecintrin.h:* 6 {{candidate function not viable}}
163 // expected-note@vecintrin.h:* 1 {{must be a constant integer from 0 to 1}}
164 vd = vec_gather_element(vd, vul, cptrd, -1); // expected-error {{no matching function}}
165 // expected-note@vecintrin.h:* 6 {{candidate function not viable}}
166 // expected-note@vecintrin.h:* 1 {{must be a constant integer from 0 to 1}}
167 vd = vec_gather_element(vd, vul, cptrd, 2); // expected-error {{no matching function}}
168 // expected-note@vecintrin.h:* 6 {{candidate function not viable}}
169 // expected-note@vecintrin.h:* 1 {{must be a constant integer from 0 to 1}}
170
171 vec_scatter_element(vsi, vui, ptrsi, idx); // expected-error {{no matching function}}
172 // expected-note@vecintrin.h:* 6 {{candidate function not viable}}
173 // expected-note@vecintrin.h:* 1 {{must be a constant integer from 0 to 3}}
174 vec_scatter_element(vsi, vui, ptrsi, -1); // expected-error {{no matching function}}
175 // expected-note@vecintrin.h:* 6 {{candidate function not viable}}
176 // expected-note@vecintrin.h:* 1 {{must be a constant integer from 0 to 3}}
177 vec_scatter_element(vsi, vui, ptrsi, 4); // expected-error {{no matching function}}
178 // expected-note@vecintrin.h:* 6 {{candidate function not viable}}
179 // expected-note@vecintrin.h:* 1 {{must be a constant integer from 0 to 3}}
180 vec_scatter_element(vui, vui, ptrui, idx); // expected-error {{no matching function}}
181 // expected-note@vecintrin.h:* 5 {{candidate function not viable}}
182 // expected-note@vecintrin.h:* 2 {{must be a constant integer from 0 to 3}}
183 vec_scatter_element(vui, vui, ptrui, -1); // expected-error {{no matching function}}
184 // expected-note@vecintrin.h:* 5 {{candidate function not viable}}
185 // expected-note@vecintrin.h:* 2 {{must be a constant integer from 0 to 3}}
186 vec_scatter_element(vui, vui, ptrui, 4); // expected-error {{no matching function}}
187 // expected-note@vecintrin.h:* 5 {{candidate function not viable}}
188 // expected-note@vecintrin.h:* 2 {{must be a constant integer from 0 to 3}}
189 vec_scatter_element(vbi, vui, ptrui, idx); // expected-error {{no matching function}}
190 // expected-note@vecintrin.h:* 5 {{candidate function not viable}}
191 // expected-note@vecintrin.h:* 2 {{must be a constant integer from 0 to 3}}
192 vec_scatter_element(vbi, vui, ptrui, -1); // expected-error {{no matching function}}
193 // expected-note@vecintrin.h:* 5 {{candidate function not viable}}
194 // expected-note@vecintrin.h:* 2 {{must be a constant integer from 0 to 3}}
195 vec_scatter_element(vbi, vui, ptrui, 4); // expected-error {{no matching function}}
196 // expected-note@vecintrin.h:* 5 {{candidate function not viable}}
197 // expected-note@vecintrin.h:* 2 {{must be a constant integer from 0 to 3}}
198 vec_scatter_element(vsl, vul, ptrsl, idx); // expected-error {{no matching function}}
199 // expected-note@vecintrin.h:* 6 {{candidate function not viable}}
200 // expected-note@vecintrin.h:* 1 {{must be a constant integer from 0 to 1}}
201 vec_scatter_element(vsl, vul, ptrsl, -1); // expected-error {{no matching function}}
202 // expected-note@vecintrin.h:* 6 {{candidate function not viable}}
203 // expected-note@vecintrin.h:* 1 {{must be a constant integer from 0 to 1}}
204 vec_scatter_element(vsl, vul, ptrsl, 2); // expected-error {{no matching function}}
205 // expected-note@vecintrin.h:* 6 {{candidate function not viable}}
206 // expected-note@vecintrin.h:* 1 {{must be a constant integer from 0 to 1}}
207 vec_scatter_element(vul, vul, ptrul, idx); // expected-error {{no matching function}}
208 // expected-note@vecintrin.h:* 5 {{candidate function not viable}}
209 // expected-note@vecintrin.h:* 2 {{must be a constant integer from 0 to 1}}
210 vec_scatter_element(vul, vul, ptrul, -1); // expected-error {{no matching function}}
211 // expected-note@vecintrin.h:* 5 {{candidate function not viable}}
212 // expected-note@vecintrin.h:* 2 {{must be a constant integer from 0 to 1}}
213 vec_scatter_element(vul, vul, ptrul, 2); // expected-error {{no matching function}}
214 // expected-note@vecintrin.h:* 5 {{candidate function not viable}}
215 // expected-note@vecintrin.h:* 2 {{must be a constant integer from 0 to 1}}
216 vec_scatter_element(vbl, vul, ptrul, idx); // expected-error {{no matching function}}
217 // expected-note@vecintrin.h:* 5 {{candidate function not viable}}
218 // expected-note@vecintrin.h:* 2 {{must be a constant integer from 0 to 1}}
219 vec_scatter_element(vbl, vul, ptrul, -1); // expected-error {{no matching function}}
220 // expected-note@vecintrin.h:* 5 {{candidate function not viable}}
221 // expected-note@vecintrin.h:* 2 {{must be a constant integer from 0 to 1}}
222 vec_scatter_element(vbl, vul, ptrul, 2); // expected-error {{no matching function}}
223 // expected-note@vecintrin.h:* 5 {{candidate function not viable}}
224 // expected-note@vecintrin.h:* 2 {{must be a constant integer from 0 to 1}}
225 vec_scatter_element(vd, vul, ptrd, idx); // expected-error {{no matching function}}
226 // expected-note@vecintrin.h:* 6 {{candidate function not viable}}
227 // expected-note@vecintrin.h:* 1 {{must be a constant integer from 0 to 1}}
228 vec_scatter_element(vd, vul, ptrd, -1); // expected-error {{no matching function}}
229 // expected-note@vecintrin.h:* 6 {{candidate function not viable}}
230 // expected-note@vecintrin.h:* 1 {{must be a constant integer from 0 to 1}}
231 vec_scatter_element(vd, vul, ptrd, 2); // expected-error {{no matching function}}
232 // expected-note@vecintrin.h:* 6 {{candidate function not viable}}
233 // expected-note@vecintrin.h:* 1 {{must be a constant integer from 0 to 1}}
234
235 vsc = vec_load_bndry(cptrsc, idx); // expected-error {{no matching function}}
236 // expected-note@vecintrin.h:* 8 {{candidate function not viable}}
237 // expected-note@vecintrin.h:* 1 {{must be a constant power of 2 from 64 to 4096}}
238 vsc = vec_load_bndry(cptrsc, 200); // expected-error {{no matching function}}
239 // expected-note@vecintrin.h:* 8 {{candidate function not viable}}
240 // expected-note@vecintrin.h:* 1 {{must be a constant power of 2 from 64 to 4096}}
241 vsc = vec_load_bndry(cptrsc, 32); // expected-error {{no matching function}}
242 // expected-note@vecintrin.h:* 8 {{candidate function not viable}}
243 // expected-note@vecintrin.h:* 1 {{must be a constant power of 2 from 64 to 4096}}
244 vsc = vec_load_bndry(cptrsc, 8192); // expected-error {{no matching function}}
245 // expected-note@vecintrin.h:* 8 {{candidate function not viable}}
246 // expected-note@vecintrin.h:* 1 {{must be a constant power of 2 from 64 to 4096}}
247 vuc = vec_load_bndry(cptruc, idx); // expected-error {{no matching function}}
248 // expected-note@vecintrin.h:* 8 {{candidate function not viable}}
249 // expected-note@vecintrin.h:* 1 {{must be a constant power of 2 from 64 to 4096}}
250 vss = vec_load_bndry(cptrss, idx); // expected-error {{no matching function}}
251 // expected-note@vecintrin.h:* 8 {{candidate function not viable}}
252 // expected-note@vecintrin.h:* 1 {{must be a constant power of 2 from 64 to 4096}}
253 vus = vec_load_bndry(cptrus, idx); // expected-error {{no matching function}}
254 // expected-note@vecintrin.h:* 8 {{candidate function not viable}}
255 // expected-note@vecintrin.h:* 1 {{must be a constant power of 2 from 64 to 4096}}
256 vsi = vec_load_bndry(cptrsi, idx); // expected-error {{no matching function}}
257 // expected-note@vecintrin.h:* 8 {{candidate function not viable}}
258 // expected-note@vecintrin.h:* 1 {{must be a constant power of 2 from 64 to 4096}}
259 vui = vec_load_bndry(cptrui, idx); // expected-error {{no matching function}}
260 // expected-note@vecintrin.h:* 8 {{candidate function not viable}}
261 // expected-note@vecintrin.h:* 1 {{must be a constant power of 2 from 64 to 4096}}
262 vsl = vec_load_bndry(cptrsl, idx); // expected-error {{no matching function}}
263 // expected-note@vecintrin.h:* 8 {{candidate function not viable}}
264 // expected-note@vecintrin.h:* 1 {{must be a constant power of 2 from 64 to 4096}}
265 vul = vec_load_bndry(cptrul, idx); // expected-error {{no matching function}}
266 // expected-note@vecintrin.h:* 8 {{candidate function not viable}}
267 // expected-note@vecintrin.h:* 1 {{must be a constant power of 2 from 64 to 4096}}
268
269 vuc = vec_genmask(idx); // expected-error {{no matching function}}
270 // expected-note@vecintrin.h:* {{must be a constant integer}}
271
272 vuc = vec_genmasks_8(0, idx); // expected-error {{no matching function}}
273 // expected-note@vecintrin.h:* {{must be a constant integer}}
274 vuc = vec_genmasks_8(idx, 0); // expected-error {{no matching function}}
275 // expected-note@vecintrin.h:* {{must be a constant integer}}
276 vuc = vec_genmasks_8(idx, idx); // expected-error {{no matching function}}
277 // expected-note@vecintrin.h:* {{must be a constant integer}}
278 vus = vec_genmasks_16(0, idx); // expected-error {{no matching function}}
279 // expected-note@vecintrin.h:* {{must be a constant integer}}
280 vus = vec_genmasks_16(idx, 0); // expected-error {{no matching function}}
281 // expected-note@vecintrin.h:* {{must be a constant integer}}
282 vus = vec_genmasks_16(idx, idx); // expected-error {{no matching function}}
283 // expected-note@vecintrin.h:* {{must be a constant integer}}
284 vui = vec_genmasks_32(0, idx); // expected-error {{no matching function}}
285 // expected-note@vecintrin.h:* {{must be a constant integer}}
286 vui = vec_genmasks_32(idx, 0); // expected-error {{no matching function}}
287 // expected-note@vecintrin.h:* {{must be a constant integer}}
288 vui = vec_genmasks_32(idx, idx); // expected-error {{no matching function}}
289 // expected-note@vecintrin.h:* {{must be a constant integer}}
290 vul = vec_genmasks_64(0, idx); // expected-error {{no matching function}}
291 // expected-note@vecintrin.h:* {{must be a constant integer}}
292 vul = vec_genmasks_64(idx, 0); // expected-error {{no matching function}}
293 // expected-note@vecintrin.h:* {{must be a constant integer}}
294 vul = vec_genmasks_64(idx, idx); // expected-error {{no matching function}}
295 // expected-note@vecintrin.h:* {{must be a constant integer}}
296
297 vsc = vec_splat(vsc, idx); // expected-error {{no matching function}}
298 // expected-note@vecintrin.h:* 12 {{candidate function not viable}}
299 // expected-note@vecintrin.h:* 1 {{must be a constant integer from 0 to 15}}
300 vsc = vec_splat(vsc, -1); // expected-error {{no matching function}}
301 // expected-note@vecintrin.h:* 12 {{candidate function not viable}}
302 // expected-note@vecintrin.h:* 1 {{must be a constant integer from 0 to 15}}
303 vsc = vec_splat(vsc, 16); // expected-error {{no matching function}}
304 // expected-note@vecintrin.h:* 12 {{candidate function not viable}}
305 // expected-note@vecintrin.h:* 1 {{must be a constant integer from 0 to 15}}
306 vuc = vec_splat(vuc, idx); // expected-error {{no matching function}}
307 // expected-note@vecintrin.h:* 11 {{candidate function not viable}}
308 // expected-note@vecintrin.h:* 2 {{must be a constant integer from 0 to 15}}
309 vuc = vec_splat(vuc, -1); // expected-error {{no matching function}}
310 // expected-note@vecintrin.h:* 11 {{candidate function not viable}}
311 // expected-note@vecintrin.h:* 2 {{must be a constant integer from 0 to 15}}
312 vuc = vec_splat(vuc, 16); // expected-error {{no matching function}}
313 // expected-note@vecintrin.h:* 11 {{candidate function not viable}}
314 // expected-note@vecintrin.h:* 2 {{must be a constant integer from 0 to 15}}
315 vbc = vec_splat(vbc, idx); // expected-error {{no matching function}}
316 // expected-note@vecintrin.h:* 11 {{candidate function not viable}}
317 // expected-note@vecintrin.h:* 2 {{must be a constant integer from 0 to 15}}
318 vbc = vec_splat(vbc, -1); // expected-error {{no matching function}}
319 // expected-note@vecintrin.h:* 11 {{candidate function not viable}}
320 // expected-note@vecintrin.h:* 2 {{must be a constant integer from 0 to 15}}
321 vbc = vec_splat(vbc, 16); // expected-error {{no matching function}}
322 // expected-note@vecintrin.h:* 11 {{candidate function not viable}}
323 // expected-note@vecintrin.h:* 2 {{must be a constant integer from 0 to 15}}
324 vss = vec_splat(vss, idx); // expected-error {{no matching function}}
325 // expected-note@vecintrin.h:* 12 {{candidate function not viable}}
326 // expected-note@vecintrin.h:* 1 {{must be a constant integer from 0 to 7}}
327 vss = vec_splat(vss, -1); // expected-error {{no matching function}}
328 // expected-note@vecintrin.h:* 12 {{candidate function not viable}}
329 // expected-note@vecintrin.h:* 1 {{must be a constant integer from 0 to 7}}
330 vss = vec_splat(vss, 8); // expected-error {{no matching function}}
331 // expected-note@vecintrin.h:* 12 {{candidate function not viable}}
332 // expected-note@vecintrin.h:* 1 {{must be a constant integer from 0 to 7}}
333 vus = vec_splat(vus, idx); // expected-error {{no matching function}}
334 // expected-note@vecintrin.h:* 11 {{candidate function not viable}}
335 // expected-note@vecintrin.h:* 2 {{must be a constant integer from 0 to 7}}
336 vus = vec_splat(vus, -1); // expected-error {{no matching function}}
337 // expected-note@vecintrin.h:* 11 {{candidate function not viable}}
338 // expected-note@vecintrin.h:* 2 {{must be a constant integer from 0 to 7}}
339 vus = vec_splat(vus, 8); // expected-error {{no matching function}}
340 // expected-note@vecintrin.h:* 11 {{candidate function not viable}}
341 // expected-note@vecintrin.h:* 2 {{must be a constant integer from 0 to 7}}
342 vbs = vec_splat(vbs, idx); // expected-error {{no matching function}}
343 // expected-note@vecintrin.h:* 11 {{candidate function not viable}}
344 // expected-note@vecintrin.h:* 2 {{must be a constant integer from 0 to 7}}
345 vbs = vec_splat(vbs, -1); // expected-error {{no matching function}}
346 // expected-note@vecintrin.h:* 11 {{candidate function not viable}}
347 // expected-note@vecintrin.h:* 2 {{must be a constant integer from 0 to 7}}
348 vbs = vec_splat(vbs, 8); // expected-error {{no matching function}}
349 // expected-note@vecintrin.h:* 11 {{candidate function not viable}}
350 // expected-note@vecintrin.h:* 2 {{must be a constant integer from 0 to 7}}
351 vsi = vec_splat(vsi, idx); // expected-error {{no matching function}}
352 // expected-note@vecintrin.h:* 12 {{candidate function not viable}}
353 // expected-note@vecintrin.h:* 1 {{must be a constant integer from 0 to 3}}
354 vsi = vec_splat(vsi, -1); // expected-error {{no matching function}}
355 // expected-note@vecintrin.h:* 12 {{candidate function not viable}}
356 // expected-note@vecintrin.h:* 1 {{must be a constant integer from 0 to 3}}
357 vsi = vec_splat(vsi, 4); // expected-error {{no matching function}}
358 // expected-note@vecintrin.h:* 12 {{candidate function not viable}}
359 // expected-note@vecintrin.h:* 1 {{must be a constant integer from 0 to 3}}
360 vui = vec_splat(vui, idx); // expected-error {{no matching function}}
361 // expected-note@vecintrin.h:* 11 {{candidate function not viable}}
362 // expected-note@vecintrin.h:* 2 {{must be a constant integer from 0 to 3}}
363 vui = vec_splat(vui, -1); // expected-error {{no matching function}}
364 // expected-note@vecintrin.h:* 11 {{candidate function not viable}}
365 // expected-note@vecintrin.h:* 2 {{must be a constant integer from 0 to 3}}
366 vui = vec_splat(vui, 4); // expected-error {{no matching function}}
367 // expected-note@vecintrin.h:* 11 {{candidate function not viable}}
368 // expected-note@vecintrin.h:* 2 {{must be a constant integer from 0 to 3}}
369 vbi = vec_splat(vbi, idx); // expected-error {{no matching function}}
370 // expected-note@vecintrin.h:* 11 {{candidate function not viable}}
371 // expected-note@vecintrin.h:* 2 {{must be a constant integer from 0 to 3}}
372 vbi = vec_splat(vbi, -1); // expected-error {{no matching function}}
373 // expected-note@vecintrin.h:* 11 {{candidate function not viable}}
374 // expected-note@vecintrin.h:* 2 {{must be a constant integer from 0 to 3}}
375 vbi = vec_splat(vbi, 4); // expected-error {{no matching function}}
376 // expected-note@vecintrin.h:* 11 {{candidate function not viable}}
377 // expected-note@vecintrin.h:* 2 {{must be a constant integer from 0 to 3}}
378 vsl = vec_splat(vsl, idx); // expected-error {{no matching function}}
379 // expected-note@vecintrin.h:* 12 {{candidate function not viable}}
380 // expected-note@vecintrin.h:* 1 {{must be a constant integer from 0 to 1}}
381 vsl = vec_splat(vsl, -1); // expected-error {{no matching function}}
382 // expected-note@vecintrin.h:* 12 {{candidate function not viable}}
383 // expected-note@vecintrin.h:* 1 {{must be a constant integer from 0 to 1}}
384 vsl = vec_splat(vsl, 2); // expected-error {{no matching function}}
385 // expected-note@vecintrin.h:* 12 {{candidate function not viable}}
386 // expected-note@vecintrin.h:* 1 {{must be a constant integer from 0 to 1}}
387 vul = vec_splat(vul, idx); // expected-error {{no matching function}}
388 // expected-note@vecintrin.h:* 11 {{candidate function not viable}}
389 // expected-note@vecintrin.h:* 2 {{must be a constant integer from 0 to 1}}
390 vul = vec_splat(vul, -1); // expected-error {{no matching function}}
391 // expected-note@vecintrin.h:* 11 {{candidate function not viable}}
392 // expected-note@vecintrin.h:* 2 {{must be a constant integer from 0 to 1}}
393 vul = vec_splat(vul, 2); // expected-error {{no matching function}}
394 // expected-note@vecintrin.h:* 11 {{candidate function not viable}}
395 // expected-note@vecintrin.h:* 2 {{must be a constant integer from 0 to 1}}
396 vbl = vec_splat(vbl, idx); // expected-error {{no matching function}}
397 // expected-note@vecintrin.h:* 11 {{candidate function not viable}}
398 // expected-note@vecintrin.h:* 2 {{must be a constant integer from 0 to 1}}
399 vbl = vec_splat(vbl, -1); // expected-error {{no matching function}}
400 // expected-note@vecintrin.h:* 11 {{candidate function not viable}}
401 // expected-note@vecintrin.h:* 2 {{must be a constant integer from 0 to 1}}
402 vbl = vec_splat(vbl, 2); // expected-error {{no matching function}}
403 // expected-note@vecintrin.h:* 11 {{candidate function not viable}}
404 // expected-note@vecintrin.h:* 2 {{must be a constant integer from 0 to 1}}
405 vd = vec_splat(vd, idx); // expected-error {{no matching function}}
406 // expected-note@vecintrin.h:* 12 {{candidate function not viable}}
407 // expected-note@vecintrin.h:* 1 {{must be a constant integer from 0 to 1}}
408 vd = vec_splat(vd, -1); // expected-error {{no matching function}}
409 // expected-note@vecintrin.h:* 12 {{candidate function not viable}}
410 // expected-note@vecintrin.h:* 1 {{must be a constant integer from 0 to 1}}
411 vd = vec_splat(vd, 2); // expected-error {{no matching function}}
412 // expected-note@vecintrin.h:* 12 {{candidate function not viable}}
413 // expected-note@vecintrin.h:* 1 {{must be a constant integer from 0 to 1}}
414
415 vsc = vec_splat_s8(idx); // expected-error {{no matching function}}
416 // expected-note@vecintrin.h:* {{must be a constant integer}}
417 vuc = vec_splat_u8(idx); // expected-error {{no matching function}}
418 // expected-note@vecintrin.h:* {{must be a constant integer}}
419 vss = vec_splat_s16(idx); // expected-error {{no matching function}}
420 // expected-note@vecintrin.h:* {{must be a constant integer}}
421 vus = vec_splat_u16(idx); // expected-error {{no matching function}}
422 // expected-note@vecintrin.h:* {{must be a constant integer}}
423 vsi = vec_splat_s32(idx); // expected-error {{no matching function}}
424 // expected-note@vecintrin.h:* {{must be a constant integer}}
425 vui = vec_splat_u32(idx); // expected-error {{no matching function}}
426 // expected-note@vecintrin.h:* {{must be a constant integer}}
427 vsl = vec_splat_s64(idx); // expected-error {{no matching function}}
428 // expected-note@vecintrin.h:* {{must be a constant integer}}
429 vul = vec_splat_u64(idx); // expected-error {{no matching function}}
430 // expected-note@vecintrin.h:* {{must be a constant integer}}
431 }
432
test_integer(void)433 void test_integer(void) {
434 vsc = vec_rl_mask(vsc, vuc, idx); // expected-error {{no matching function}}
435 // expected-note@vecintrin.h:* 7 {{candidate function not viable}}
436 // expected-note@vecintrin.h:* 1 {{must be a constant integer}}
437 vuc = vec_rl_mask(vuc, vuc, idx); // expected-error {{no matching function}}
438 // expected-note@vecintrin.h:* 7 {{candidate function not viable}}
439 // expected-note@vecintrin.h:* 1 {{must be a constant integer}}
440 vss = vec_rl_mask(vss, vus, idx); // expected-error {{no matching function}}
441 // expected-note@vecintrin.h:* 7 {{candidate function not viable}}
442 // expected-note@vecintrin.h:* 1 {{must be a constant integer}}
443 vus = vec_rl_mask(vus, vus, idx); // expected-error {{no matching function}}
444 // expected-note@vecintrin.h:* 7 {{candidate function not viable}}
445 // expected-note@vecintrin.h:* 1 {{must be a constant integer}}
446 vsi = vec_rl_mask(vsi, vui, idx); // expected-error {{no matching function}}
447 // expected-note@vecintrin.h:* 7 {{candidate function not viable}}
448 // expected-note@vecintrin.h:* 1 {{must be a constant integer}}
449 vui = vec_rl_mask(vui, vui, idx); // expected-error {{no matching function}}
450 // expected-note@vecintrin.h:* 7 {{candidate function not viable}}
451 // expected-note@vecintrin.h:* 1 {{must be a constant integer}}
452 vsl = vec_rl_mask(vsl, vul, idx); // expected-error {{no matching function}}
453 // expected-note@vecintrin.h:* 7 {{candidate function not viable}}
454 // expected-note@vecintrin.h:* 1 {{must be a constant integer}}
455 vul = vec_rl_mask(vul, vul, idx); // expected-error {{no matching function}}
456 // expected-note@vecintrin.h:* 7 {{candidate function not viable}}
457 // expected-note@vecintrin.h:* 1 {{must be a constant integer}}
458
459 vsc = vec_sld(vsc, vsc, idx); // expected-error {{no matching function}}
460 // expected-note@vecintrin.h:* 8 {{candidate function not viable}}
461 // expected-note@vecintrin.h:* 1 {{must be a constant integer from 0 to 15}}
462 vsc = vec_sld(vsc, vsc, -1); // expected-error {{no matching function}}
463 // expected-note@vecintrin.h:* 8 {{candidate function not viable}}
464 // expected-note@vecintrin.h:* 1 {{must be a constant integer from 0 to 15}}
465 vsc = vec_sld(vsc, vsc, 16); // expected-error {{no matching function}}
466 // expected-note@vecintrin.h:* 8 {{candidate function not viable}}
467 // expected-note@vecintrin.h:* 1 {{must be a constant integer from 0 to 15}}
468 vuc = vec_sld(vuc, vuc, idx); // expected-error {{no matching function}}
469 // expected-note@vecintrin.h:* 8 {{candidate function not viable}}
470 // expected-note@vecintrin.h:* 1 {{must be a constant integer from 0 to 15}}
471 vuc = vec_sld(vuc, vuc, -1); // expected-error {{no matching function}}
472 // expected-note@vecintrin.h:* 8 {{candidate function not viable}}
473 // expected-note@vecintrin.h:* 1 {{must be a constant integer from 0 to 15}}
474 vuc = vec_sld(vuc, vuc, 16); // expected-error {{no matching function}}
475 // expected-note@vecintrin.h:* 8 {{candidate function not viable}}
476 // expected-note@vecintrin.h:* 1 {{must be a constant integer from 0 to 15}}
477 vss = vec_sld(vss, vss, idx); // expected-error {{no matching function}}
478 // expected-note@vecintrin.h:* 8 {{candidate function not viable}}
479 // expected-note@vecintrin.h:* 1 {{must be a constant integer from 0 to 15}}
480 vus = vec_sld(vus, vus, idx); // expected-error {{no matching function}}
481 // expected-note@vecintrin.h:* 8 {{candidate function not viable}}
482 // expected-note@vecintrin.h:* 1 {{must be a constant integer from 0 to 15}}
483 vsi = vec_sld(vsi, vsi, idx); // expected-error {{no matching function}}
484 // expected-note@vecintrin.h:* 8 {{candidate function not viable}}
485 // expected-note@vecintrin.h:* 1 {{must be a constant integer from 0 to 15}}
486 vui = vec_sld(vui, vui, idx); // expected-error {{no matching function}}
487 // expected-note@vecintrin.h:* 8 {{candidate function not viable}}
488 // expected-note@vecintrin.h:* 1 {{must be a constant integer from 0 to 15}}
489 vsl = vec_sld(vsl, vsl, idx); // expected-error {{no matching function}}
490 // expected-note@vecintrin.h:* 8 {{candidate function not viable}}
491 // expected-note@vecintrin.h:* 1 {{must be a constant integer from 0 to 15}}
492 vul = vec_sld(vul, vul, idx); // expected-error {{no matching function}}
493 // expected-note@vecintrin.h:* 8 {{candidate function not viable}}
494 // expected-note@vecintrin.h:* 1 {{must be a constant integer from 0 to 15}}
495 vd = vec_sld(vd, vd, idx); // expected-error {{no matching function}}
496 // expected-note@vecintrin.h:* 8 {{candidate function not viable}}
497 // expected-note@vecintrin.h:* 1 {{must be a constant integer from 0 to 15}}
498
499 vsc = vec_sldw(vsc, vsc, idx); // expected-error {{no matching function}}
500 // expected-note@vecintrin.h:* 8 {{candidate function not viable}}
501 // expected-note@vecintrin.h:* 1 {{must be a constant integer from 0 to 3}}
502 vsc = vec_sldw(vsc, vsc, -1); // expected-error {{no matching function}}
503 // expected-note@vecintrin.h:* 8 {{candidate function not viable}}
504 // expected-note@vecintrin.h:* 1 {{must be a constant integer from 0 to 3}}
505 vsc = vec_sldw(vsc, vsc, 4); // expected-error {{no matching function}}
506 // expected-note@vecintrin.h:* 8 {{candidate function not viable}}
507 // expected-note@vecintrin.h:* 1 {{must be a constant integer from 0 to 3}}
508 vuc = vec_sldw(vuc, vuc, idx); // expected-error {{no matching function}}
509 // expected-note@vecintrin.h:* 8 {{candidate function not viable}}
510 // expected-note@vecintrin.h:* 1 {{must be a constant integer from 0 to 3}}
511 vuc = vec_sldw(vuc, vuc, -1); // expected-error {{no matching function}}
512 // expected-note@vecintrin.h:* 8 {{candidate function not viable}}
513 // expected-note@vecintrin.h:* 1 {{must be a constant integer from 0 to 3}}
514 vuc = vec_sldw(vuc, vuc, 4); // expected-error {{no matching function}}
515 // expected-note@vecintrin.h:* 8 {{candidate function not viable}}
516 // expected-note@vecintrin.h:* 1 {{must be a constant integer from 0 to 3}}
517 vss = vec_sldw(vss, vss, idx); // expected-error {{no matching function}}
518 // expected-note@vecintrin.h:* 8 {{candidate function not viable}}
519 // expected-note@vecintrin.h:* 1 {{must be a constant integer from 0 to 3}}
520 vus = vec_sldw(vus, vus, idx); // expected-error {{no matching function}}
521 // expected-note@vecintrin.h:* 8 {{candidate function not viable}}
522 // expected-note@vecintrin.h:* 1 {{must be a constant integer from 0 to 3}}
523 vsi = vec_sldw(vsi, vsi, idx); // expected-error {{no matching function}}
524 // expected-note@vecintrin.h:* 8 {{candidate function not viable}}
525 // expected-note@vecintrin.h:* 1 {{must be a constant integer from 0 to 3}}
526 vui = vec_sldw(vui, vui, idx); // expected-error {{no matching function}}
527 // expected-note@vecintrin.h:* 8 {{candidate function not viable}}
528 // expected-note@vecintrin.h:* 1 {{must be a constant integer from 0 to 3}}
529 vsl = vec_sldw(vsl, vsl, idx); // expected-error {{no matching function}}
530 // expected-note@vecintrin.h:* 8 {{candidate function not viable}}
531 // expected-note@vecintrin.h:* 1 {{must be a constant integer from 0 to 3}}
532 vul = vec_sldw(vul, vul, idx); // expected-error {{no matching function}}
533 // expected-note@vecintrin.h:* 8 {{candidate function not viable}}
534 // expected-note@vecintrin.h:* 1 {{must be a constant integer from 0 to 3}}
535 vd = vec_sldw(vd, vd, idx); // expected-error {{no matching function}}
536 // expected-note@vecintrin.h:* 8 {{candidate function not viable}}
537 // expected-note@vecintrin.h:* 1 {{must be a constant integer from 0 to 3}}
538 }
539
test_float(void)540 void test_float(void) {
541 vd = vec_ctd(vsl, idx); // expected-error {{no matching function}}
542 // expected-note@vecintrin.h:* 1 {{candidate function not viable}}
543 // expected-note@vecintrin.h:* 1 {{must be a constant integer from 0 to 31}}
544 vd = vec_ctd(vsl, -1); // expected-error {{no matching function}}
545 // expected-note@vecintrin.h:* 1 {{candidate function not viable}}
546 // expected-note@vecintrin.h:* 1 {{must be a constant integer from 0 to 31}}
547 vd = vec_ctd(vsl, 32); // expected-error {{no matching function}}
548 // expected-note@vecintrin.h:* 1 {{candidate function not viable}}
549 // expected-note@vecintrin.h:* 1 {{must be a constant integer from 0 to 31}}
550 vd = vec_ctd(vul, idx); // expected-error {{no matching function}}
551 // expected-note@vecintrin.h:* 1 {{candidate function not viable}}
552 // expected-note@vecintrin.h:* 1 {{must be a constant integer from 0 to 31}}
553 vd = vec_ctd(vul, -1); // expected-error {{no matching function}}
554 // expected-note@vecintrin.h:* 1 {{candidate function not viable}}
555 // expected-note@vecintrin.h:* 1 {{must be a constant integer from 0 to 31}}
556 vd = vec_ctd(vul, 32); // expected-error {{no matching function}}
557 // expected-note@vecintrin.h:* 1 {{candidate function not viable}}
558 // expected-note@vecintrin.h:* 1 {{must be a constant integer from 0 to 31}}
559
560 vsl = vec_ctsl(vd, idx); // expected-error {{no matching function}}
561 // expected-note@vecintrin.h:* 1 {{must be a constant integer from 0 to 31}}
562 vsl = vec_ctsl(vd, -1); // expected-error {{no matching function}}
563 // expected-note@vecintrin.h:* 1 {{must be a constant integer from 0 to 31}}
564 vsl = vec_ctsl(vd, 32); // expected-error {{no matching function}}
565 // expected-note@vecintrin.h:* 1 {{must be a constant integer from 0 to 31}}
566 vul = vec_ctul(vd, idx); // expected-error {{no matching function}}
567 // expected-note@vecintrin.h:* 1 {{must be a constant integer from 0 to 31}}
568 vul = vec_ctul(vd, -1); // expected-error {{no matching function}}
569 // expected-note@vecintrin.h:* 1 {{must be a constant integer from 0 to 31}}
570 vul = vec_ctul(vd, 32); // expected-error {{no matching function}}
571 // expected-note@vecintrin.h:* 1 {{must be a constant integer from 0 to 31}}
572
573 vbl = vec_fp_test_data_class(vd, idx, &cc); // expected-error {{must be a constant integer}}
574 vbl = vec_fp_test_data_class(vd, -1, &cc); // expected-error {{should be a value from 0 to 4095}}
575 vbl = vec_fp_test_data_class(vd, 4096, &cc); // expected-error {{should be a value from 0 to 4095}}
576 }
577