xref: /llvm-project/clang/test/CodeGen/SystemZ/builtins-systemz-zvector-error.c (revision 8424bf207efd89eacf2fe893b67be98d535e1db6)
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 signed __int128 vslll;
13 volatile vector unsigned char vuc;
14 volatile vector unsigned short vus;
15 volatile vector unsigned int vui;
16 volatile vector unsigned long long vul;
17 volatile vector unsigned __int128 vulll;
18 volatile vector bool char vbc;
19 volatile vector bool short vbs;
20 volatile vector bool int vbi;
21 volatile vector bool long long vbl;
22 volatile vector double vd;
23 
24 volatile signed char sc;
25 volatile signed short ss;
26 volatile signed int si;
27 volatile signed long long sl;
28 volatile unsigned char uc;
29 volatile unsigned short us;
30 volatile unsigned int ui;
31 volatile unsigned long long ul;
32 volatile double d;
33 
34 const void * volatile cptr;
35 const signed char * volatile cptrsc;
36 const signed short * volatile cptrss;
37 const signed int * volatile cptrsi;
38 const signed long long * volatile cptrsl;
39 const signed __int128 * volatile cptrslll;
40 const unsigned char * volatile cptruc;
41 const unsigned short * volatile cptrus;
42 const unsigned int * volatile cptrui;
43 const unsigned long long * volatile cptrul;
44 const unsigned __int128 * volatile cptrulll;
45 const float * volatile cptrf;
46 const double * volatile cptrd;
47 
48 void * volatile ptr;
49 signed char * volatile ptrsc;
50 signed short * volatile ptrss;
51 signed int * volatile ptrsi;
52 signed long long * volatile ptrsl;
53 unsigned char * volatile ptruc;
54 unsigned short * volatile ptrus;
55 unsigned int * volatile ptrui;
56 unsigned long long * volatile ptrul;
57 float * volatile ptrf;
58 double * volatile ptrd;
59 
60 volatile unsigned int len;
61 volatile int idx;
62 int cc;
63 
64 void test_core(void) {
65   len = __lcbb(cptr, idx);   // 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, 200);   // expected-error {{no matching function}}
68                              // expected-note@vecintrin.h:* {{must be a constant power of 2 from 64 to 4096}}
69   len = __lcbb(cptr, 32);    // expected-error {{no matching function}}
70                              // expected-note@vecintrin.h:* {{must be a constant power of 2 from 64 to 4096}}
71   len = __lcbb(cptr, 8192);  // expected-error {{no matching function}}
72                              // expected-note@vecintrin.h:* {{must be a constant power of 2 from 64 to 4096}}
73 
74   vsl = vec_permi(vsl, vsl, idx); // expected-error {{no matching function}} expected-error {{argument to '__builtin_s390_vpdi' must be a constant integer}}
75                                   // expected-note@vecintrin.h:* 3 {{candidate function not viable}}
76                                   // expected-note@vecintrin.h:* 1 {{must be a constant integer from 0 to 3}}
77   vsl = vec_permi(vsl, vsl, -1);  // expected-error {{no matching function}}
78                                   // expected-note@vecintrin.h:* 3 {{candidate function not viable}}
79                                   // expected-note@vecintrin.h:* 1 {{must be a constant integer from 0 to 3}}
80   vsl = vec_permi(vsl, vsl, 4);   // expected-error {{no matching function}}
81                                   // expected-note@vecintrin.h:* 3 {{candidate function not viable}}
82                                   // expected-note@vecintrin.h:* 1 {{must be a constant integer from 0 to 3}}
83   vul = vec_permi(vul, vul, idx); // expected-error {{no matching function}} expected-error {{argument to '__builtin_s390_vpdi' must be a constant integer}}
84                                   // expected-note@vecintrin.h:* 2 {{candidate function not viable}}
85                                   // expected-note@vecintrin.h:* 2 {{must be a constant integer from 0 to 3}}
86   vul = vec_permi(vul, vul, -1);  // expected-error {{no matching function}}
87                                   // expected-note@vecintrin.h:* 2 {{candidate function not viable}}
88                                   // expected-note@vecintrin.h:* 2 {{must be a constant integer from 0 to 3}}
89   vul = vec_permi(vul, vul, 4);   // expected-error {{no matching function}}
90                                   // expected-note@vecintrin.h:* 2 {{candidate function not viable}}
91                                   // expected-note@vecintrin.h:* 2 {{must be a constant integer from 0 to 3}}
92   vbl = vec_permi(vbl, vbl, idx); // expected-error {{no matching function}} expected-error {{argument to '__builtin_s390_vpdi' must be a constant integer}}
93                                   // expected-note@vecintrin.h:* 2 {{candidate function not viable}}
94                                   // expected-note@vecintrin.h:* 2 {{must be a constant integer from 0 to 3}}
95   vbl = vec_permi(vbl, vbl, -1);  // expected-error {{no matching function}}
96                                   // expected-note@vecintrin.h:* 2 {{candidate function not viable}}
97                                   // expected-note@vecintrin.h:* 2 {{must be a constant integer from 0 to 3}}
98   vbl = vec_permi(vbl, vbl, 4);   // expected-error {{no matching function}}
99                                   // expected-note@vecintrin.h:* 2 {{candidate function not viable}}
100                                   // expected-note@vecintrin.h:* 2 {{must be a constant integer from 0 to 3}}
101   vd = vec_permi(vd, vd, idx);    // expected-error {{no matching function}} expected-error {{argument to '__builtin_s390_vpdi' must be a constant integer}}
102                                   // expected-note@vecintrin.h:* 3 {{candidate function not viable}}
103                                   // expected-note@vecintrin.h:* 1 {{must be a constant integer from 0 to 3}}
104   vd = vec_permi(vd, vd, -1);     // expected-error {{no matching function}}
105                                   // expected-note@vecintrin.h:* 3 {{candidate function not viable}}
106                                   // expected-note@vecintrin.h:* 1 {{must be a constant integer from 0 to 3}}
107   vd = vec_permi(vd, vd, 4);      // expected-error {{no matching function}}
108                                   // expected-note@vecintrin.h:* 3 {{candidate function not viable}}
109                                   // expected-note@vecintrin.h:* 1 {{must be a constant integer from 0 to 3}}
110 
111   vsi = vec_gather_element(vsi, vui, cptrsi, idx); // expected-error {{no matching function}}
112                                                    // expected-note@vecintrin.h:* 6 {{candidate function not viable}}
113                                                    // expected-note@vecintrin.h:* 1 {{must be a constant integer from 0 to 3}}
114   vsi = vec_gather_element(vsi, vui, cptrsi, -1);  // expected-error {{no matching function}}
115                                                    // expected-note@vecintrin.h:* 6 {{candidate function not viable}}
116                                                    // expected-note@vecintrin.h:* 1 {{must be a constant integer from 0 to 3}}
117   vsi = vec_gather_element(vsi, vui, cptrsi, 4);   // expected-error {{no matching function}}
118                                                    // expected-note@vecintrin.h:* 6 {{candidate function not viable}}
119                                                    // expected-note@vecintrin.h:* 1 {{must be a constant integer from 0 to 3}}
120   vui = vec_gather_element(vui, vui, cptrui, idx); // expected-error {{no matching function}}
121                                                    // expected-note@vecintrin.h:* 5 {{candidate function not viable}}
122                                                    // expected-note@vecintrin.h:* 2 {{must be a constant integer from 0 to 3}}
123   vui = vec_gather_element(vui, vui, cptrui, -1);  // expected-error {{no matching function}}
124                                                    // expected-note@vecintrin.h:* 5 {{candidate function not viable}}
125                                                    // expected-note@vecintrin.h:* 2 {{must be a constant integer from 0 to 3}}
126   vui = vec_gather_element(vui, vui, cptrui, 4);   // expected-error {{no matching function}}
127                                                    // expected-note@vecintrin.h:* 5 {{candidate function not viable}}
128                                                    // expected-note@vecintrin.h:* 2 {{must be a constant integer from 0 to 3}}
129   vbi = vec_gather_element(vbi, vui, cptrui, idx); // expected-error {{no matching function}}
130                                                    // expected-note@vecintrin.h:* 5 {{candidate function not viable}}
131                                                    // expected-note@vecintrin.h:* 2 {{must be a constant integer from 0 to 3}}
132   vbi = vec_gather_element(vbi, vui, cptrui, -1);  // expected-error {{no matching function}}
133                                                    // expected-note@vecintrin.h:* 5 {{candidate function not viable}}
134                                                    // expected-note@vecintrin.h:* 2 {{must be a constant integer from 0 to 3}}
135   vbi = vec_gather_element(vbi, vui, cptrui, 4);   // expected-error {{no matching function}}
136                                                    // expected-note@vecintrin.h:* 5 {{candidate function not viable}}
137                                                    // expected-note@vecintrin.h:* 2 {{must be a constant integer from 0 to 3}}
138   vsl = vec_gather_element(vsl, vul, cptrsl, idx); // expected-error {{no matching function}}
139                                                    // expected-note@vecintrin.h:* 6 {{candidate function not viable}}
140                                                    // expected-note@vecintrin.h:* 1 {{must be a constant integer from 0 to 1}}
141   vsl = vec_gather_element(vsl, vul, cptrsl, -1);  // expected-error {{no matching function}}
142                                                    // expected-note@vecintrin.h:* 6 {{candidate function not viable}}
143                                                    // expected-note@vecintrin.h:* 1 {{must be a constant integer from 0 to 1}}
144   vsl = vec_gather_element(vsl, vul, cptrsl, 2);   // expected-error {{no matching function}}
145                                                    // expected-note@vecintrin.h:* 6 {{candidate function not viable}}
146                                                    // expected-note@vecintrin.h:* 1 {{must be a constant integer from 0 to 1}}
147   vul = vec_gather_element(vul, vul, cptrul, idx); // expected-error {{no matching function}}
148                                                    // expected-note@vecintrin.h:* 5 {{candidate function not viable}}
149                                                    // expected-note@vecintrin.h:* 2 {{must be a constant integer from 0 to 1}}
150   vul = vec_gather_element(vul, vul, cptrul, -1);  // expected-error {{no matching function}}
151                                                    // expected-note@vecintrin.h:* 5 {{candidate function not viable}}
152                                                    // expected-note@vecintrin.h:* 2 {{must be a constant integer from 0 to 1}}
153   vul = vec_gather_element(vul, vul, cptrul, 2);   // expected-error {{no matching function}}
154                                                    // expected-note@vecintrin.h:* 5 {{candidate function not viable}}
155                                                    // expected-note@vecintrin.h:* 2 {{must be a constant integer from 0 to 1}}
156   vbl = vec_gather_element(vbl, vul, cptrul, idx); // expected-error {{no matching function}}
157                                                    // expected-note@vecintrin.h:* 5 {{candidate function not viable}}
158                                                    // expected-note@vecintrin.h:* 2 {{must be a constant integer from 0 to 1}}
159   vbl = vec_gather_element(vbl, vul, cptrul, -1);  // expected-error {{no matching function}}
160                                                    // expected-note@vecintrin.h:* 5 {{candidate function not viable}}
161                                                    // expected-note@vecintrin.h:* 2 {{must be a constant integer from 0 to 1}}
162   vbl = vec_gather_element(vbl, vul, cptrul, 2);   // expected-error {{no matching function}}
163                                                    // expected-note@vecintrin.h:* 5 {{candidate function not viable}}
164                                                    // expected-note@vecintrin.h:* 2 {{must be a constant integer from 0 to 1}}
165   vd = vec_gather_element(vd, vul, cptrd, idx);    // expected-error {{no matching function}}
166                                                    // expected-note@vecintrin.h:* 6 {{candidate function not viable}}
167                                                    // expected-note@vecintrin.h:* 1 {{must be a constant integer from 0 to 1}}
168   vd = vec_gather_element(vd, vul, cptrd, -1);     // expected-error {{no matching function}}
169                                                    // expected-note@vecintrin.h:* 6 {{candidate function not viable}}
170                                                    // expected-note@vecintrin.h:* 1 {{must be a constant integer from 0 to 1}}
171   vd = vec_gather_element(vd, vul, cptrd, 2);      // 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 1}}
174 
175   vec_scatter_element(vsi, vui, ptrsi, idx); // expected-error {{no matching function}}
176                                              // expected-note@vecintrin.h:* 6 {{candidate function not viable}}
177                                              // expected-note@vecintrin.h:* 1 {{must be a constant integer from 0 to 3}}
178   vec_scatter_element(vsi, vui, ptrsi, -1);  // expected-error {{no matching function}}
179                                              // expected-note@vecintrin.h:* 6 {{candidate function not viable}}
180                                              // expected-note@vecintrin.h:* 1 {{must be a constant integer from 0 to 3}}
181   vec_scatter_element(vsi, vui, ptrsi, 4);   // expected-error {{no matching function}}
182                                              // expected-note@vecintrin.h:* 6 {{candidate function not viable}}
183                                              // expected-note@vecintrin.h:* 1 {{must be a constant integer from 0 to 3}}
184   vec_scatter_element(vui, vui, ptrui, idx); // expected-error {{no matching function}}
185                                              // expected-note@vecintrin.h:* 5 {{candidate function not viable}}
186                                              // expected-note@vecintrin.h:* 2 {{must be a constant integer from 0 to 3}}
187   vec_scatter_element(vui, vui, ptrui, -1);  // expected-error {{no matching function}}
188                                              // expected-note@vecintrin.h:* 5 {{candidate function not viable}}
189                                              // expected-note@vecintrin.h:* 2 {{must be a constant integer from 0 to 3}}
190   vec_scatter_element(vui, vui, ptrui, 4);   // expected-error {{no matching function}}
191                                              // expected-note@vecintrin.h:* 5 {{candidate function not viable}}
192                                              // expected-note@vecintrin.h:* 2 {{must be a constant integer from 0 to 3}}
193   vec_scatter_element(vbi, vui, ptrui, idx); // expected-error {{no matching function}}
194                                              // expected-note@vecintrin.h:* 5 {{candidate function not viable}}
195                                              // expected-note@vecintrin.h:* 2 {{must be a constant integer from 0 to 3}}
196   vec_scatter_element(vbi, vui, ptrui, -1);  // expected-error {{no matching function}}
197                                              // expected-note@vecintrin.h:* 5 {{candidate function not viable}}
198                                              // expected-note@vecintrin.h:* 2 {{must be a constant integer from 0 to 3}}
199   vec_scatter_element(vbi, vui, ptrui, 4);   // expected-error {{no matching function}}
200                                              // expected-note@vecintrin.h:* 5 {{candidate function not viable}}
201                                              // expected-note@vecintrin.h:* 2 {{must be a constant integer from 0 to 3}}
202   vec_scatter_element(vsl, vul, ptrsl, idx); // expected-error {{no matching function}}
203                                              // expected-note@vecintrin.h:* 6 {{candidate function not viable}}
204                                              // expected-note@vecintrin.h:* 1 {{must be a constant integer from 0 to 1}}
205   vec_scatter_element(vsl, vul, ptrsl, -1);  // expected-error {{no matching function}}
206                                              // expected-note@vecintrin.h:* 6 {{candidate function not viable}}
207                                              // expected-note@vecintrin.h:* 1 {{must be a constant integer from 0 to 1}}
208   vec_scatter_element(vsl, vul, ptrsl, 2);   // expected-error {{no matching function}}
209                                              // expected-note@vecintrin.h:* 6 {{candidate function not viable}}
210                                              // expected-note@vecintrin.h:* 1 {{must be a constant integer from 0 to 1}}
211   vec_scatter_element(vul, vul, ptrul, idx); // expected-error {{no matching function}}
212                                              // expected-note@vecintrin.h:* 5 {{candidate function not viable}}
213                                              // expected-note@vecintrin.h:* 2 {{must be a constant integer from 0 to 1}}
214   vec_scatter_element(vul, vul, ptrul, -1);  // expected-error {{no matching function}}
215                                              // expected-note@vecintrin.h:* 5 {{candidate function not viable}}
216                                              // expected-note@vecintrin.h:* 2 {{must be a constant integer from 0 to 1}}
217   vec_scatter_element(vul, vul, ptrul, 2);   // expected-error {{no matching function}}
218                                              // expected-note@vecintrin.h:* 5 {{candidate function not viable}}
219                                              // expected-note@vecintrin.h:* 2 {{must be a constant integer from 0 to 1}}
220   vec_scatter_element(vbl, vul, ptrul, idx); // expected-error {{no matching function}}
221                                              // expected-note@vecintrin.h:* 5 {{candidate function not viable}}
222                                              // expected-note@vecintrin.h:* 2 {{must be a constant integer from 0 to 1}}
223   vec_scatter_element(vbl, vul, ptrul, -1);  // expected-error {{no matching function}}
224                                              // expected-note@vecintrin.h:* 5 {{candidate function not viable}}
225                                              // expected-note@vecintrin.h:* 2 {{must be a constant integer from 0 to 1}}
226   vec_scatter_element(vbl, vul, ptrul, 2);   // expected-error {{no matching function}}
227                                              // expected-note@vecintrin.h:* 5 {{candidate function not viable}}
228                                              // expected-note@vecintrin.h:* 2 {{must be a constant integer from 0 to 1}}
229   vec_scatter_element(vd, vul, ptrd, idx);   // expected-error {{no matching function}}
230                                              // expected-note@vecintrin.h:* 6 {{candidate function not viable}}
231                                              // expected-note@vecintrin.h:* 1 {{must be a constant integer from 0 to 1}}
232   vec_scatter_element(vd, vul, ptrd, -1);    // expected-error {{no matching function}}
233                                              // expected-note@vecintrin.h:* 6 {{candidate function not viable}}
234                                              // expected-note@vecintrin.h:* 1 {{must be a constant integer from 0 to 1}}
235   vec_scatter_element(vd, vul, ptrd, 2);     // expected-error {{no matching function}}
236                                              // expected-note@vecintrin.h:* 6 {{candidate function not viable}}
237                                              // expected-note@vecintrin.h:* 1 {{must be a constant integer from 0 to 1}}
238 
239   vsc = vec_load_bndry(cptrsc, idx);  // expected-error {{no matching function}} expected-error {{argument to '__builtin_s390_vlbb' must be a constant integer}}
240                                       // expected-note@vecintrin.h:* 11 {{must be a constant power of 2 from 64 to 4096}}
241   vsc = vec_load_bndry(cptrsc, 200);  // expected-error {{no matching function}} expected-error {{argument value -1 is outside the valid range [0, 15]}}
242                                       // expected-note@vecintrin.h:* 11 {{must be a constant power of 2 from 64 to 4096}}
243   vsc = vec_load_bndry(cptrsc, 32);   // expected-error {{no matching function}} expected-error {{argument value -1 is outside the valid range [0, 15]}}
244                                       // expected-note@vecintrin.h:* 11 {{must be a constant power of 2 from 64 to 4096}}
245   vsc = vec_load_bndry(cptrsc, 8192); // expected-error {{no matching function}} expected-error {{argument value -1 is outside the valid range [0, 15]}}
246                                       // expected-note@vecintrin.h:* 11 {{must be a constant power of 2 from 64 to 4096}}
247   vuc = vec_load_bndry(cptruc, idx);  // expected-error {{no matching function}} expected-error {{argument to '__builtin_s390_vlbb' must be a constant integer}}
248                                       // expected-note@vecintrin.h:* 11 {{must be a constant power of 2 from 64 to 4096}}
249   vss = vec_load_bndry(cptrss, idx);  // expected-error {{no matching function}} expected-error {{argument to '__builtin_s390_vlbb' must be a constant integer}}
250                                       // expected-note@vecintrin.h:* 11 {{must be a constant power of 2 from 64 to 4096}}
251   vus = vec_load_bndry(cptrus, idx);  // expected-error {{no matching function}} expected-error {{argument to '__builtin_s390_vlbb' must be a constant integer}}
252                                       // expected-note@vecintrin.h:* 11 {{must be a constant power of 2 from 64 to 4096}}
253   vsi = vec_load_bndry(cptrsi, idx);  // expected-error {{no matching function}} expected-error {{argument to '__builtin_s390_vlbb' must be a constant integer}}
254                                       // expected-note@vecintrin.h:* 11 {{must be a constant power of 2 from 64 to 4096}}
255   vui = vec_load_bndry(cptrui, idx);  // expected-error {{no matching function}} expected-error {{argument to '__builtin_s390_vlbb' must be a constant integer}}
256                                       // expected-note@vecintrin.h:* 11 {{must be a constant power of 2 from 64 to 4096}}
257   vsl = vec_load_bndry(cptrsl, idx);  // expected-error {{no matching function}} expected-error {{argument to '__builtin_s390_vlbb' must be a constant integer}}
258                                       // expected-note@vecintrin.h:* 11 {{must be a constant power of 2 from 64 to 4096}}
259   vul = vec_load_bndry(cptrul, idx);  // expected-error {{no matching function}} expected-error {{argument to '__builtin_s390_vlbb' must be a constant integer}}
260                                       // expected-note@vecintrin.h:* 11 {{must be a constant power of 2 from 64 to 4096}}
261   vslll = vec_load_bndry(cptrslll, idx);  // expected-error {{no matching function}} expected-error {{argument to '__builtin_s390_vlbb' must be a constant integer}}
262                                       // expected-note@vecintrin.h:* 11 {{must be a constant power of 2 from 64 to 4096}}
263   vulll = vec_load_bndry(cptrulll, idx);  // expected-error {{no matching function}} expected-error {{argument to '__builtin_s390_vlbb' must be a constant integer}}
264                                       // expected-note@vecintrin.h:* 11 {{must be a constant power of 2 from 64 to 4096}}
265 
266   vuc = vec_genmask(idx);  // expected-error {{no matching function}}
267                            // expected-note@vecintrin.h:* {{must be a constant integer}}
268 
269   vuc = vec_genmasks_8(0, idx);    // expected-error {{no matching function}}
270                                    // expected-note@vecintrin.h:* {{must be a constant integer}}
271   vuc = vec_genmasks_8(idx, 0);    // expected-error {{no matching function}}
272                                    // expected-note@vecintrin.h:* {{must be a constant integer}}
273   vuc = vec_genmasks_8(idx, idx);  // expected-error {{no matching function}}
274                                    // expected-note@vecintrin.h:* {{must be a constant integer}}
275   vus = vec_genmasks_16(0, idx);   // expected-error {{no matching function}}
276                                    // expected-note@vecintrin.h:* {{must be a constant integer}}
277   vus = vec_genmasks_16(idx, 0);   // expected-error {{no matching function}}
278                                    // expected-note@vecintrin.h:* {{must be a constant integer}}
279   vus = vec_genmasks_16(idx, idx); // expected-error {{no matching function}}
280                                    // expected-note@vecintrin.h:* {{must be a constant integer}}
281   vui = vec_genmasks_32(0, idx);   // expected-error {{no matching function}}
282                                    // expected-note@vecintrin.h:* {{must be a constant integer}}
283   vui = vec_genmasks_32(idx, 0);   // expected-error {{no matching function}}
284                                    // expected-note@vecintrin.h:* {{must be a constant integer}}
285   vui = vec_genmasks_32(idx, idx); // expected-error {{no matching function}}
286                                    // expected-note@vecintrin.h:* {{must be a constant integer}}
287   vul = vec_genmasks_64(0, idx);   // expected-error {{no matching function}}
288                                    // expected-note@vecintrin.h:* {{must be a constant integer}}
289   vul = vec_genmasks_64(idx, 0);   // expected-error {{no matching function}}
290                                    // expected-note@vecintrin.h:* {{must be a constant integer}}
291   vul = vec_genmasks_64(idx, idx); // expected-error {{no matching function}}
292                                    // expected-note@vecintrin.h:* {{must be a constant integer}}
293 
294   vsc = vec_splat(vsc, idx); // expected-error {{no matching function}}
295                              // expected-note@vecintrin.h:* 12 {{candidate function not viable}}
296                              // expected-note@vecintrin.h:* 1 {{must be a constant integer from 0 to 15}}
297   vsc = vec_splat(vsc, -1);  // 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, 16);  // 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   vuc = vec_splat(vuc, idx); // expected-error {{no matching function}}
304                              // expected-note@vecintrin.h:* 11 {{candidate function not viable}}
305                              // expected-note@vecintrin.h:* 2 {{must be a constant integer from 0 to 15}}
306   vuc = vec_splat(vuc, -1);  // 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, 16);  // 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   vbc = vec_splat(vbc, idx); // 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, -1);  // 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, 16);  // 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   vss = vec_splat(vss, idx); // expected-error {{no matching function}}
322                              // expected-note@vecintrin.h:* 12 {{candidate function not viable}}
323                              // expected-note@vecintrin.h:* 1 {{must be a constant integer from 0 to 7}}
324   vss = vec_splat(vss, -1);  // 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, 8);   // 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   vus = vec_splat(vus, idx); // expected-error {{no matching function}}
331                              // expected-note@vecintrin.h:* 11 {{candidate function not viable}}
332                              // expected-note@vecintrin.h:* 2 {{must be a constant integer from 0 to 7}}
333   vus = vec_splat(vus, -1);  // 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, 8);   // 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   vbs = vec_splat(vbs, idx); // 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, -1);  // 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, 8);   // 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   vsi = vec_splat(vsi, idx); // expected-error {{no matching function}}
349                              // expected-note@vecintrin.h:* 12 {{candidate function not viable}}
350                              // expected-note@vecintrin.h:* 1 {{must be a constant integer from 0 to 3}}
351   vsi = vec_splat(vsi, -1);  // 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, 4);   // 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   vui = vec_splat(vui, idx); // expected-error {{no matching function}}
358                              // expected-note@vecintrin.h:* 11 {{candidate function not viable}}
359                              // expected-note@vecintrin.h:* 2 {{must be a constant integer from 0 to 3}}
360   vui = vec_splat(vui, -1);  // 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, 4);   // 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   vbi = vec_splat(vbi, idx); // 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, -1);  // 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, 4);   // 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   vsl = vec_splat(vsl, idx); // expected-error {{no matching function}}
376                              // expected-note@vecintrin.h:* 12 {{candidate function not viable}}
377                              // expected-note@vecintrin.h:* 1 {{must be a constant integer from 0 to 1}}
378   vsl = vec_splat(vsl, -1);  // 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, 2);   // 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   vul = vec_splat(vul, idx); // expected-error {{no matching function}}
385                              // expected-note@vecintrin.h:* 11 {{candidate function not viable}}
386                              // expected-note@vecintrin.h:* 2 {{must be a constant integer from 0 to 1}}
387   vul = vec_splat(vul, -1);  // 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, 2);   // 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   vbl = vec_splat(vbl, idx); // 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, -1);  // 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, 2);   // 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   vd = vec_splat(vd, idx);   // expected-error {{no matching function}}
403                              // expected-note@vecintrin.h:* 12 {{candidate function not viable}}
404                              // expected-note@vecintrin.h:* 1 {{must be a constant integer from 0 to 1}}
405   vd = vec_splat(vd, -1);    // 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, 2);     // 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 
412   vsc = vec_splat_s8(idx);  // expected-error {{no matching function}}
413                             // expected-note@vecintrin.h:* {{must be a constant integer}}
414   vuc = vec_splat_u8(idx);  // expected-error {{no matching function}}
415                             // expected-note@vecintrin.h:* {{must be a constant integer}}
416   vss = vec_splat_s16(idx); // expected-error {{no matching function}}
417                             // expected-note@vecintrin.h:* {{must be a constant integer}}
418   vus = vec_splat_u16(idx); // expected-error {{no matching function}}
419                             // expected-note@vecintrin.h:* {{must be a constant integer}}
420   vsi = vec_splat_s32(idx); // expected-error {{no matching function}}
421                             // expected-note@vecintrin.h:* {{must be a constant integer}}
422   vui = vec_splat_u32(idx); // expected-error {{no matching function}}
423                             // expected-note@vecintrin.h:* {{must be a constant integer}}
424   vsl = vec_splat_s64(idx); // expected-error {{no matching function}}
425                             // expected-note@vecintrin.h:* {{must be a constant integer}}
426   vul = vec_splat_u64(idx); // expected-error {{no matching function}}
427                             // expected-note@vecintrin.h:* {{must be a constant integer}}
428 }
429 
430 void test_integer(void) {
431   vsc = vec_rl_mask(vsc, vuc, idx); // expected-error {{no matching function}} \
432                                     // expected-error {{argument to '__builtin_s390_verimb' must be a constant integer}} \
433                                     // expected-error {{argument to '__builtin_s390_verimh' must be a constant integer}} \
434                                     // expected-error {{argument to '__builtin_s390_verimf' must be a constant integer}} \
435                                     // expected-error {{argument to '__builtin_s390_verimg' must be a constant integer}}
436                                     // expected-note@vecintrin.h:* 7 {{candidate function not viable}}
437                                     // expected-note@vecintrin.h:* 1 {{must be a constant integer}}
438   vuc = vec_rl_mask(vuc, vuc, idx); // expected-error {{no matching function}} \
439                                     // expected-error {{argument to '__builtin_s390_verimb' must be a constant integer}} \
440                                     // expected-error {{argument to '__builtin_s390_verimh' must be a constant integer}} \
441                                     // expected-error {{argument to '__builtin_s390_verimf' must be a constant integer}} \
442                                     // expected-error {{argument to '__builtin_s390_verimg' must be a constant integer}}
443                                     // expected-note@vecintrin.h:* 7 {{candidate function not viable}}
444                                     // expected-note@vecintrin.h:* 1 {{must be a constant integer}}
445   vss = vec_rl_mask(vss, vus, idx); // expected-error {{no matching function}} \
446                                     // expected-error {{argument to '__builtin_s390_verimb' must be a constant integer}} \
447                                     // expected-error {{argument to '__builtin_s390_verimh' must be a constant integer}} \
448                                     // expected-error {{argument to '__builtin_s390_verimf' must be a constant integer}} \
449                                     // expected-error {{argument to '__builtin_s390_verimg' must be a constant integer}}
450                                     // expected-note@vecintrin.h:* 7 {{candidate function not viable}}
451                                     // expected-note@vecintrin.h:* 1 {{must be a constant integer}}
452   vus = vec_rl_mask(vus, vus, idx); // expected-error {{no matching function}} \
453                                     // expected-error {{argument to '__builtin_s390_verimb' must be a constant integer}} \
454                                     // expected-error {{argument to '__builtin_s390_verimh' must be a constant integer}} \
455                                     // expected-error {{argument to '__builtin_s390_verimf' must be a constant integer}} \
456                                     // expected-error {{argument to '__builtin_s390_verimg' must be a constant integer}}
457                                     // expected-note@vecintrin.h:* 7 {{candidate function not viable}}
458                                     // expected-note@vecintrin.h:* 1 {{must be a constant integer}}
459   vsi = vec_rl_mask(vsi, vui, idx); // expected-error {{no matching function}} \
460                                     // expected-error {{argument to '__builtin_s390_verimb' must be a constant integer}} \
461                                     // expected-error {{argument to '__builtin_s390_verimh' must be a constant integer}} \
462                                     // expected-error {{argument to '__builtin_s390_verimf' must be a constant integer}} \
463                                     // expected-error {{argument to '__builtin_s390_verimg' must be a constant integer}}
464                                     // expected-note@vecintrin.h:* 7 {{candidate function not viable}}
465                                     // expected-note@vecintrin.h:* 1 {{must be a constant integer}}
466   vui = vec_rl_mask(vui, vui, idx); // expected-error {{no matching function}} \
467                                     // expected-error {{argument to '__builtin_s390_verimb' must be a constant integer}} \
468                                     // expected-error {{argument to '__builtin_s390_verimh' must be a constant integer}} \
469                                     // expected-error {{argument to '__builtin_s390_verimf' must be a constant integer}} \
470                                     // expected-error {{argument to '__builtin_s390_verimg' must be a constant integer}}
471                                     // expected-note@vecintrin.h:* 7 {{candidate function not viable}}
472                                     // expected-note@vecintrin.h:* 1 {{must be a constant integer}}
473   vsl = vec_rl_mask(vsl, vul, idx); // expected-error {{no matching function}} \
474                                     // expected-error {{argument to '__builtin_s390_verimb' must be a constant integer}} \
475                                     // expected-error {{argument to '__builtin_s390_verimh' must be a constant integer}} \
476                                     // expected-error {{argument to '__builtin_s390_verimf' must be a constant integer}} \
477                                     // expected-error {{argument to '__builtin_s390_verimg' must be a constant integer}}
478                                     // expected-note@vecintrin.h:* 7 {{candidate function not viable}}
479                                     // expected-note@vecintrin.h:* 1 {{must be a constant integer}}
480   vul = vec_rl_mask(vul, vul, idx); // expected-error {{no matching function}} \
481                                     // expected-error {{argument to '__builtin_s390_verimb' must be a constant integer}} \
482                                     // expected-error {{argument to '__builtin_s390_verimh' must be a constant integer}} \
483                                     // expected-error {{argument to '__builtin_s390_verimf' must be a constant integer}} \
484                                     // expected-error {{argument to '__builtin_s390_verimg' must be a constant integer}}
485                                     // expected-note@vecintrin.h:* 7 {{candidate function not viable}}
486                                     // expected-note@vecintrin.h:* 1 {{must be a constant integer}}
487 
488   vsc = vec_sld(vsc, vsc, idx); // expected-error {{no matching function}} expected-error {{argument to '__builtin_s390_vsldb' must be a constant integer}}
489                                 // expected-note@vecintrin.h:* 14 {{candidate function not viable}}
490                                 // expected-note@vecintrin.h:* 1 {{must be a constant integer from 0 to 15}}
491   vsc = vec_sld(vsc, vsc, -1);  // expected-error {{no matching function}} expected-error {{argument value -1 is outside the valid range [0, 15]}}
492                                 // expected-note@vecintrin.h:* 14 {{candidate function not viable}}
493                                 // expected-note@vecintrin.h:* 1 {{must be a constant integer from 0 to 15}}
494   vsc = vec_sld(vsc, vsc, 16);  // expected-error {{no matching function}} expected-error {{argument value 16 is outside the valid range [0, 15]}}
495                                 // expected-note@vecintrin.h:* 14 {{candidate function not viable}}
496                                 // expected-note@vecintrin.h:* 1 {{must be a constant integer from 0 to 15}}
497   vuc = vec_sld(vuc, vuc, idx); // expected-error {{no matching function}} expected-error {{argument to '__builtin_s390_vsldb' must be a constant integer}}
498                                 // expected-note@vecintrin.h:* 13 {{candidate function not viable}}
499                                 // expected-note@vecintrin.h:* 2 {{must be a constant integer from 0 to 15}}
500   vuc = vec_sld(vuc, vuc, -1);  // expected-error {{no matching function}} expected-error {{argument value -1 is outside the valid range [0, 15]}}
501                                 // expected-note@vecintrin.h:* 13 {{candidate function not viable}}
502                                 // expected-note@vecintrin.h:* 2 {{must be a constant integer from 0 to 15}}
503   vuc = vec_sld(vuc, vuc, 16);  // expected-error {{no matching function}} expected-error {{argument value 16 is outside the valid range [0, 15]}}
504                                 // expected-note@vecintrin.h:* 13 {{candidate function not viable}}
505                                 // expected-note@vecintrin.h:* 2 {{must be a constant integer from 0 to 15}}
506   vss = vec_sld(vss, vss, idx); // expected-error {{no matching function}} expected-error {{argument to '__builtin_s390_vsldb' must be a constant integer}}
507                                 // expected-note@vecintrin.h:* 14 {{candidate function not viable}}
508                                 // expected-note@vecintrin.h:* 1 {{must be a constant integer from 0 to 15}}
509   vus = vec_sld(vus, vus, idx); // expected-error {{no matching function}} expected-error {{argument to '__builtin_s390_vsldb' must be a constant integer}}
510                                 // expected-note@vecintrin.h:* 13 {{candidate function not viable}}
511                                 // expected-note@vecintrin.h:* 2 {{must be a constant integer from 0 to 15}}
512   vsi = vec_sld(vsi, vsi, idx); // expected-error {{no matching function}} expected-error {{argument to '__builtin_s390_vsldb' must be a constant integer}}
513                                 // expected-note@vecintrin.h:* 14 {{candidate function not viable}}
514                                 // expected-note@vecintrin.h:* 1 {{must be a constant integer from 0 to 15}}
515   vui = vec_sld(vui, vui, idx); // expected-error {{no matching function}} expected-error {{argument to '__builtin_s390_vsldb' must be a constant integer}}
516                                 // expected-note@vecintrin.h:* 13 {{candidate function not viable}}
517                                 // expected-note@vecintrin.h:* 2 {{must be a constant integer from 0 to 15}}
518   vsl = vec_sld(vsl, vsl, idx); // expected-error {{no matching function}} expected-error {{argument to '__builtin_s390_vsldb' must be a constant integer}}
519                                 // expected-note@vecintrin.h:* 14 {{candidate function not viable}}
520                                 // expected-note@vecintrin.h:* 1 {{must be a constant integer from 0 to 15}}
521   vul = vec_sld(vul, vul, idx); // expected-error {{no matching function}} expected-error {{argument to '__builtin_s390_vsldb' must be a constant integer}}
522                                 // expected-note@vecintrin.h:* 13 {{candidate function not viable}}
523                                 // expected-note@vecintrin.h:* 2 {{must be a constant integer from 0 to 15}}
524   vslll = vec_sld(vslll, vslll, idx); // expected-error {{no matching function}} expected-error {{argument to '__builtin_s390_vsldb' must be a constant integer}}
525                                 // expected-note@vecintrin.h:* 14 {{candidate function not viable}}
526                                 // expected-note@vecintrin.h:* 1 {{must be a constant integer from 0 to 15}}
527   vulll = vec_sld(vulll, vulll, idx); // expected-error {{no matching function}} expected-error {{argument to '__builtin_s390_vsldb' must be a constant integer}}
528                                 // expected-note@vecintrin.h:* 14 {{candidate function not viable}}
529                                 // expected-note@vecintrin.h:* 1 {{must be a constant integer from 0 to 15}}
530   vd = vec_sld(vd, vd, idx);    // expected-error {{no matching function}} expected-error {{argument to '__builtin_s390_vsldb' must be a constant integer}}
531                                 // expected-note@vecintrin.h:* 14 {{candidate function not viable}}
532                                 // expected-note@vecintrin.h:* 1 {{must be a constant integer from 0 to 15}}
533 
534   vsc = vec_sldw(vsc, vsc, idx); // expected-error {{no matching function}} expected-error {{argument to '__builtin_s390_vsldb' must be a constant integer}}
535                                  // expected-note@vecintrin.h:* 10 {{candidate function not viable}}
536                                  // expected-note@vecintrin.h:* 1 {{must be a constant integer from 0 to 3}}
537   vsc = vec_sldw(vsc, vsc, -1);  // expected-error {{no matching function}} expected-error {{argument value -4 is outside the valid range [0, 15]}}
538                                  // expected-note@vecintrin.h:* 10 {{candidate function not viable}}
539                                  // expected-note@vecintrin.h:* 1 {{must be a constant integer from 0 to 3}}
540   vsc = vec_sldw(vsc, vsc, 4);   // expected-error {{no matching function}} expected-error {{argument value 16 is outside the valid range [0, 15]}}
541                                  // expected-note@vecintrin.h:* 10 {{candidate function not viable}}
542                                  // expected-note@vecintrin.h:* 1 {{must be a constant integer from 0 to 3}}
543   vuc = vec_sldw(vuc, vuc, idx); // expected-error {{no matching function}} expected-error {{argument to '__builtin_s390_vsldb' must be a constant integer}}
544                                  // expected-note@vecintrin.h:* 10 {{candidate function not viable}}
545                                  // expected-note@vecintrin.h:* 1 {{must be a constant integer from 0 to 3}}
546   vuc = vec_sldw(vuc, vuc, -1);  // expected-error {{no matching function}} expected-error {{argument value -4 is outside the valid range [0, 15]}}
547                                  // expected-note@vecintrin.h:* 10 {{candidate function not viable}}
548                                  // expected-note@vecintrin.h:* 1 {{must be a constant integer from 0 to 3}}
549   vuc = vec_sldw(vuc, vuc, 4);   // expected-error {{no matching function}} expected-error {{argument value 16 is outside the valid range [0, 15]}}
550                                  // expected-note@vecintrin.h:* 10 {{candidate function not viable}}
551                                  // expected-note@vecintrin.h:* 1 {{must be a constant integer from 0 to 3}}
552   vss = vec_sldw(vss, vss, idx); // expected-error {{no matching function}} expected-error {{argument to '__builtin_s390_vsldb' must be a constant integer}}
553                                  // expected-note@vecintrin.h:* 10 {{candidate function not viable}}
554                                  // expected-note@vecintrin.h:* 1 {{must be a constant integer from 0 to 3}}
555   vus = vec_sldw(vus, vus, idx); // expected-error {{no matching function}} expected-error {{argument to '__builtin_s390_vsldb' must be a constant integer}}
556                                  // expected-note@vecintrin.h:* 10 {{candidate function not viable}}
557                                  // expected-note@vecintrin.h:* 1 {{must be a constant integer from 0 to 3}}
558   vsi = vec_sldw(vsi, vsi, idx); // expected-error {{no matching function}} expected-error {{argument to '__builtin_s390_vsldb' must be a constant integer}}
559                                  // expected-note@vecintrin.h:* 10 {{candidate function not viable}}
560                                  // expected-note@vecintrin.h:* 1 {{must be a constant integer from 0 to 3}}
561   vui = vec_sldw(vui, vui, idx); // expected-error {{no matching function}} expected-error {{argument to '__builtin_s390_vsldb' must be a constant integer}}
562                                  // expected-note@vecintrin.h:* 10 {{candidate function not viable}}
563                                  // expected-note@vecintrin.h:* 1 {{must be a constant integer from 0 to 3}}
564   vsl = vec_sldw(vsl, vsl, idx); // expected-error {{no matching function}} expected-error {{argument to '__builtin_s390_vsldb' must be a constant integer}}
565                                  // expected-note@vecintrin.h:* 10 {{candidate function not viable}}
566                                  // expected-note@vecintrin.h:* 1 {{must be a constant integer from 0 to 3}}
567   vul = vec_sldw(vul, vul, idx); // expected-error {{no matching function}} expected-error {{argument to '__builtin_s390_vsldb' must be a constant integer}}
568                                  // expected-note@vecintrin.h:* 10 {{candidate function not viable}}
569                                  // expected-note@vecintrin.h:* 1 {{must be a constant integer from 0 to 3}}
570   vslll = vec_sldw(vslll, vslll, idx); // expected-error {{no matching function}} expected-error {{argument to '__builtin_s390_vsldb' must be a constant integer}}
571                                  // expected-note@vecintrin.h:* 10 {{candidate function not viable}}
572                                  // expected-note@vecintrin.h:* 1 {{must be a constant integer from 0 to 3}}
573   vulll = vec_sldw(vulll, vulll, idx); // expected-error {{no matching function}} expected-error {{argument to '__builtin_s390_vsldb' must be a constant integer}}
574                                  // expected-note@vecintrin.h:* 10 {{candidate function not viable}}
575                                  // expected-note@vecintrin.h:* 1 {{must be a constant integer from 0 to 3}}
576   vd = vec_sldw(vd, vd, idx);    // expected-error {{no matching function}} expected-error {{argument to '__builtin_s390_vsldb' must be a constant integer}}
577                                  // expected-note@vecintrin.h:* 10 {{candidate function not viable}}
578                                  // expected-note@vecintrin.h:* 1 {{must be a constant integer from 0 to 3}}
579 }
580 
581 void test_float(void) {
582   vd = vec_ctd(vsl, idx); // expected-error {{no matching function}}
583                           // expected-note@vecintrin.h:* 1 {{candidate function not viable}}
584                           // expected-note@vecintrin.h:* 1 {{must be a constant integer from 0 to 31}}
585   vd = vec_ctd(vsl, -1);  // expected-error {{no matching function}}
586                           // expected-note@vecintrin.h:* 1 {{candidate function not viable}}
587                           // expected-note@vecintrin.h:* 1 {{must be a constant integer from 0 to 31}}
588   vd = vec_ctd(vsl, 32);  // expected-error {{no matching function}}
589                           // expected-note@vecintrin.h:* 1 {{candidate function not viable}}
590                           // expected-note@vecintrin.h:* 1 {{must be a constant integer from 0 to 31}}
591   vd = vec_ctd(vul, idx); // expected-error {{no matching function}}
592                           // expected-note@vecintrin.h:* 1 {{candidate function not viable}}
593                           // expected-note@vecintrin.h:* 1 {{must be a constant integer from 0 to 31}}
594   vd = vec_ctd(vul, -1);  // expected-error {{no matching function}}
595                           // expected-note@vecintrin.h:* 1 {{candidate function not viable}}
596                           // expected-note@vecintrin.h:* 1 {{must be a constant integer from 0 to 31}}
597   vd = vec_ctd(vul, 32);  // expected-error {{no matching function}}
598                           // expected-note@vecintrin.h:* 1 {{candidate function not viable}}
599                           // expected-note@vecintrin.h:* 1 {{must be a constant integer from 0 to 31}}
600 
601   vsl = vec_ctsl(vd, idx); // expected-error {{no matching function}}
602                            // expected-note@vecintrin.h:* 1 {{must be a constant integer from 0 to 31}}
603   vsl = vec_ctsl(vd, -1);  // expected-error {{no matching function}}
604                            // expected-note@vecintrin.h:* 1 {{must be a constant integer from 0 to 31}}
605   vsl = vec_ctsl(vd, 32);  // expected-error {{no matching function}}
606                            // expected-note@vecintrin.h:* 1 {{must be a constant integer from 0 to 31}}
607   vul = vec_ctul(vd, idx); // expected-error {{no matching function}}
608                            // expected-note@vecintrin.h:* 1 {{must be a constant integer from 0 to 31}}
609   vul = vec_ctul(vd, -1);  // expected-error {{no matching function}}
610                            // expected-note@vecintrin.h:* 1 {{must be a constant integer from 0 to 31}}
611   vul = vec_ctul(vd, 32);  // expected-error {{no matching function}}
612                            // expected-note@vecintrin.h:* 1 {{must be a constant integer from 0 to 31}}
613 
614   vbl = vec_fp_test_data_class(vd, idx, &cc);  // expected-error {{must be a constant integer}}
615   vbl = vec_fp_test_data_class(vd, -1, &cc);   // expected-error-re {{argument value {{.*}} is outside the valid range}}
616   vbl = vec_fp_test_data_class(vd, 4096, &cc); // expected-error-re {{argument value {{.*}} is outside the valid range}}
617 }
618