1 // REQUIRES: riscv-registered-target
2 // RUN: %clang_cc1 -triple riscv64 -target-feature +f -target-feature +d \
3 // RUN: -target-feature +v -target-feature +zfh -target-feature +zvfh \
4 // RUN: -fsyntax-only -verify %s
5
6 #include <riscv_vector.h>
7
test_vget_v_index_not_constant(vint8m2_t src,int index)8 vint8m1_t test_vget_v_index_not_constant(vint8m2_t src, int index) {
9 // expected-error@+1 {{argument to '__riscv_vget_v_i8m2_i8m1' must be a constant integer}}
10 return __riscv_vget_v_i8m2_i8m1(src, index);
11 }
12
test_vget_v_i8m2_i8m1(vint8m2_t src)13 vint8m1_t test_vget_v_i8m2_i8m1(vint8m2_t src) {
14 // expected-error@+1 {{argument value 2 is outside the valid range [0, 1]}}
15 return __riscv_vget_v_i8m2_i8m1(src, 2);
16 }
17
test_vget_v_i8m4_i8m1(vint8m4_t src)18 vint8m1_t test_vget_v_i8m4_i8m1(vint8m4_t src) {
19 // expected-error@+1 {{argument value 4 is outside the valid range [0, 3]}}
20 return __riscv_vget_v_i8m4_i8m1(src, 4);
21 }
22
test_vget_v_i8m4_i8m2(vint8m4_t src)23 vint8m2_t test_vget_v_i8m4_i8m2(vint8m4_t src) {
24 // expected-error@+1 {{argument value 2 is outside the valid range [0, 1]}}
25 return __riscv_vget_v_i8m4_i8m2(src, 2);
26 }
27
test_vget_v_i8m8_i8m1(vint8m8_t src)28 vint8m1_t test_vget_v_i8m8_i8m1(vint8m8_t src) {
29 // expected-error@+1 {{argument value 8 is outside the valid range [0, 7]}}
30 return __riscv_vget_v_i8m8_i8m1(src, 8);
31 }
32
test_vget_v_i8m8_i8m2(vint8m8_t src)33 vint8m2_t test_vget_v_i8m8_i8m2(vint8m8_t src) {
34 // expected-error@+1 {{argument value 4 is outside the valid range [0, 3]}}
35 return __riscv_vget_v_i8m8_i8m2(src, 4);
36 }
37
test_vget_v_i8m8_i8m4(vint8m8_t src)38 vint8m4_t test_vget_v_i8m8_i8m4(vint8m8_t src) {
39 // expected-error@+1 {{argument value 2 is outside the valid range [0, 1]}}
40 return __riscv_vget_v_i8m8_i8m4(src, 2);
41 }
42
test_vget_v_i16m2_i16m1(vint16m2_t src)43 vint16m1_t test_vget_v_i16m2_i16m1(vint16m2_t src) {
44 // expected-error@+1 {{argument value 2 is outside the valid range [0, 1]}}
45 return __riscv_vget_v_i16m2_i16m1(src, 2);
46 }
47
test_vget_v_i16m4_i16m1(vint16m4_t src)48 vint16m1_t test_vget_v_i16m4_i16m1(vint16m4_t src) {
49 // expected-error@+1 {{argument value 4 is outside the valid range [0, 3]}}
50 return __riscv_vget_v_i16m4_i16m1(src, 4);
51 }
52
test_vget_v_i16m4_i16m2(vint16m4_t src)53 vint16m2_t test_vget_v_i16m4_i16m2(vint16m4_t src) {
54 // expected-error@+1 {{argument value 2 is outside the valid range [0, 1]}}
55 return __riscv_vget_v_i16m4_i16m2(src, 2);
56 }
57
test_vget_v_i16m8_i16m1(vint16m8_t src)58 vint16m1_t test_vget_v_i16m8_i16m1(vint16m8_t src) {
59 // expected-error@+1 {{argument value 8 is outside the valid range [0, 7]}}
60 return __riscv_vget_v_i16m8_i16m1(src, 8);
61 }
62
test_vget_v_i16m8_i16m2(vint16m8_t src)63 vint16m2_t test_vget_v_i16m8_i16m2(vint16m8_t src) {
64 // expected-error@+1 {{argument value 4 is outside the valid range [0, 3]}}
65 return __riscv_vget_v_i16m8_i16m2(src, 4);
66 }
67
test_vget_v_i16m8_i16m4(vint16m8_t src)68 vint16m4_t test_vget_v_i16m8_i16m4(vint16m8_t src) {
69 // expected-error@+1 {{argument value 2 is outside the valid range [0, 1]}}
70 return __riscv_vget_v_i16m8_i16m4(src, 2);
71 }
72
test_vget_v_i32m2_i32m1(vint32m2_t src)73 vint32m1_t test_vget_v_i32m2_i32m1(vint32m2_t src) {
74 // expected-error@+1 {{argument value 2 is outside the valid range [0, 1]}}
75 return __riscv_vget_v_i32m2_i32m1(src, 2);
76 }
77
test_vget_v_i32m4_i32m1(vint32m4_t src)78 vint32m1_t test_vget_v_i32m4_i32m1(vint32m4_t src) {
79 // expected-error@+1 {{argument value 4 is outside the valid range [0, 3]}}
80 return __riscv_vget_v_i32m4_i32m1(src, 4);
81 }
82
test_vget_v_i32m4_i32m2(vint32m4_t src)83 vint32m2_t test_vget_v_i32m4_i32m2(vint32m4_t src) {
84 // expected-error@+1 {{argument value 2 is outside the valid range [0, 1]}}
85 return __riscv_vget_v_i32m4_i32m2(src, 2);
86 }
87
test_vget_v_i32m8_i32m1(vint32m8_t src)88 vint32m1_t test_vget_v_i32m8_i32m1(vint32m8_t src) {
89 // expected-error@+1 {{argument value 8 is outside the valid range [0, 7]}}
90 return __riscv_vget_v_i32m8_i32m1(src, 8);
91 }
92
test_vget_v_i32m8_i32m2(vint32m8_t src)93 vint32m2_t test_vget_v_i32m8_i32m2(vint32m8_t src) {
94 // expected-error@+1 {{argument value 4 is outside the valid range [0, 3]}}
95 return __riscv_vget_v_i32m8_i32m2(src, 4);
96 }
97
test_vget_v_i32m8_i32m4(vint32m8_t src)98 vint32m4_t test_vget_v_i32m8_i32m4(vint32m8_t src) {
99 // expected-error@+1 {{argument value 2 is outside the valid range [0, 1]}}
100 return __riscv_vget_v_i32m8_i32m4(src, 2);
101 }
102
test_vget_v_i64m2_i64m1(vint64m2_t src)103 vint64m1_t test_vget_v_i64m2_i64m1(vint64m2_t src) {
104 // expected-error@+1 {{argument value 2 is outside the valid range [0, 1]}}
105 return __riscv_vget_v_i64m2_i64m1(src, 2);
106 }
107
test_vget_v_i64m4_i64m1(vint64m4_t src)108 vint64m1_t test_vget_v_i64m4_i64m1(vint64m4_t src) {
109 // expected-error@+1 {{argument value 4 is outside the valid range [0, 3]}}
110 return __riscv_vget_v_i64m4_i64m1(src, 4);
111 }
112
test_vget_v_i64m4_i64m2(vint64m4_t src)113 vint64m2_t test_vget_v_i64m4_i64m2(vint64m4_t src) {
114 // expected-error@+1 {{argument value 2 is outside the valid range [0, 1]}}
115 return __riscv_vget_v_i64m4_i64m2(src, 2);
116 }
117
test_vget_v_i64m8_i64m1(vint64m8_t src)118 vint64m1_t test_vget_v_i64m8_i64m1(vint64m8_t src) {
119 // expected-error@+1 {{argument value 8 is outside the valid range [0, 7]}}
120 return __riscv_vget_v_i64m8_i64m1(src, 8);
121 }
122
test_vget_v_i64m8_i64m2(vint64m8_t src)123 vint64m2_t test_vget_v_i64m8_i64m2(vint64m8_t src) {
124 // expected-error@+1 {{argument value 4 is outside the valid range [0, 3]}}
125 return __riscv_vget_v_i64m8_i64m2(src, 4);
126 }
127
test_vget_v_i64m8_i64m4(vint64m8_t src)128 vint64m4_t test_vget_v_i64m8_i64m4(vint64m8_t src) {
129 // expected-error@+1 {{argument value 2 is outside the valid range [0, 1]}}
130 return __riscv_vget_v_i64m8_i64m4(src, 2);
131 }
132
test_vget_v_u8m2_u8m1(vuint8m2_t src)133 vuint8m1_t test_vget_v_u8m2_u8m1(vuint8m2_t src) {
134 // expected-error@+1 {{argument value 2 is outside the valid range [0, 1]}}
135 return __riscv_vget_v_u8m2_u8m1(src, 2);
136 }
137
test_vget_v_u8m4_u8m1(vuint8m4_t src)138 vuint8m1_t test_vget_v_u8m4_u8m1(vuint8m4_t src) {
139 // expected-error@+1 {{argument value 4 is outside the valid range [0, 3]}}
140 return __riscv_vget_v_u8m4_u8m1(src, 4);
141 }
142
test_vget_v_u8m4_u8m2(vuint8m4_t src)143 vuint8m2_t test_vget_v_u8m4_u8m2(vuint8m4_t src) {
144 // expected-error@+1 {{argument value 2 is outside the valid range [0, 1]}}
145 return __riscv_vget_v_u8m4_u8m2(src, 2);
146 }
147
test_vget_v_u8m8_u8m1(vuint8m8_t src)148 vuint8m1_t test_vget_v_u8m8_u8m1(vuint8m8_t src) {
149 // expected-error@+1 {{argument value 8 is outside the valid range [0, 7]}}
150 return __riscv_vget_v_u8m8_u8m1(src, 8);
151 }
152
test_vget_v_u8m8_u8m2(vuint8m8_t src)153 vuint8m2_t test_vget_v_u8m8_u8m2(vuint8m8_t src) {
154 // expected-error@+1 {{argument value 4 is outside the valid range [0, 3]}}
155 return __riscv_vget_v_u8m8_u8m2(src, 4);
156 }
157
test_vget_v_u8m8_u8m4(vuint8m8_t src)158 vuint8m4_t test_vget_v_u8m8_u8m4(vuint8m8_t src) {
159 // expected-error@+1 {{argument value 2 is outside the valid range [0, 1]}}
160 return __riscv_vget_v_u8m8_u8m4(src, 2);
161 }
162
test_vget_v_u16m2_u16m1(vuint16m2_t src)163 vuint16m1_t test_vget_v_u16m2_u16m1(vuint16m2_t src) {
164 // expected-error@+1 {{argument value 2 is outside the valid range [0, 1]}}
165 return __riscv_vget_v_u16m2_u16m1(src, 2);
166 }
167
test_vget_v_u16m4_u16m1(vuint16m4_t src)168 vuint16m1_t test_vget_v_u16m4_u16m1(vuint16m4_t src) {
169 // expected-error@+1 {{argument value 4 is outside the valid range [0, 3]}}
170 return __riscv_vget_v_u16m4_u16m1(src, 4);
171 }
172
test_vget_v_u16m4_u16m2(vuint16m4_t src)173 vuint16m2_t test_vget_v_u16m4_u16m2(vuint16m4_t src) {
174 // expected-error@+1 {{argument value 2 is outside the valid range [0, 1]}}
175 return __riscv_vget_v_u16m4_u16m2(src, 2);
176 }
177
test_vget_v_u16m8_u16m1(vuint16m8_t src)178 vuint16m1_t test_vget_v_u16m8_u16m1(vuint16m8_t src) {
179 // expected-error@+1 {{argument value 8 is outside the valid range [0, 7]}}
180 return __riscv_vget_v_u16m8_u16m1(src, 8);
181 }
182
test_vget_v_u16m8_u16m2(vuint16m8_t src)183 vuint16m2_t test_vget_v_u16m8_u16m2(vuint16m8_t src) {
184 // expected-error@+1 {{argument value 4 is outside the valid range [0, 3]}}
185 return __riscv_vget_v_u16m8_u16m2(src, 4);
186 }
187
test_vget_v_u16m8_u16m4(vuint16m8_t src)188 vuint16m4_t test_vget_v_u16m8_u16m4(vuint16m8_t src) {
189 // expected-error@+1 {{argument value 2 is outside the valid range [0, 1]}}
190 return __riscv_vget_v_u16m8_u16m4(src, 2);
191 }
192
test_vget_v_u32m2_u32m1(vuint32m2_t src)193 vuint32m1_t test_vget_v_u32m2_u32m1(vuint32m2_t src) {
194 // expected-error@+1 {{argument value 2 is outside the valid range [0, 1]}}
195 return __riscv_vget_v_u32m2_u32m1(src, 2);
196 }
197
test_vget_v_u32m4_u32m1(vuint32m4_t src)198 vuint32m1_t test_vget_v_u32m4_u32m1(vuint32m4_t src) {
199 // expected-error@+1 {{argument value 4 is outside the valid range [0, 3]}}
200 return __riscv_vget_v_u32m4_u32m1(src, 4);
201 }
202
test_vget_v_u32m4_u32m2(vuint32m4_t src)203 vuint32m2_t test_vget_v_u32m4_u32m2(vuint32m4_t src) {
204 // expected-error@+1 {{argument value 2 is outside the valid range [0, 1]}}
205 return __riscv_vget_v_u32m4_u32m2(src, 2);
206 }
207
test_vget_v_u32m8_u32m1(vuint32m8_t src)208 vuint32m1_t test_vget_v_u32m8_u32m1(vuint32m8_t src) {
209 // expected-error@+1 {{argument value 8 is outside the valid range [0, 7]}}
210 return __riscv_vget_v_u32m8_u32m1(src, 8);
211 }
212
test_vget_v_u32m8_u32m2(vuint32m8_t src)213 vuint32m2_t test_vget_v_u32m8_u32m2(vuint32m8_t src) {
214 // expected-error@+1 {{argument value 4 is outside the valid range [0, 3]}}
215 return __riscv_vget_v_u32m8_u32m2(src, 4);
216 }
217
test_vget_v_u32m8_u32m4(vuint32m8_t src)218 vuint32m4_t test_vget_v_u32m8_u32m4(vuint32m8_t src) {
219 // expected-error@+1 {{argument value 2 is outside the valid range [0, 1]}}
220 return __riscv_vget_v_u32m8_u32m4(src, 2);
221 }
222
test_vget_v_u64m2_u64m1(vuint64m2_t src)223 vuint64m1_t test_vget_v_u64m2_u64m1(vuint64m2_t src) {
224 // expected-error@+1 {{argument value 2 is outside the valid range [0, 1]}}
225 return __riscv_vget_v_u64m2_u64m1(src, 2);
226 }
227
test_vget_v_u64m4_u64m1(vuint64m4_t src)228 vuint64m1_t test_vget_v_u64m4_u64m1(vuint64m4_t src) {
229 // expected-error@+1 {{argument value 4 is outside the valid range [0, 3]}}
230 return __riscv_vget_v_u64m4_u64m1(src, 4);
231 }
232
test_vget_v_u64m4_u64m2(vuint64m4_t src)233 vuint64m2_t test_vget_v_u64m4_u64m2(vuint64m4_t src) {
234 // expected-error@+1 {{argument value 2 is outside the valid range [0, 1]}}
235 return __riscv_vget_v_u64m4_u64m2(src, 2);
236 }
237
test_vget_v_u64m8_u64m1(vuint64m8_t src)238 vuint64m1_t test_vget_v_u64m8_u64m1(vuint64m8_t src) {
239 // expected-error@+1 {{argument value 8 is outside the valid range [0, 7]}}
240 return __riscv_vget_v_u64m8_u64m1(src, 8);
241 }
242
test_vget_v_u64m8_u64m2(vuint64m8_t src)243 vuint64m2_t test_vget_v_u64m8_u64m2(vuint64m8_t src) {
244 // expected-error@+1 {{argument value 4 is outside the valid range [0, 3]}}
245 return __riscv_vget_v_u64m8_u64m2(src, 4);
246 }
247
test_vget_v_u64m8_u64m4(vuint64m8_t src)248 vuint64m4_t test_vget_v_u64m8_u64m4(vuint64m8_t src) {
249 // expected-error@+1 {{argument value 2 is outside the valid range [0, 1]}}
250 return __riscv_vget_v_u64m8_u64m4(src, 2);
251 }
252
test_vget_v_f32m2_f32m1(vfloat32m2_t src)253 vfloat32m1_t test_vget_v_f32m2_f32m1(vfloat32m2_t src) {
254 // expected-error@+1 {{argument value 2 is outside the valid range [0, 1]}}
255 return __riscv_vget_v_f32m2_f32m1(src, 2);
256 }
257
test_vget_v_f32m4_f32m1(vfloat32m4_t src)258 vfloat32m1_t test_vget_v_f32m4_f32m1(vfloat32m4_t src) {
259 // expected-error@+1 {{argument value 4 is outside the valid range [0, 3]}}
260 return __riscv_vget_v_f32m4_f32m1(src, 4);
261 }
262
test_vget_v_f32m4_f32m2(vfloat32m4_t src)263 vfloat32m2_t test_vget_v_f32m4_f32m2(vfloat32m4_t src) {
264 // expected-error@+1 {{argument value 2 is outside the valid range [0, 1]}}
265 return __riscv_vget_v_f32m4_f32m2(src, 2);
266 }
267
test_vget_v_f32m8_f32m1(vfloat32m8_t src)268 vfloat32m1_t test_vget_v_f32m8_f32m1(vfloat32m8_t src) {
269 // expected-error@+1 {{argument value 8 is outside the valid range [0, 7]}}
270 return __riscv_vget_v_f32m8_f32m1(src, 8);
271 }
272
test_vget_v_f32m8_f32m2(vfloat32m8_t src)273 vfloat32m2_t test_vget_v_f32m8_f32m2(vfloat32m8_t src) {
274 // expected-error@+1 {{argument value 4 is outside the valid range [0, 3]}}
275 return __riscv_vget_v_f32m8_f32m2(src, 4);
276 }
277
test_vget_v_f32m8_f32m4(vfloat32m8_t src)278 vfloat32m4_t test_vget_v_f32m8_f32m4(vfloat32m8_t src) {
279 // expected-error@+1 {{argument value 2 is outside the valid range [0, 1]}}
280 return __riscv_vget_v_f32m8_f32m4(src, 2);
281 }
282
test_vget_v_f64m2_f64m1(vfloat64m2_t src)283 vfloat64m1_t test_vget_v_f64m2_f64m1(vfloat64m2_t src) {
284 // expected-error@+1 {{argument value 2 is outside the valid range [0, 1]}}
285 return __riscv_vget_v_f64m2_f64m1(src, 2);
286 }
287
test_vget_v_f64m4_f64m1(vfloat64m4_t src)288 vfloat64m1_t test_vget_v_f64m4_f64m1(vfloat64m4_t src) {
289 // expected-error@+1 {{argument value 4 is outside the valid range [0, 3]}}
290 return __riscv_vget_v_f64m4_f64m1(src, 4);
291 }
292
test_vget_v_f64m4_f64m2(vfloat64m4_t src)293 vfloat64m2_t test_vget_v_f64m4_f64m2(vfloat64m4_t src) {
294 // expected-error@+1 {{argument value 2 is outside the valid range [0, 1]}}
295 return __riscv_vget_v_f64m4_f64m2(src, 2);
296 }
297
test_vget_v_f64m8_f64m1(vfloat64m8_t src)298 vfloat64m1_t test_vget_v_f64m8_f64m1(vfloat64m8_t src) {
299 // expected-error@+1 {{argument value 8 is outside the valid range [0, 7]}}
300 return __riscv_vget_v_f64m8_f64m1(src, 8);
301 }
302
test_vget_v_f64m8_f64m2(vfloat64m8_t src)303 vfloat64m2_t test_vget_v_f64m8_f64m2(vfloat64m8_t src) {
304 // expected-error@+1 {{argument value 4 is outside the valid range [0, 3]}}
305 return __riscv_vget_v_f64m8_f64m2(src, 4);
306 }
307
test_vget_v_f64m8_f64m4(vfloat64m8_t src)308 vfloat64m4_t test_vget_v_f64m8_f64m4(vfloat64m8_t src) {
309 // expected-error@+1 {{argument value 2 is outside the valid range [0, 1]}}
310 return __riscv_vget_v_f64m8_f64m4(src, 2);
311 }
312
test_vget_v_f16m2_f16m1(vfloat16m2_t src)313 vfloat16m1_t test_vget_v_f16m2_f16m1(vfloat16m2_t src) {
314 // expected-error@+1 {{argument value 2 is outside the valid range [0, 1]}}
315 return __riscv_vget_v_f16m2_f16m1(src, 2);
316 }
317
test_vget_v_f16m4_f16m1(vfloat16m4_t src)318 vfloat16m1_t test_vget_v_f16m4_f16m1(vfloat16m4_t src) {
319 // expected-error@+1 {{argument value 4 is outside the valid range [0, 3]}}
320 return __riscv_vget_v_f16m4_f16m1(src, 4);
321 }
322
test_vget_v_f16m8_f16m1(vfloat16m8_t src)323 vfloat16m1_t test_vget_v_f16m8_f16m1(vfloat16m8_t src) {
324 // expected-error@+1 {{argument value 8 is outside the valid range [0, 7]}}
325 return __riscv_vget_v_f16m8_f16m1(src, 8);
326 }
327
test_vget_v_f16m4_f16m2(vfloat16m4_t src)328 vfloat16m2_t test_vget_v_f16m4_f16m2(vfloat16m4_t src) {
329 // expected-error@+1 {{argument value 2 is outside the valid range [0, 1]}}
330 return __riscv_vget_v_f16m4_f16m2(src, 2);
331 }
332
test_vget_v_f16m8_f16m2(vfloat16m8_t src)333 vfloat16m2_t test_vget_v_f16m8_f16m2(vfloat16m8_t src) {
334 // expected-error@+1 {{argument value 4 is outside the valid range [0, 3]}}
335 return __riscv_vget_v_f16m8_f16m2(src, 4);
336 }
337
test_vget_v_f16m8_f16m4(vfloat16m8_t src)338 vfloat16m4_t test_vget_v_f16m8_f16m4(vfloat16m8_t src) {
339 // expected-error@+1 {{argument value 2 is outside the valid range [0, 1]}}
340 return __riscv_vget_v_f16m8_f16m4(src, 2);
341 }
342
test_vget_v_i32m1x2_i32m1(vint32m1x2_t src)343 vint32m1_t test_vget_v_i32m1x2_i32m1(vint32m1x2_t src) {
344 // expected-error@+1 {{argument value 2 is outside the valid range [0, 1]}}
345 return __riscv_vget_v_i32m1x2_i32m1(src, 2);
346 }
347