Run DCE after a LoopFlatten test to reduce spurious output [nfc]
[llvm-project.git] / clang / test / Sema / aarch64-sve-intrinsics / acle_sve_imm.cpp
blob06140d94690aa2dfb715ac9baf88867d31aea003
1 // REQUIRES: aarch64-registered-target
3 // RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fsyntax-only -verify -verify-ignore-unexpected=error %s
4 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fsyntax-only -verify -verify-ignore-unexpected=error %s
6 #ifdef SVE_OVERLOADED_FORMS
7 // A simple used,unused... macro, long enough to represent any SVE builtin.
8 #define SVE_ACLE_FUNC(A1,A2_UNUSED,A3,A4_UNUSED) A1##A3
9 #else
10 #define SVE_ACLE_FUNC(A1,A2,A3,A4) A1##A2##A3##A4
11 #endif
13 #include <arm_sve.h>
15 void test_range_0_255()
17 // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [0, 255]}}
18 SVE_ACLE_FUNC(svext,_s8,,)(svundef_s8(), svundef_s8(), -1);
19 // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [0, 255]}}
20 SVE_ACLE_FUNC(svext,_u8,,)(svundef_u8(), svundef_u8(), -1);
23 void test_range_0_127()
25 // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [0, 127]}}
26 SVE_ACLE_FUNC(svext,_s16,,)(svundef_s16(), svundef_s16(), -1);
27 // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [0, 127]}}
28 SVE_ACLE_FUNC(svext,_u16,,)(svundef_u16(), svundef_u16(), 128);
29 // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [0, 127]}}
30 SVE_ACLE_FUNC(svext,_f16,,)(svundef_f16(), svundef_f16(), -1);
33 void test_range_0_63()
35 // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [0, 63]}}
36 SVE_ACLE_FUNC(svext,_s32,,)(svundef_s32(), svundef_s32(), -1);
37 // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [0, 63]}}
38 SVE_ACLE_FUNC(svext,_u32,,)(svundef_u32(), svundef_u32(), -1);
39 // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [0, 63]}}
40 SVE_ACLE_FUNC(svext,_f32,,)(svundef_f32(), svundef_f32(), 64);
43 void test_range_0_31()
45 // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [0, 31]}}
46 SVE_ACLE_FUNC(svext,_s64,,)(svundef_s64(), svundef_s64(), -1);
47 // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [0, 31]}}
48 SVE_ACLE_FUNC(svext,_u64,,)(svundef_u64(), svundef_u64(), 32);
49 // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [0, 31]}}
50 SVE_ACLE_FUNC(svext,_f64,,)(svundef_f64(), svundef_f64(), -1);
53 void test_range_0_1()
55 // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [0, 1]}}
56 SVE_ACLE_FUNC(svget2,_s8,,)(svundef2_s8(), -1);
57 // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [0, 1]}}
58 SVE_ACLE_FUNC(svget2,_s16,,)(svundef2_s16(), 2);
59 // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [0, 1]}}
60 SVE_ACLE_FUNC(svget2,_s32,,)(svundef2_s32(), -1);
61 // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [0, 1]}}
62 SVE_ACLE_FUNC(svget2,_s64,,)(svundef2_s64(), 2);
63 // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [0, 1]}}
64 SVE_ACLE_FUNC(svget2,_u8,,)(svundef2_u8(), -1);
65 // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [0, 1]}}
66 SVE_ACLE_FUNC(svget2,_u16,,)(svundef2_u16(), 2);
67 // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [0, 1]}}
68 SVE_ACLE_FUNC(svget2,_u32,,)(svundef2_u32(), -1);
69 // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [0, 1]}}
70 SVE_ACLE_FUNC(svget2,_u64,,)(svundef2_u64(), 2);
71 // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [0, 1]}}
72 SVE_ACLE_FUNC(svget2,_f16,,)(svundef2_f16(), -1);
73 // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [0, 1]}}
74 SVE_ACLE_FUNC(svget2,_f32,,)(svundef2_f32(), 2);
75 // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [0, 1]}}
76 SVE_ACLE_FUNC(svget2,_f64,,)(svundef2_f64(), -1);
77 // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [0, 1]}}
78 SVE_ACLE_FUNC(svset2,_s8,,)(svundef2_s8(), 2, svundef_s8());
79 // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [0, 1]}}
80 SVE_ACLE_FUNC(svset2,_s16,,)(svundef2_s16(), -1, svundef_s16());
81 // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [0, 1]}}
82 SVE_ACLE_FUNC(svset2,_s32,,)(svundef2_s32(), 2, svundef_s32());
83 // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [0, 1]}}
84 SVE_ACLE_FUNC(svset2,_s64,,)(svundef2_s64(), -1, svundef_s64());
85 // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [0, 1]}}
86 SVE_ACLE_FUNC(svset2,_u8,,)(svundef2_u8(), 2, svundef_u8());
87 // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [0, 1]}}
88 SVE_ACLE_FUNC(svset2,_u16,,)(svundef2_u16(), -1, svundef_u16());
89 // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [0, 1]}}
90 SVE_ACLE_FUNC(svset2,_u32,,)(svundef2_u32(), 2, svundef_u32());
91 // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [0, 1]}}
92 SVE_ACLE_FUNC(svset2,_u64,,)(svundef2_u64(), -1, svundef_u64());
93 // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [0, 1]}}
94 SVE_ACLE_FUNC(svset2,_f16,,)(svundef2_f16(), 2, svundef_f16());
95 // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [0, 1]}}
96 SVE_ACLE_FUNC(svset2,_f32,,)(svundef2_f32(), -1, svundef_f32());
97 // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [0, 1]}}
98 SVE_ACLE_FUNC(svset2,_f64,,)(svundef2_f64(), 2, svundef_f64());
101 void test_range_0_2()
103 // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [0, 2]}}
104 SVE_ACLE_FUNC(svget3,_s8,,)(svundef3_s8(), 3);
105 // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [0, 2]}}
106 SVE_ACLE_FUNC(svget3,_s16,,)(svundef3_s16(), -1);
107 // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [0, 2]}}
108 SVE_ACLE_FUNC(svget3,_s32,,)(svundef3_s32(), 3);
109 // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [0, 2]}}
110 SVE_ACLE_FUNC(svget3,_s64,,)(svundef3_s64(), -1);
111 // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [0, 2]}}
112 SVE_ACLE_FUNC(svget3,_u8,,)(svundef3_u8(), 3);
113 // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [0, 2]}}
114 SVE_ACLE_FUNC(svget3,_u16,,)(svundef3_u16(), -1);
115 // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [0, 2]}}
116 SVE_ACLE_FUNC(svget3,_u32,,)(svundef3_u32(), 3);
117 // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [0, 2]}}
118 SVE_ACLE_FUNC(svget3,_u64,,)(svundef3_u64(), -1);
119 // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [0, 2]}}
120 SVE_ACLE_FUNC(svget3,_f16,,)(svundef3_f16(), 3);
121 // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [0, 2]}}
122 SVE_ACLE_FUNC(svget3,_f32,,)(svundef3_f32(), -1);
123 // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [0, 2]}}
124 SVE_ACLE_FUNC(svget3,_f64,,)(svundef3_f64(), 3);
125 // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [0, 2]}}
126 SVE_ACLE_FUNC(svset3,_s8,,)(svundef3_s8(), -1, svundef_s8());
127 // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [0, 2]}}
128 SVE_ACLE_FUNC(svset3,_s16,,)(svundef3_s16(), -1, svundef_s16());
129 // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [0, 2]}}
130 SVE_ACLE_FUNC(svset3,_s32,,)(svundef3_s32(), 3, svundef_s32());
131 // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [0, 2]}}
132 SVE_ACLE_FUNC(svset3,_s64,,)(svundef3_s64(), -1, svundef_s64());
133 // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [0, 2]}}
134 SVE_ACLE_FUNC(svset3,_u8,,)(svundef3_u8(), 3, svundef_u8());
135 // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [0, 2]}}
136 SVE_ACLE_FUNC(svset3,_u16,,)(svundef3_u16(), -1, svundef_u16());
137 // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [0, 2]}}
138 SVE_ACLE_FUNC(svset3,_u32,,)(svundef3_u32(), 3, svundef_u32());
139 // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [0, 2]}}
140 SVE_ACLE_FUNC(svset3,_u64,,)(svundef3_u64(), -1, svundef_u64());
141 // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [0, 2]}}
142 SVE_ACLE_FUNC(svset3,_f16,,)(svundef3_f16(), 3, svundef_f16());
143 // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [0, 2]}}
144 SVE_ACLE_FUNC(svset3,_f32,,)(svundef3_f32(), -1, svundef_f32());
145 // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [0, 2]}}
146 SVE_ACLE_FUNC(svset3,_f64,,)(svundef3_f64(), 3, svundef_f64());
149 void test_range_0_3()
151 // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [0, 3]}}
152 SVE_ACLE_FUNC(svget4,_s8,,)(svundef4_s8(), -1);
153 // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [0, 3]}}
154 SVE_ACLE_FUNC(svget4,_s16,,)(svundef4_s16(), 4);
155 // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [0, 3]}}
156 SVE_ACLE_FUNC(svget4,_s32,,)(svundef4_s32(), -1);
157 // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [0, 3]}}
158 SVE_ACLE_FUNC(svget4,_s64,,)(svundef4_s64(), 4);
159 // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [0, 3]}}
160 SVE_ACLE_FUNC(svget4,_u8,,)(svundef4_u8(), -1);
161 // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [0, 3]}}
162 SVE_ACLE_FUNC(svget4,_u16,,)(svundef4_u16(), 4);
163 // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [0, 3]}}
164 SVE_ACLE_FUNC(svget4,_u32,,)(svundef4_u32(), -1);
165 // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [0, 3]}}
166 SVE_ACLE_FUNC(svget4,_u64,,)(svundef4_u64(), 4);
167 // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [0, 3]}}
168 SVE_ACLE_FUNC(svget4,_f16,,)(svundef4_f16(), -1);
169 // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [0, 3]}}
170 SVE_ACLE_FUNC(svget4,_f32,,)(svundef4_f32(), 4);
171 // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [0, 3]}}
172 SVE_ACLE_FUNC(svget4,_f64,,)(svundef4_f64(), -1);
173 // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [0, 3]}}
174 SVE_ACLE_FUNC(svset4,_s8,,)(svundef4_s8(), -1, svundef_s8());
175 // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [0, 3]}}
176 SVE_ACLE_FUNC(svset4,_s32,,)(svundef4_s32(), 4, svundef_s32());
177 // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [0, 3]}}
178 SVE_ACLE_FUNC(svset4,_s64,,)(svundef4_s64(), -1, svundef_s64());
179 // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [0, 3]}}
180 SVE_ACLE_FUNC(svset4,_u8,,)(svundef4_u8(), 4, svundef_u8());
181 // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [0, 3]}}
182 SVE_ACLE_FUNC(svset4,_u16,,)(svundef4_u16(), -1, svundef_u16());
183 // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [0, 3]}}
184 SVE_ACLE_FUNC(svset4,_u32,,)(svundef4_u32(), 4, svundef_u32());
185 // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [0, 3]}}
186 SVE_ACLE_FUNC(svset4,_u64,,)(svundef4_u64(), -1, svundef_u64());
187 // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [0, 3]}}
188 SVE_ACLE_FUNC(svset4,_f16,,)(svundef4_f16(), 4, svundef_f16());
189 // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [0, 3]}}
190 SVE_ACLE_FUNC(svset4,_f32,,)(svundef4_f32(), -1, svundef_f32());
191 // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [0, 3]}}
192 SVE_ACLE_FUNC(svset4,_f64,,)(svundef4_f64(), 4, svundef_f64());
195 void test_range_0_7()
197 // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [0, 7]}}
198 SVE_ACLE_FUNC(svtmad,_f16,,)(svundef_f16(), svundef_f16(), -1);
199 // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [0, 7]}}
200 SVE_ACLE_FUNC(svtmad,_f32,,)(svundef_f32(), svundef_f32(), 8);
201 // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [0, 7]}}
202 SVE_ACLE_FUNC(svtmad,_f64,,)(svundef_f64(), svundef_f64(), -1);
205 void test_range_0_13(svbool_t pg, const void *const_void_ptr)
207 // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [0, 13]}}
208 svprfb(pg, const_void_ptr, svprfop(14));
209 // expected-error-re@+1 {{must be a constant integer}}
210 svprfb_vnum(pg, const_void_ptr, 0, svprfop(-1));
211 // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [0, 13]}}
212 svprfd(pg, const_void_ptr, svprfop(14));
213 // expected-error-re@+1 {{must be a constant integer}}
214 svprfd_vnum(pg, const_void_ptr, 0, svprfop(-1));
215 // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [0, 13]}}
216 svprfh(pg, const_void_ptr, svprfop(14));
217 // expected-error-re@+1 {{must be a constant integer}}
218 svprfh_vnum(pg, const_void_ptr, 0, svprfop(-1));
219 // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [0, 13]}}
220 svprfw(pg, const_void_ptr, svprfop(14));
221 // expected-error-re@+1 {{must be a constant integer}}
222 svprfw_vnum(pg, const_void_ptr, 0, svprfop(-1));
225 void test_range_1_16()
227 // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [1, 16]}}
228 SVE_ACLE_FUNC(svqdecd,_s64,,)(svundef_s64(), 0);
229 // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [1, 16]}}
230 SVE_ACLE_FUNC(svqdecd_pat,_s64,,)(svundef_s64(), SV_VL8, 17);
231 // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [1, 16]}}
232 SVE_ACLE_FUNC(svqdecd,_u64,,)(svundef_u64(), 0);
233 // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [1, 16]}}
234 SVE_ACLE_FUNC(svqdecd_pat,_u64,,)(svundef_u64(), SV_VL64, 17);
235 // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [1, 16]}}
236 SVE_ACLE_FUNC(svqdech,_s16,,)(svundef_s16(), 0);
237 // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [1, 16]}}
238 SVE_ACLE_FUNC(svqdech,_u16,,)(svundef_u16(), 17);
239 // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [1, 16]}}
240 SVE_ACLE_FUNC(svqdech_pat,_s16,,)(svundef_s16(), SV_VL8, 0);
241 // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [1, 16]}}
242 SVE_ACLE_FUNC(svqdech_pat,_u16,,)(svundef_u16(), SV_VL64, 17);
243 // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [1, 16]}}
244 SVE_ACLE_FUNC(svqdecw,_s32,,)(svundef_s32(), 0);
245 // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [1, 16]}}
246 SVE_ACLE_FUNC(svqdecw,_u32,,)(svundef_u32(), 17);
247 // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [1, 16]}}
248 SVE_ACLE_FUNC(svqdecw_pat,_s32,,)(svundef_s32(), SV_VL8, 0);
249 // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [1, 16]}}
250 SVE_ACLE_FUNC(svqdecw_pat,_u32,,)(svundef_u32(), SV_VL64, 17);
251 // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [1, 16]}}
252 SVE_ACLE_FUNC(svqincd,_s64,,)(svundef_s64(), 0);
253 // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [1, 16]}}
254 SVE_ACLE_FUNC(svqincd,_u64,,)(svundef_u64(), 17);
255 // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [1, 16]}}
256 SVE_ACLE_FUNC(svqincd_pat,_s64,,)(svundef_s64(), SV_VL8, 0);
257 // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [1, 16]}}
258 SVE_ACLE_FUNC(svqincd_pat,_u64,,)(svundef_u64(), SV_VL64, 17);
259 // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [1, 16]}}
260 SVE_ACLE_FUNC(svqinch,_s16,,)(svundef_s16(), 0);
261 // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [1, 16]}}
262 SVE_ACLE_FUNC(svqinch,_u16,,)(svundef_u16(), 17);
263 // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [1, 16]}}
264 SVE_ACLE_FUNC(svqinch_pat,_s16,,)(svundef_s16(), SV_VL8, 0);
265 // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [1, 16]}}
266 SVE_ACLE_FUNC(svqinch_pat,_u16,,)(svundef_u16(), SV_VL64, 17);
267 // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [1, 16]}}
268 SVE_ACLE_FUNC(svqincw,_s32,,)(svundef_s32(), 0);
269 // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [1, 16]}}
270 SVE_ACLE_FUNC(svqincw,_u32,,)(svundef_u32(), 17);
271 // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [1, 16]}}
272 SVE_ACLE_FUNC(svqincw_pat,_s32,,)(svundef_s32(), SV_VL8, 0);
273 // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [1, 16]}}
274 SVE_ACLE_FUNC(svqincw_pat,_u32,,)(svundef_u32(), SV_VL64, 17);
277 void test_constant(uint64_t u64)
279 // expected-error-re@+1 {{argument to '{{.*}}' must be a constant integer}}
280 SVE_ACLE_FUNC(svget2,_s8,,)(svundef2_s8(), u64);
281 // expected-error-re@+1 {{argument to '{{.*}}' must be a constant integer}}
282 SVE_ACLE_FUNC(svget2,_s16,,)(svundef2_s16(), u64);
283 // expected-error-re@+1 {{argument to '{{.*}}' must be a constant integer}}
284 SVE_ACLE_FUNC(svget2,_s32,,)(svundef2_s32(), u64);
285 // expected-error-re@+1 {{argument to '{{.*}}' must be a constant integer}}
286 SVE_ACLE_FUNC(svget2,_s64,,)(svundef2_s64(), u64);
287 // expected-error-re@+1 {{argument to '{{.*}}' must be a constant integer}}
288 SVE_ACLE_FUNC(svget2,_u8,,)(svundef2_u8(), u64);
289 // expected-error-re@+1 {{argument to '{{.*}}' must be a constant integer}}
290 SVE_ACLE_FUNC(svget2,_u16,,)(svundef2_u16(), u64);
291 // expected-error-re@+1 {{argument to '{{.*}}' must be a constant integer}}
292 SVE_ACLE_FUNC(svget2,_u32,,)(svundef2_u32(), u64);
293 // expected-error-re@+1 {{argument to '{{.*}}' must be a constant integer}}
294 SVE_ACLE_FUNC(svget2,_u64,,)(svundef2_u64(), u64);
295 // expected-error-re@+1 {{argument to '{{.*}}' must be a constant integer}}
296 SVE_ACLE_FUNC(svget2,_f16,,)(svundef2_f16(), u64);
297 // expected-error-re@+1 {{argument to '{{.*}}' must be a constant integer}}
298 SVE_ACLE_FUNC(svget2,_f32,,)(svundef2_f32(), u64);
299 // expected-error-re@+1 {{argument to '{{.*}}' must be a constant integer}}
300 SVE_ACLE_FUNC(svget2,_f64,,)(svundef2_f64(), u64);
301 // expected-error-re@+1 {{argument to '{{.*}}' must be a constant integer}}
302 SVE_ACLE_FUNC(svget3,_s8,,)(svundef3_s8(), u64);
303 // expected-error-re@+1 {{argument to '{{.*}}' must be a constant integer}}
304 SVE_ACLE_FUNC(svget3,_s16,,)(svundef3_s16(), u64);
305 // expected-error-re@+1 {{argument to '{{.*}}' must be a constant integer}}
306 SVE_ACLE_FUNC(svget3,_s32,,)(svundef3_s32(), u64);
307 // expected-error-re@+1 {{argument to '{{.*}}' must be a constant integer}}
308 SVE_ACLE_FUNC(svget3,_s64,,)(svundef3_s64(), u64);
309 // expected-error-re@+1 {{argument to '{{.*}}' must be a constant integer}}
310 SVE_ACLE_FUNC(svget3,_u8,,)(svundef3_u8(), u64);
311 // expected-error-re@+1 {{argument to '{{.*}}' must be a constant integer}}
312 SVE_ACLE_FUNC(svget3,_u16,,)(svundef3_u16(), u64);
313 // expected-error-re@+1 {{argument to '{{.*}}' must be a constant integer}}
314 SVE_ACLE_FUNC(svget3,_u32,,)(svundef3_u32(), u64);
315 // expected-error-re@+1 {{argument to '{{.*}}' must be a constant integer}}
316 SVE_ACLE_FUNC(svget3,_u64,,)(svundef3_u64(), u64);
317 // expected-error-re@+1 {{argument to '{{.*}}' must be a constant integer}}
318 SVE_ACLE_FUNC(svget3,_f16,,)(svundef3_f16(), u64);
319 // expected-error-re@+1 {{argument to '{{.*}}' must be a constant integer}}
320 SVE_ACLE_FUNC(svget3,_f32,,)(svundef3_f32(), u64);
321 // expected-error-re@+1 {{argument to '{{.*}}' must be a constant integer}}
322 SVE_ACLE_FUNC(svget3,_f64,,)(svundef3_f64(), u64);
323 // expected-error-re@+1 {{argument to '{{.*}}' must be a constant integer}}
324 SVE_ACLE_FUNC(svget4,_s8,,)(svundef4_s8(), u64);
325 // expected-error-re@+1 {{argument to '{{.*}}' must be a constant integer}}
326 SVE_ACLE_FUNC(svget4,_s16,,)(svundef4_s16(), u64);
327 // expected-error-re@+1 {{argument to '{{.*}}' must be a constant integer}}
328 SVE_ACLE_FUNC(svget4,_s32,,)(svundef4_s32(), u64);
329 // expected-error-re@+1 {{argument to '{{.*}}' must be a constant integer}}
330 SVE_ACLE_FUNC(svget4,_s64,,)(svundef4_s64(), u64);
331 // expected-error-re@+1 {{argument to '{{.*}}' must be a constant integer}}
332 SVE_ACLE_FUNC(svget4,_u8,,)(svundef4_u8(), u64);
333 // expected-error-re@+1 {{argument to '{{.*}}' must be a constant integer}}
334 SVE_ACLE_FUNC(svget4,_u16,,)(svundef4_u16(), u64);
335 // expected-error-re@+1 {{argument to '{{.*}}' must be a constant integer}}
336 SVE_ACLE_FUNC(svget4,_u32,,)(svundef4_u32(), u64);
337 // expected-error-re@+1 {{argument to '{{.*}}' must be a constant integer}}
338 SVE_ACLE_FUNC(svget4,_u64,,)(svundef4_u64(), u64);
339 // expected-error-re@+1 {{argument to '{{.*}}' must be a constant integer}}
340 SVE_ACLE_FUNC(svget4,_f16,,)(svundef4_f16(), u64);
341 // expected-error-re@+1 {{argument to '{{.*}}' must be a constant integer}}
342 SVE_ACLE_FUNC(svget4,_f32,,)(svundef4_f32(), u64);
343 // expected-error-re@+1 {{argument to '{{.*}}' must be a constant integer}}
344 SVE_ACLE_FUNC(svget4,_f64,,)(svundef4_f64(), u64);
345 // expected-error-re@+1 {{argument to '{{.*}}' must be a constant integer}}
346 SVE_ACLE_FUNC(svset2,_s8,,)(svundef2_s8(), u64, svundef_s8());
347 // expected-error-re@+1 {{argument to '{{.*}}' must be a constant integer}}
348 SVE_ACLE_FUNC(svset2,_s16,,)(svundef2_s16(), u64, svundef_s16());
349 // expected-error-re@+1 {{argument to '{{.*}}' must be a constant integer}}
350 SVE_ACLE_FUNC(svset2,_s32,,)(svundef2_s32(), u64, svundef_s32());
351 // expected-error-re@+1 {{argument to '{{.*}}' must be a constant integer}}
352 SVE_ACLE_FUNC(svset2,_s64,,)(svundef2_s64(), u64, svundef_s64());
353 // expected-error-re@+1 {{argument to '{{.*}}' must be a constant integer}}
354 SVE_ACLE_FUNC(svset2,_u8,,)(svundef2_u8(), u64, svundef_u8());
355 // expected-error-re@+1 {{argument to '{{.*}}' must be a constant integer}}
356 SVE_ACLE_FUNC(svset2,_u16,,)(svundef2_u16(), u64, svundef_u16());
357 // expected-error-re@+1 {{argument to '{{.*}}' must be a constant integer}}
358 SVE_ACLE_FUNC(svset2,_u32,,)(svundef2_u32(), u64, svundef_u32());
359 // expected-error-re@+1 {{argument to '{{.*}}' must be a constant integer}}
360 SVE_ACLE_FUNC(svset2,_u64,,)(svundef2_u64(), u64, svundef_u64());
361 // expected-error-re@+1 {{argument to '{{.*}}' must be a constant integer}}
362 SVE_ACLE_FUNC(svset2,_f16,,)(svundef2_f16(), u64, svundef_f16());
363 // expected-error-re@+1 {{argument to '{{.*}}' must be a constant integer}}
364 SVE_ACLE_FUNC(svset2,_f32,,)(svundef2_f32(), u64, svundef_f32());
365 // expected-error-re@+1 {{argument to '{{.*}}' must be a constant integer}}
366 SVE_ACLE_FUNC(svset2,_f64,,)(svundef2_f64(), u64, svundef_f64());
367 // expected-error-re@+1 {{argument to '{{.*}}' must be a constant integer}}
368 SVE_ACLE_FUNC(svset3,_s8,,)(svundef3_s8(), u64, svundef_s8());
369 // expected-error-re@+1 {{argument to '{{.*}}' must be a constant integer}}
370 SVE_ACLE_FUNC(svset3,_s16,,)(svundef3_s16(), u64, svundef_s16());
371 // expected-error-re@+1 {{argument to '{{.*}}' must be a constant integer}}
372 SVE_ACLE_FUNC(svset3,_s32,,)(svundef3_s32(), u64, svundef_s32());
373 // expected-error-re@+1 {{argument to '{{.*}}' must be a constant integer}}
374 SVE_ACLE_FUNC(svset3,_s64,,)(svundef3_s64(), u64, svundef_s64());
375 // expected-error-re@+1 {{argument to '{{.*}}' must be a constant integer}}
376 SVE_ACLE_FUNC(svset3,_u8,,)(svundef3_u8(), u64, svundef_u8());
377 // expected-error-re@+1 {{argument to '{{.*}}' must be a constant integer}}
378 SVE_ACLE_FUNC(svset3,_u16,,)(svundef3_u16(), u64, svundef_u16());
379 // expected-error-re@+1 {{argument to '{{.*}}' must be a constant integer}}
380 SVE_ACLE_FUNC(svset3,_u32,,)(svundef3_u32(), u64, svundef_u32());
381 // expected-error-re@+1 {{argument to '{{.*}}' must be a constant integer}}
382 SVE_ACLE_FUNC(svset3,_u64,,)(svundef3_u64(), u64, svundef_u64());
383 // expected-error-re@+1 {{argument to '{{.*}}' must be a constant integer}}
384 SVE_ACLE_FUNC(svset3,_f16,,)(svundef3_f16(), u64, svundef_f16());
385 // expected-error-re@+1 {{argument to '{{.*}}' must be a constant integer}}
386 SVE_ACLE_FUNC(svset3,_f32,,)(svundef3_f32(), u64, svundef_f32());
387 // expected-error-re@+1 {{argument to '{{.*}}' must be a constant integer}}
388 SVE_ACLE_FUNC(svset3,_f64,,)(svundef3_f64(), u64, svundef_f64());
389 // expected-error-re@+1 {{argument to '{{.*}}' must be a constant integer}}
390 SVE_ACLE_FUNC(svset4,_s8,,)(svundef4_s8(), u64, svundef_s8());
391 // expected-error-re@+1 {{argument to '{{.*}}' must be a constant integer}}
392 SVE_ACLE_FUNC(svset4,_s16,,)(svundef4_s16(), u64, svundef_s16());
393 // expected-error-re@+1 {{argument to '{{.*}}' must be a constant integer}}
394 SVE_ACLE_FUNC(svset4,_s32,,)(svundef4_s32(), u64, svundef_s32());
395 // expected-error-re@+1 {{argument to '{{.*}}' must be a constant integer}}
396 SVE_ACLE_FUNC(svset4,_s64,,)(svundef4_s64(), u64, svundef_s64());
397 // expected-error-re@+1 {{argument to '{{.*}}' must be a constant integer}}
398 SVE_ACLE_FUNC(svset4,_u8,,)(svundef4_u8(), u64, svundef_u8());
399 // expected-error-re@+1 {{argument to '{{.*}}' must be a constant integer}}
400 SVE_ACLE_FUNC(svset4,_u16,,)(svundef4_u16(), u64, svundef_u16());
401 // expected-error-re@+1 {{argument to '{{.*}}' must be a constant integer}}
402 SVE_ACLE_FUNC(svset4,_u32,,)(svundef4_u32(), u64, svundef_u32());
403 // expected-error-re@+1 {{argument to '{{.*}}' must be a constant integer}}
404 SVE_ACLE_FUNC(svset4,_u64,,)(svundef4_u64(), u64, svundef_u64());
405 // expected-error-re@+1 {{argument to '{{.*}}' must be a constant integer}}
406 SVE_ACLE_FUNC(svset4,_f16,,)(svundef4_f16(), u64, svundef_f16());
407 // expected-error-re@+1 {{argument to '{{.*}}' must be a constant integer}}
408 SVE_ACLE_FUNC(svset4,_f32,,)(svundef4_f32(), u64, svundef_f32());
409 // expected-error-re@+1 {{argument to '{{.*}}' must be a constant integer}}
410 SVE_ACLE_FUNC(svset4,_f64,,)(svundef4_f64(), u64, svundef_f64());
413 void test_num_args()
415 // expected-note@* {{requires 0 arguments, but 1 was provided}}
416 SVE_ACLE_FUNC(svcnt,, b,)(1);
417 // expected-note@* {{requires 0 arguments, but 1 was provided}}
418 SVE_ACLE_FUNC(svcnt,, h,)(2);
419 // expected-note@* {{requires 0 arguments, but 1 was provided}}
420 SVE_ACLE_FUNC(svcnt,, w,)(3);
421 // expected-note@* {{requires 0 arguments, but 1 was provided}}
422 SVE_ACLE_FUNC(svcnt,, d,)(4);
423 // expected-note@* {{requires 0 arguments, but 1 was provided}}
424 SVE_ACLE_FUNC(svptrue,, _b8,)(1);
425 // expected-note@* {{requires 0 arguments, but 1 was provided}}
426 SVE_ACLE_FUNC(svptrue,, _b16,)(2);
427 // expected-note@* {{requires 0 arguments, but 1 was provided}}
428 SVE_ACLE_FUNC(svptrue,, _b32,)(3);
429 // expected-note@* {{requires 0 arguments, but 1 was provided}}
430 SVE_ACLE_FUNC(svptrue,, _b64,)(4);
433 void test_enum(svbool_t pg, const void *const_void_ptr, uint64_t u64)
435 // Test type checks on svpattern and svprfop enums.
437 // expected-note@* {{no known conversion from 'svpattern' to 'enum svprfop'}}
438 SVE_ACLE_FUNC(svprfb,,,)(pg, const_void_ptr, SV_VL1);
439 // expected-note@* + {{no known conversion from 'svprfop' to 'enum svpattern'}}
440 SVE_ACLE_FUNC(svqdecb_pat,_n_u64,,)(u64, SV_PLDL1KEEP, 1);