• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // REQUIRES: systemz-registered-target
2 // RUN: %clang_cc1 -target-cpu z13 -triple s390x-linux-gnu \
3 // RUN: -fzvector -flax-vector-conversions=none \
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}} expected-error {{argument to '__builtin_s390_vpdi' must be a constant integer}}
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}} expected-error {{argument to '__builtin_s390_vpdi' must be a constant integer}}
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}} expected-error {{argument to '__builtin_s390_vpdi' must be a constant integer}}
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}} expected-error {{argument to '__builtin_s390_vpdi' must be a constant integer}}
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}} expected-error {{argument to '__builtin_s390_vlbb' must be a constant integer}}
236                                       // expected-note@vecintrin.h:* 9 {{must be a constant power of 2 from 64 to 4096}}
237   vsc = vec_load_bndry(cptrsc, 200);  // expected-error {{no matching function}} expected-error {{argument value -1 is outside the valid range [0, 15]}}
238                                       // expected-note@vecintrin.h:* 9 {{must be a constant power of 2 from 64 to 4096}}
239   vsc = vec_load_bndry(cptrsc, 32);   // expected-error {{no matching function}} expected-error {{argument value -1 is outside the valid range [0, 15]}}
240                                       // expected-note@vecintrin.h:* 9 {{must be a constant power of 2 from 64 to 4096}}
241   vsc = vec_load_bndry(cptrsc, 8192); // expected-error {{no matching function}} expected-error {{argument value -1 is outside the valid range [0, 15]}}
242                                       // expected-note@vecintrin.h:* 9 {{must be a constant power of 2 from 64 to 4096}}
243   vuc = vec_load_bndry(cptruc, idx);  // expected-error {{no matching function}} expected-error {{argument to '__builtin_s390_vlbb' must be a constant integer}}
244                                       // expected-note@vecintrin.h:* 9 {{must be a constant power of 2 from 64 to 4096}}
245   vss = vec_load_bndry(cptrss, idx);  // expected-error {{no matching function}} expected-error {{argument to '__builtin_s390_vlbb' must be a constant integer}}
246                                       // expected-note@vecintrin.h:* 9 {{must be a constant power of 2 from 64 to 4096}}
247   vus = vec_load_bndry(cptrus, idx);  // expected-error {{no matching function}} expected-error {{argument to '__builtin_s390_vlbb' must be a constant integer}}
248                                       // expected-note@vecintrin.h:* 9 {{must be a constant power of 2 from 64 to 4096}}
249   vsi = vec_load_bndry(cptrsi, idx);  // expected-error {{no matching function}} expected-error {{argument to '__builtin_s390_vlbb' must be a constant integer}}
250                                       // expected-note@vecintrin.h:* 9 {{must be a constant power of 2 from 64 to 4096}}
251   vui = vec_load_bndry(cptrui, idx);  // expected-error {{no matching function}} expected-error {{argument to '__builtin_s390_vlbb' must be a constant integer}}
252                                       // expected-note@vecintrin.h:* 9 {{must be a constant power of 2 from 64 to 4096}}
253   vsl = vec_load_bndry(cptrsl, idx);  // expected-error {{no matching function}} expected-error {{argument to '__builtin_s390_vlbb' must be a constant integer}}
254                                       // expected-note@vecintrin.h:* 9 {{must be a constant power of 2 from 64 to 4096}}
255   vul = vec_load_bndry(cptrul, idx);  // expected-error {{no matching function}} expected-error {{argument to '__builtin_s390_vlbb' must be a constant integer}}
256                                       // expected-note@vecintrin.h:* 9 {{must be a constant power of 2 from 64 to 4096}}
257 
258   vuc = vec_genmask(idx);  // expected-error {{no matching function}}
259                            // expected-note@vecintrin.h:* {{must be a constant integer}}
260 
261   vuc = vec_genmasks_8(0, idx);    // expected-error {{no matching function}}
262                                    // expected-note@vecintrin.h:* {{must be a constant integer}}
263   vuc = vec_genmasks_8(idx, 0);    // expected-error {{no matching function}}
264                                    // expected-note@vecintrin.h:* {{must be a constant integer}}
265   vuc = vec_genmasks_8(idx, idx);  // expected-error {{no matching function}}
266                                    // expected-note@vecintrin.h:* {{must be a constant integer}}
267   vus = vec_genmasks_16(0, idx);   // expected-error {{no matching function}}
268                                    // expected-note@vecintrin.h:* {{must be a constant integer}}
269   vus = vec_genmasks_16(idx, 0);   // expected-error {{no matching function}}
270                                    // expected-note@vecintrin.h:* {{must be a constant integer}}
271   vus = vec_genmasks_16(idx, idx); // expected-error {{no matching function}}
272                                    // expected-note@vecintrin.h:* {{must be a constant integer}}
273   vui = vec_genmasks_32(0, idx);   // expected-error {{no matching function}}
274                                    // expected-note@vecintrin.h:* {{must be a constant integer}}
275   vui = vec_genmasks_32(idx, 0);   // expected-error {{no matching function}}
276                                    // expected-note@vecintrin.h:* {{must be a constant integer}}
277   vui = vec_genmasks_32(idx, idx); // expected-error {{no matching function}}
278                                    // expected-note@vecintrin.h:* {{must be a constant integer}}
279   vul = vec_genmasks_64(0, idx);   // expected-error {{no matching function}}
280                                    // expected-note@vecintrin.h:* {{must be a constant integer}}
281   vul = vec_genmasks_64(idx, 0);   // expected-error {{no matching function}}
282                                    // expected-note@vecintrin.h:* {{must be a constant integer}}
283   vul = vec_genmasks_64(idx, idx); // expected-error {{no matching function}}
284                                    // expected-note@vecintrin.h:* {{must be a constant integer}}
285 
286   vsc = vec_splat(vsc, idx); // expected-error {{no matching function}}
287                              // expected-note@vecintrin.h:* 12 {{candidate function not viable}}
288                              // expected-note@vecintrin.h:* 1 {{must be a constant integer from 0 to 15}}
289   vsc = vec_splat(vsc, -1);  // expected-error {{no matching function}}
290                              // expected-note@vecintrin.h:* 12 {{candidate function not viable}}
291                              // expected-note@vecintrin.h:* 1 {{must be a constant integer from 0 to 15}}
292   vsc = vec_splat(vsc, 16);  // expected-error {{no matching function}}
293                              // expected-note@vecintrin.h:* 12 {{candidate function not viable}}
294                              // expected-note@vecintrin.h:* 1 {{must be a constant integer from 0 to 15}}
295   vuc = vec_splat(vuc, idx); // expected-error {{no matching function}}
296                              // expected-note@vecintrin.h:* 11 {{candidate function not viable}}
297                              // expected-note@vecintrin.h:* 2 {{must be a constant integer from 0 to 15}}
298   vuc = vec_splat(vuc, -1);  // expected-error {{no matching function}}
299                              // expected-note@vecintrin.h:* 11 {{candidate function not viable}}
300                              // expected-note@vecintrin.h:* 2 {{must be a constant integer from 0 to 15}}
301   vuc = vec_splat(vuc, 16);  // expected-error {{no matching function}}
302                              // expected-note@vecintrin.h:* 11 {{candidate function not viable}}
303                              // expected-note@vecintrin.h:* 2 {{must be a constant integer from 0 to 15}}
304   vbc = vec_splat(vbc, idx); // expected-error {{no matching function}}
305                              // expected-note@vecintrin.h:* 11 {{candidate function not viable}}
306                              // expected-note@vecintrin.h:* 2 {{must be a constant integer from 0 to 15}}
307   vbc = vec_splat(vbc, -1);  // expected-error {{no matching function}}
308                              // expected-note@vecintrin.h:* 11 {{candidate function not viable}}
309                              // expected-note@vecintrin.h:* 2 {{must be a constant integer from 0 to 15}}
310   vbc = vec_splat(vbc, 16);  // expected-error {{no matching function}}
311                              // expected-note@vecintrin.h:* 11 {{candidate function not viable}}
312                              // expected-note@vecintrin.h:* 2 {{must be a constant integer from 0 to 15}}
313   vss = vec_splat(vss, idx); // expected-error {{no matching function}}
314                              // expected-note@vecintrin.h:* 12 {{candidate function not viable}}
315                              // expected-note@vecintrin.h:* 1 {{must be a constant integer from 0 to 7}}
316   vss = vec_splat(vss, -1);  // expected-error {{no matching function}}
317                              // expected-note@vecintrin.h:* 12 {{candidate function not viable}}
318                              // expected-note@vecintrin.h:* 1 {{must be a constant integer from 0 to 7}}
319   vss = vec_splat(vss, 8);   // expected-error {{no matching function}}
320                              // expected-note@vecintrin.h:* 12 {{candidate function not viable}}
321                              // expected-note@vecintrin.h:* 1 {{must be a constant integer from 0 to 7}}
322   vus = vec_splat(vus, idx); // expected-error {{no matching function}}
323                              // expected-note@vecintrin.h:* 11 {{candidate function not viable}}
324                              // expected-note@vecintrin.h:* 2 {{must be a constant integer from 0 to 7}}
325   vus = vec_splat(vus, -1);  // expected-error {{no matching function}}
326                              // expected-note@vecintrin.h:* 11 {{candidate function not viable}}
327                              // expected-note@vecintrin.h:* 2 {{must be a constant integer from 0 to 7}}
328   vus = vec_splat(vus, 8);   // expected-error {{no matching function}}
329                              // expected-note@vecintrin.h:* 11 {{candidate function not viable}}
330                              // expected-note@vecintrin.h:* 2 {{must be a constant integer from 0 to 7}}
331   vbs = vec_splat(vbs, idx); // expected-error {{no matching function}}
332                              // expected-note@vecintrin.h:* 11 {{candidate function not viable}}
333                              // expected-note@vecintrin.h:* 2 {{must be a constant integer from 0 to 7}}
334   vbs = vec_splat(vbs, -1);  // expected-error {{no matching function}}
335                              // expected-note@vecintrin.h:* 11 {{candidate function not viable}}
336                              // expected-note@vecintrin.h:* 2 {{must be a constant integer from 0 to 7}}
337   vbs = vec_splat(vbs, 8);   // expected-error {{no matching function}}
338                              // expected-note@vecintrin.h:* 11 {{candidate function not viable}}
339                              // expected-note@vecintrin.h:* 2 {{must be a constant integer from 0 to 7}}
340   vsi = vec_splat(vsi, idx); // expected-error {{no matching function}}
341                              // expected-note@vecintrin.h:* 12 {{candidate function not viable}}
342                              // expected-note@vecintrin.h:* 1 {{must be a constant integer from 0 to 3}}
343   vsi = vec_splat(vsi, -1);  // expected-error {{no matching function}}
344                              // expected-note@vecintrin.h:* 12 {{candidate function not viable}}
345                              // expected-note@vecintrin.h:* 1 {{must be a constant integer from 0 to 3}}
346   vsi = vec_splat(vsi, 4);   // expected-error {{no matching function}}
347                              // expected-note@vecintrin.h:* 12 {{candidate function not viable}}
348                              // expected-note@vecintrin.h:* 1 {{must be a constant integer from 0 to 3}}
349   vui = vec_splat(vui, idx); // expected-error {{no matching function}}
350                              // expected-note@vecintrin.h:* 11 {{candidate function not viable}}
351                              // expected-note@vecintrin.h:* 2 {{must be a constant integer from 0 to 3}}
352   vui = vec_splat(vui, -1);  // expected-error {{no matching function}}
353                              // expected-note@vecintrin.h:* 11 {{candidate function not viable}}
354                              // expected-note@vecintrin.h:* 2 {{must be a constant integer from 0 to 3}}
355   vui = vec_splat(vui, 4);   // expected-error {{no matching function}}
356                              // expected-note@vecintrin.h:* 11 {{candidate function not viable}}
357                              // expected-note@vecintrin.h:* 2 {{must be a constant integer from 0 to 3}}
358   vbi = vec_splat(vbi, idx); // expected-error {{no matching function}}
359                              // expected-note@vecintrin.h:* 11 {{candidate function not viable}}
360                              // expected-note@vecintrin.h:* 2 {{must be a constant integer from 0 to 3}}
361   vbi = vec_splat(vbi, -1);  // expected-error {{no matching function}}
362                              // expected-note@vecintrin.h:* 11 {{candidate function not viable}}
363                              // expected-note@vecintrin.h:* 2 {{must be a constant integer from 0 to 3}}
364   vbi = vec_splat(vbi, 4);   // expected-error {{no matching function}}
365                              // expected-note@vecintrin.h:* 11 {{candidate function not viable}}
366                              // expected-note@vecintrin.h:* 2 {{must be a constant integer from 0 to 3}}
367   vsl = vec_splat(vsl, idx); // expected-error {{no matching function}}
368                              // expected-note@vecintrin.h:* 12 {{candidate function not viable}}
369                              // expected-note@vecintrin.h:* 1 {{must be a constant integer from 0 to 1}}
370   vsl = vec_splat(vsl, -1);  // expected-error {{no matching function}}
371                              // expected-note@vecintrin.h:* 12 {{candidate function not viable}}
372                              // expected-note@vecintrin.h:* 1 {{must be a constant integer from 0 to 1}}
373   vsl = vec_splat(vsl, 2);   // expected-error {{no matching function}}
374                              // expected-note@vecintrin.h:* 12 {{candidate function not viable}}
375                              // expected-note@vecintrin.h:* 1 {{must be a constant integer from 0 to 1}}
376   vul = vec_splat(vul, idx); // expected-error {{no matching function}}
377                              // expected-note@vecintrin.h:* 11 {{candidate function not viable}}
378                              // expected-note@vecintrin.h:* 2 {{must be a constant integer from 0 to 1}}
379   vul = vec_splat(vul, -1);  // expected-error {{no matching function}}
380                              // expected-note@vecintrin.h:* 11 {{candidate function not viable}}
381                              // expected-note@vecintrin.h:* 2 {{must be a constant integer from 0 to 1}}
382   vul = vec_splat(vul, 2);   // expected-error {{no matching function}}
383                              // expected-note@vecintrin.h:* 11 {{candidate function not viable}}
384                              // expected-note@vecintrin.h:* 2 {{must be a constant integer from 0 to 1}}
385   vbl = vec_splat(vbl, idx); // expected-error {{no matching function}}
386                              // expected-note@vecintrin.h:* 11 {{candidate function not viable}}
387                              // expected-note@vecintrin.h:* 2 {{must be a constant integer from 0 to 1}}
388   vbl = vec_splat(vbl, -1);  // expected-error {{no matching function}}
389                              // expected-note@vecintrin.h:* 11 {{candidate function not viable}}
390                              // expected-note@vecintrin.h:* 2 {{must be a constant integer from 0 to 1}}
391   vbl = vec_splat(vbl, 2);   // expected-error {{no matching function}}
392                              // expected-note@vecintrin.h:* 11 {{candidate function not viable}}
393                              // expected-note@vecintrin.h:* 2 {{must be a constant integer from 0 to 1}}
394   vd = vec_splat(vd, idx);   // expected-error {{no matching function}}
395                              // expected-note@vecintrin.h:* 12 {{candidate function not viable}}
396                              // expected-note@vecintrin.h:* 1 {{must be a constant integer from 0 to 1}}
397   vd = vec_splat(vd, -1);    // expected-error {{no matching function}}
398                              // expected-note@vecintrin.h:* 12 {{candidate function not viable}}
399                              // expected-note@vecintrin.h:* 1 {{must be a constant integer from 0 to 1}}
400   vd = vec_splat(vd, 2);     // expected-error {{no matching function}}
401                              // expected-note@vecintrin.h:* 12 {{candidate function not viable}}
402                              // expected-note@vecintrin.h:* 1 {{must be a constant integer from 0 to 1}}
403 
404   vsc = vec_splat_s8(idx);  // expected-error {{no matching function}}
405                             // expected-note@vecintrin.h:* {{must be a constant integer}}
406   vuc = vec_splat_u8(idx);  // expected-error {{no matching function}}
407                             // expected-note@vecintrin.h:* {{must be a constant integer}}
408   vss = vec_splat_s16(idx); // expected-error {{no matching function}}
409                             // expected-note@vecintrin.h:* {{must be a constant integer}}
410   vus = vec_splat_u16(idx); // expected-error {{no matching function}}
411                             // expected-note@vecintrin.h:* {{must be a constant integer}}
412   vsi = vec_splat_s32(idx); // expected-error {{no matching function}}
413                             // expected-note@vecintrin.h:* {{must be a constant integer}}
414   vui = vec_splat_u32(idx); // expected-error {{no matching function}}
415                             // expected-note@vecintrin.h:* {{must be a constant integer}}
416   vsl = vec_splat_s64(idx); // expected-error {{no matching function}}
417                             // expected-note@vecintrin.h:* {{must be a constant integer}}
418   vul = vec_splat_u64(idx); // expected-error {{no matching function}}
419                             // expected-note@vecintrin.h:* {{must be a constant integer}}
420 }
421 
test_integer(void)422 void test_integer(void) {
423   vsc = vec_rl_mask(vsc, vuc, idx); // expected-error {{no matching function}} \
424                                     // expected-error {{argument to '__builtin_s390_verimb' must be a constant integer}} \
425                                     // expected-error {{argument to '__builtin_s390_verimh' must be a constant integer}} \
426                                     // expected-error {{argument to '__builtin_s390_verimf' must be a constant integer}} \
427                                     // expected-error {{argument to '__builtin_s390_verimg' must be a constant integer}}
428                                     // expected-note@vecintrin.h:* 7 {{candidate function not viable}}
429                                     // expected-note@vecintrin.h:* 1 {{must be a constant integer}}
430   vuc = vec_rl_mask(vuc, vuc, idx); // expected-error {{no matching function}} \
431                                     // expected-error {{argument to '__builtin_s390_verimb' must be a constant integer}} \
432                                     // expected-error {{argument to '__builtin_s390_verimh' must be a constant integer}} \
433                                     // expected-error {{argument to '__builtin_s390_verimf' must be a constant integer}} \
434                                     // expected-error {{argument to '__builtin_s390_verimg' must be a constant integer}}
435                                     // expected-note@vecintrin.h:* 7 {{candidate function not viable}}
436                                     // expected-note@vecintrin.h:* 1 {{must be a constant integer}}
437   vss = vec_rl_mask(vss, vus, idx); // expected-error {{no matching function}} \
438                                     // expected-error {{argument to '__builtin_s390_verimb' must be a constant integer}} \
439                                     // expected-error {{argument to '__builtin_s390_verimh' must be a constant integer}} \
440                                     // expected-error {{argument to '__builtin_s390_verimf' must be a constant integer}} \
441                                     // expected-error {{argument to '__builtin_s390_verimg' must be a constant integer}}
442                                     // expected-note@vecintrin.h:* 7 {{candidate function not viable}}
443                                     // expected-note@vecintrin.h:* 1 {{must be a constant integer}}
444   vus = vec_rl_mask(vus, vus, idx); // expected-error {{no matching function}} \
445                                     // expected-error {{argument to '__builtin_s390_verimb' must be a constant integer}} \
446                                     // expected-error {{argument to '__builtin_s390_verimh' must be a constant integer}} \
447                                     // expected-error {{argument to '__builtin_s390_verimf' must be a constant integer}} \
448                                     // expected-error {{argument to '__builtin_s390_verimg' must be a constant integer}}
449                                     // expected-note@vecintrin.h:* 7 {{candidate function not viable}}
450                                     // expected-note@vecintrin.h:* 1 {{must be a constant integer}}
451   vsi = vec_rl_mask(vsi, vui, idx); // expected-error {{no matching function}} \
452                                     // expected-error {{argument to '__builtin_s390_verimb' must be a constant integer}} \
453                                     // expected-error {{argument to '__builtin_s390_verimh' must be a constant integer}} \
454                                     // expected-error {{argument to '__builtin_s390_verimf' must be a constant integer}} \
455                                     // expected-error {{argument to '__builtin_s390_verimg' must be a constant integer}}
456                                     // expected-note@vecintrin.h:* 7 {{candidate function not viable}}
457                                     // expected-note@vecintrin.h:* 1 {{must be a constant integer}}
458   vui = vec_rl_mask(vui, vui, idx); // expected-error {{no matching function}} \
459                                     // expected-error {{argument to '__builtin_s390_verimb' must be a constant integer}} \
460                                     // expected-error {{argument to '__builtin_s390_verimh' must be a constant integer}} \
461                                     // expected-error {{argument to '__builtin_s390_verimf' must be a constant integer}} \
462                                     // expected-error {{argument to '__builtin_s390_verimg' must be a constant integer}}
463                                     // expected-note@vecintrin.h:* 7 {{candidate function not viable}}
464                                     // expected-note@vecintrin.h:* 1 {{must be a constant integer}}
465   vsl = vec_rl_mask(vsl, vul, idx); // expected-error {{no matching function}} \
466                                     // expected-error {{argument to '__builtin_s390_verimb' must be a constant integer}} \
467                                     // expected-error {{argument to '__builtin_s390_verimh' must be a constant integer}} \
468                                     // expected-error {{argument to '__builtin_s390_verimf' must be a constant integer}} \
469                                     // expected-error {{argument to '__builtin_s390_verimg' must be a constant integer}}
470                                     // expected-note@vecintrin.h:* 7 {{candidate function not viable}}
471                                     // expected-note@vecintrin.h:* 1 {{must be a constant integer}}
472   vul = vec_rl_mask(vul, vul, idx); // expected-error {{no matching function}} \
473                                     // expected-error {{argument to '__builtin_s390_verimb' must be a constant integer}} \
474                                     // expected-error {{argument to '__builtin_s390_verimh' must be a constant integer}} \
475                                     // expected-error {{argument to '__builtin_s390_verimf' must be a constant integer}} \
476                                     // expected-error {{argument to '__builtin_s390_verimg' must be a constant integer}}
477                                     // expected-note@vecintrin.h:* 7 {{candidate function not viable}}
478                                     // expected-note@vecintrin.h:* 1 {{must be a constant integer}}
479 
480   vsc = vec_sld(vsc, vsc, idx); // expected-error {{no matching function}} expected-error {{argument to '__builtin_s390_vsldb' must be a constant integer}}
481                                 // expected-note@vecintrin.h:* 12 {{candidate function not viable}}
482                                 // expected-note@vecintrin.h:* 1 {{must be a constant integer from 0 to 15}}
483   vsc = vec_sld(vsc, vsc, -1);  // expected-error {{no matching function}} expected-error {{argument value -1 is outside the valid range [0, 15]}}
484                                 // expected-note@vecintrin.h:* 12 {{candidate function not viable}}
485                                 // expected-note@vecintrin.h:* 1 {{must be a constant integer from 0 to 15}}
486   vsc = vec_sld(vsc, vsc, 16);  // expected-error {{no matching function}} expected-error {{argument value 16 is outside the valid range [0, 15]}}
487                                 // expected-note@vecintrin.h:* 12 {{candidate function not viable}}
488                                 // expected-note@vecintrin.h:* 1 {{must be a constant integer from 0 to 15}}
489   vuc = vec_sld(vuc, vuc, idx); // expected-error {{no matching function}} expected-error {{argument to '__builtin_s390_vsldb' must be a constant integer}}
490                                 // expected-note@vecintrin.h:* 11 {{candidate function not viable}}
491                                 // expected-note@vecintrin.h:* 2 {{must be a constant integer from 0 to 15}}
492   vuc = vec_sld(vuc, vuc, -1);  // expected-error {{no matching function}} expected-error {{argument value -1 is outside the valid range [0, 15]}}
493                                 // expected-note@vecintrin.h:* 11 {{candidate function not viable}}
494                                 // expected-note@vecintrin.h:* 2 {{must be a constant integer from 0 to 15}}
495   vuc = vec_sld(vuc, vuc, 16);  // expected-error {{no matching function}} expected-error {{argument value 16 is outside the valid range [0, 15]}}
496                                 // expected-note@vecintrin.h:* 11 {{candidate function not viable}}
497                                 // expected-note@vecintrin.h:* 2 {{must be a constant integer from 0 to 15}}
498   vss = vec_sld(vss, vss, idx); // expected-error {{no matching function}} expected-error {{argument to '__builtin_s390_vsldb' must be a constant integer}}
499                                 // expected-note@vecintrin.h:* 12 {{candidate function not viable}}
500                                 // expected-note@vecintrin.h:* 1 {{must be a constant integer from 0 to 15}}
501   vus = vec_sld(vus, vus, idx); // expected-error {{no matching function}} expected-error {{argument to '__builtin_s390_vsldb' must be a constant integer}}
502                                 // expected-note@vecintrin.h:* 11 {{candidate function not viable}}
503                                 // expected-note@vecintrin.h:* 2 {{must be a constant integer from 0 to 15}}
504   vsi = vec_sld(vsi, vsi, idx); // expected-error {{no matching function}} expected-error {{argument to '__builtin_s390_vsldb' must be a constant integer}}
505                                 // expected-note@vecintrin.h:* 12 {{candidate function not viable}}
506                                 // expected-note@vecintrin.h:* 1 {{must be a constant integer from 0 to 15}}
507   vui = vec_sld(vui, vui, idx); // expected-error {{no matching function}} expected-error {{argument to '__builtin_s390_vsldb' must be a constant integer}}
508                                 // expected-note@vecintrin.h:* 11 {{candidate function not viable}}
509                                 // expected-note@vecintrin.h:* 2 {{must be a constant integer from 0 to 15}}
510   vsl = vec_sld(vsl, vsl, idx); // expected-error {{no matching function}} expected-error {{argument to '__builtin_s390_vsldb' must be a constant integer}}
511                                 // expected-note@vecintrin.h:* 12 {{candidate function not viable}}
512                                 // expected-note@vecintrin.h:* 1 {{must be a constant integer from 0 to 15}}
513   vul = vec_sld(vul, vul, idx); // expected-error {{no matching function}} expected-error {{argument to '__builtin_s390_vsldb' must be a constant integer}}
514                                 // expected-note@vecintrin.h:* 11 {{candidate function not viable}}
515                                 // expected-note@vecintrin.h:* 2 {{must be a constant integer from 0 to 15}}
516   vd = vec_sld(vd, vd, idx);    // expected-error {{no matching function}} expected-error {{argument to '__builtin_s390_vsldb' must be a constant integer}}
517                                 // expected-note@vecintrin.h:* 12 {{candidate function not viable}}
518                                 // expected-note@vecintrin.h:* 1 {{must be a constant integer from 0 to 15}}
519 
520   vsc = vec_sldw(vsc, vsc, idx); // expected-error {{no matching function}} expected-error {{argument to '__builtin_s390_vsldb' must be a constant integer}}
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   vsc = vec_sldw(vsc, vsc, -1);  // expected-error {{no matching function}} expected-error {{argument value -4 is outside the valid range [0, 15]}}
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   vsc = vec_sldw(vsc, vsc, 4);   // expected-error {{no matching function}} expected-error {{argument value 16 is outside the valid range [0, 15]}}
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   vuc = vec_sldw(vuc, vuc, idx); // expected-error {{no matching function}} expected-error {{argument to '__builtin_s390_vsldb' must be a constant integer}}
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   vuc = vec_sldw(vuc, vuc, -1);  // expected-error {{no matching function}} expected-error {{argument value -4 is outside the valid range [0, 15]}}
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   vuc = vec_sldw(vuc, vuc, 4);   // expected-error {{no matching function}} expected-error {{argument value 16 is outside the valid range [0, 15]}}
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   vss = vec_sldw(vss, vss, idx); // expected-error {{no matching function}} expected-error {{argument to '__builtin_s390_vsldb' must be a constant integer}}
539                                  // expected-note@vecintrin.h:* 8 {{candidate function not viable}}
540                                  // expected-note@vecintrin.h:* 1 {{must be a constant integer from 0 to 3}}
541   vus = vec_sldw(vus, vus, idx); // expected-error {{no matching function}} expected-error {{argument to '__builtin_s390_vsldb' must be a constant integer}}
542                                  // expected-note@vecintrin.h:* 8 {{candidate function not viable}}
543                                  // expected-note@vecintrin.h:* 1 {{must be a constant integer from 0 to 3}}
544   vsi = vec_sldw(vsi, vsi, idx); // expected-error {{no matching function}} expected-error {{argument to '__builtin_s390_vsldb' must be a constant integer}}
545                                  // expected-note@vecintrin.h:* 8 {{candidate function not viable}}
546                                  // expected-note@vecintrin.h:* 1 {{must be a constant integer from 0 to 3}}
547   vui = vec_sldw(vui, vui, idx); // expected-error {{no matching function}} expected-error {{argument to '__builtin_s390_vsldb' must be a constant integer}}
548                                  // expected-note@vecintrin.h:* 8 {{candidate function not viable}}
549                                  // expected-note@vecintrin.h:* 1 {{must be a constant integer from 0 to 3}}
550   vsl = vec_sldw(vsl, vsl, idx); // expected-error {{no matching function}} expected-error {{argument to '__builtin_s390_vsldb' must be a constant integer}}
551                                  // expected-note@vecintrin.h:* 8 {{candidate function not viable}}
552                                  // expected-note@vecintrin.h:* 1 {{must be a constant integer from 0 to 3}}
553   vul = vec_sldw(vul, vul, idx); // expected-error {{no matching function}} expected-error {{argument to '__builtin_s390_vsldb' must be a constant integer}}
554                                  // expected-note@vecintrin.h:* 8 {{candidate function not viable}}
555                                  // expected-note@vecintrin.h:* 1 {{must be a constant integer from 0 to 3}}
556   vd = vec_sldw(vd, vd, idx);    // expected-error {{no matching function}} expected-error {{argument to '__builtin_s390_vsldb' must be a constant integer}}
557                                  // expected-note@vecintrin.h:* 8 {{candidate function not viable}}
558                                  // expected-note@vecintrin.h:* 1 {{must be a constant integer from 0 to 3}}
559 }
560 
test_float(void)561 void test_float(void) {
562   vd = vec_ctd(vsl, idx); // expected-error {{no matching function}}
563                           // expected-note@vecintrin.h:* 1 {{candidate function not viable}}
564                           // expected-note@vecintrin.h:* 1 {{must be a constant integer from 0 to 31}}
565   vd = vec_ctd(vsl, -1);  // expected-error {{no matching function}}
566                           // expected-note@vecintrin.h:* 1 {{candidate function not viable}}
567                           // expected-note@vecintrin.h:* 1 {{must be a constant integer from 0 to 31}}
568   vd = vec_ctd(vsl, 32);  // expected-error {{no matching function}}
569                           // expected-note@vecintrin.h:* 1 {{candidate function not viable}}
570                           // expected-note@vecintrin.h:* 1 {{must be a constant integer from 0 to 31}}
571   vd = vec_ctd(vul, idx); // expected-error {{no matching function}}
572                           // expected-note@vecintrin.h:* 1 {{candidate function not viable}}
573                           // expected-note@vecintrin.h:* 1 {{must be a constant integer from 0 to 31}}
574   vd = vec_ctd(vul, -1);  // expected-error {{no matching function}}
575                           // expected-note@vecintrin.h:* 1 {{candidate function not viable}}
576                           // expected-note@vecintrin.h:* 1 {{must be a constant integer from 0 to 31}}
577   vd = vec_ctd(vul, 32);  // expected-error {{no matching function}}
578                           // expected-note@vecintrin.h:* 1 {{candidate function not viable}}
579                           // expected-note@vecintrin.h:* 1 {{must be a constant integer from 0 to 31}}
580 
581   vsl = vec_ctsl(vd, idx); // expected-error {{no matching function}}
582                            // expected-note@vecintrin.h:* 1 {{must be a constant integer from 0 to 31}}
583   vsl = vec_ctsl(vd, -1);  // expected-error {{no matching function}}
584                            // expected-note@vecintrin.h:* 1 {{must be a constant integer from 0 to 31}}
585   vsl = vec_ctsl(vd, 32);  // expected-error {{no matching function}}
586                            // expected-note@vecintrin.h:* 1 {{must be a constant integer from 0 to 31}}
587   vul = vec_ctul(vd, idx); // expected-error {{no matching function}}
588                            // expected-note@vecintrin.h:* 1 {{must be a constant integer from 0 to 31}}
589   vul = vec_ctul(vd, -1);  // expected-error {{no matching function}}
590                            // expected-note@vecintrin.h:* 1 {{must be a constant integer from 0 to 31}}
591   vul = vec_ctul(vd, 32);  // expected-error {{no matching function}}
592                            // expected-note@vecintrin.h:* 1 {{must be a constant integer from 0 to 31}}
593 
594   vbl = vec_fp_test_data_class(vd, idx, &cc);  // expected-error {{must be a constant integer}}
595   vbl = vec_fp_test_data_class(vd, -1, &cc);   // expected-error-re {{argument value {{.*}} is outside the valid range}}
596   vbl = vec_fp_test_data_class(vd, 4096, &cc); // expected-error-re {{argument value {{.*}} is outside the valid range}}
597 }
598