1 // RUN: %clang_cc1 -triple arm64-none-eabi -target-feature +neon -target-feature +dotprod -target-feature +v8.1a -verify %s
2 // RUN: %clang_cc1 -triple armv8.1a-none-eabi -target-feature +neon -target-feature +dotprod -target-feature +v8.1a -verify %s
4 // REQUIRES: aarch64-registered-target || arm-registered-target
8 void test_vdot_lane(int32x2_t r
, int8x8_t a
, int8x8_t b
) {
9 vdot_lane_s32(r
, a
, b
, -1); // expected-error {{argument value -1 is outside the valid range [0, 1]}}
10 vdot_lane_s32(r
, a
, b
, 2); // expected-error {{argument value 2 is outside the valid range [0, 1]}}
11 vdot_lane_s32(r
, a
, b
, 0);
12 vdot_lane_s32(r
, a
, b
, 1);
15 void test_vdotq_lane(int32x4_t r
, int8x16_t a
, int8x8_t b
) {
16 vdotq_lane_s32(r
, a
, b
, -1); // expected-error {{argument value -1 is outside the valid range [0, 1]}}
17 vdotq_lane_s32(r
, a
, b
, 2); // expected-error {{argument value 2 is outside the valid range [0, 1]}}
18 vdotq_lane_s32(r
, a
, b
, 0);
19 vdotq_lane_s32(r
, a
, b
, 1);
22 #if defined(__aarch64__)
23 void test_vdot_laneq(int32x2_t r
, int8x8_t a
, int8x16_t b
) {
24 vdot_laneq_s32(r
, a
, b
, -1); // expected-error {{argument value -1 is outside the valid range [0, 3]}}
25 vdot_laneq_s32(r
, a
, b
, 4); // expected-error {{argument value 4 is outside the valid range [0, 3]}}
26 vdot_laneq_s32(r
, a
, b
, 0);
27 vdot_laneq_s32(r
, a
, b
, 3);
30 void test_vdotq_laneq(int32x4_t r
, int8x16_t a
, int8x16_t b
) {
31 vdotq_laneq_s32(r
, a
, b
, -1); // expected-error {{argument value -1 is outside the valid range [0, 3]}}
32 vdotq_laneq_s32(r
, a
, b
, 4); // expected-error {{argument value 4 is outside the valid range [0, 3]}}
33 vdotq_laneq_s32(r
, a
, b
, 0);
34 vdotq_laneq_s32(r
, a
, b
, 3);
38 void test_vdup_lane(int32x2_t v
) {
39 vdup_lane_s32(v
, -1); // expected-error {{argument value -1 is outside the valid range [0, 1]}}
40 vdup_lane_s32(v
, 2); // expected-error {{argument value 2 is outside the valid range [0, 1]}}
45 void test_vdupq_lane(int32x2_t v
) {
46 vdupq_lane_s32(v
, -1); // expected-error {{argument value -1 is outside the valid range [0, 1]}}
47 vdupq_lane_s32(v
, 2); // expected-error {{argument value 2 is outside the valid range [0, 1]}}
52 #if defined(__aarch64__)
53 void test_vdup_laneq(int32x4_t v
) {
54 vdup_laneq_s32(v
, -1); // expected-error {{argument value -1 is outside the valid range [0, 3]}}
55 vdup_laneq_s32(v
, 4); // expected-error {{argument value 4 is outside the valid range [0, 3]}}
60 void test_vdupq_laneq(int32x4_t v
) {
61 vdupq_laneq_s32(v
, -1); // expected-error {{argument value -1 is outside the valid range [0, 3]}}
62 vdupq_laneq_s32(v
, 4); // expected-error {{argument value 4 is outside the valid range [0, 3]}}
63 vdupq_laneq_s32(v
, 0);
64 vdupq_laneq_s32(v
, 3);
68 void test_vmla_lane(int32x2_t a
, int32x2_t b
, int32x2_t v
) {
69 vmla_lane_s32(a
, b
, v
, -1); // expected-error {{argument value -1 is outside the valid range [0, 1]}}
70 vmla_lane_s32(a
, b
, v
, 2); // expected-error {{argument value 2 is outside the valid range [0, 1]}}
71 vmla_lane_s32(a
, b
, v
, 0);
72 vmla_lane_s32(a
, b
, v
, 1);
75 void test_vmlaq_lane(int32x4_t a
, int32x4_t b
, int32x2_t v
) {
76 vmlaq_lane_s32(a
, b
, v
, -1); // expected-error {{argument value -1 is outside the valid range [0, 1]}}
77 vmlaq_lane_s32(a
, b
, v
, 2); // expected-error {{argument value 2 is outside the valid range [0, 1]}}
78 vmlaq_lane_s32(a
, b
, v
, 0);
79 vmlaq_lane_s32(a
, b
, v
, 1);
82 #if defined(__aarch64__)
83 void test_vmla_laneq(int32x2_t a
, int32x2_t b
, int32x4_t v
) {
84 vmla_laneq_s32(a
, b
, v
, -1); // expected-error {{argument value -1 is outside the valid range [0, 3]}}
85 vmla_laneq_s32(a
, b
, v
, 4); // expected-error {{argument value 4 is outside the valid range [0, 3]}}
86 vmla_laneq_s32(a
, b
, v
, 0);
87 vmla_laneq_s32(a
, b
, v
, 3);
90 void test_vmlaq_laneq(int32x4_t a
, int32x4_t b
, int32x4_t v
) {
91 vmlaq_laneq_s32(a
, b
, v
, -1); // expected-error {{argument value -1 is outside the valid range [0, 3]}}
92 vmlaq_laneq_s32(a
, b
, v
, 4); // expected-error {{argument value 4 is outside the valid range [0, 3]}}
93 vmlaq_laneq_s32(a
, b
, v
, 0);
94 vmlaq_laneq_s32(a
, b
, v
, 3);
97 void test_vmlal_high_lane(int64x2_t a
, int32x4_t b
, int32x2_t v
) {
98 vmlal_high_lane_s32(a
, b
, v
, -1); // expected-error {{argument value -1 is outside the valid range [0, 1]}}
99 vmlal_high_lane_s32(a
, b
, v
, 2); // expected-error {{argument value 2 is outside the valid range [0, 1]}}
100 vmlal_high_lane_s32(a
, b
, v
, 0);
101 vmlal_high_lane_s32(a
, b
, v
, 1);
104 void test_vmlal_high_laneq(int64x2_t a
, int32x4_t b
, int32x4_t v
) {
105 vmlal_high_laneq_s32(a
, b
, v
, -1); // expected-error {{argument value -1 is outside the valid range [0, 3]}}
106 vmlal_high_laneq_s32(a
, b
, v
, 4); // expected-error {{argument value 4 is outside the valid range [0, 3]}}
107 vmlal_high_laneq_s32(a
, b
, v
, 0);
108 vmlal_high_laneq_s32(a
, b
, v
, 3);
112 void test_vmlal_lane(int64x2_t a
, int32x2_t b
, int32x2_t v
) {
113 vmlal_lane_s32(a
, b
, v
, -1); // expected-error {{argument value -1 is outside the valid range [0, 1]}}
114 vmlal_lane_s32(a
, b
, v
, 2); // expected-error {{argument value 2 is outside the valid range [0, 1]}}
115 vmlal_lane_s32(a
, b
, v
, 0);
116 vmlal_lane_s32(a
, b
, v
, 1);
119 #if defined(__aarch64__)
120 void test_vmlal_laneq(int64x2_t a
, int32x2_t b
, int32x4_t v
) {
121 vmlal_laneq_s32(a
, b
, v
, -1); // expected-error {{argument value -1 is outside the valid range [0, 3]}}
122 vmlal_laneq_s32(a
, b
, v
, 4); // expected-error {{argument value 4 is outside the valid range [0, 3]}}
123 vmlal_laneq_s32(a
, b
, v
, 0);
124 vmlal_laneq_s32(a
, b
, v
, 3);
128 void test_vmls_lane(int32x2_t a
, int32x2_t b
, int32x2_t v
) {
129 vmls_lane_s32(a
, b
, v
, -1); // expected-error {{argument value -1 is outside the valid range [0, 1]}}
130 vmls_lane_s32(a
, b
, v
, 2); // expected-error {{argument value 2 is outside the valid range [0, 1]}}
131 vmls_lane_s32(a
, b
, v
, 0);
132 vmls_lane_s32(a
, b
, v
, 1);
135 void test_vmlsq_lane(int32x4_t a
, int32x4_t b
, int32x2_t v
) {
136 vmlsq_lane_s32(a
, b
, v
, -1); // expected-error {{argument value -1 is outside the valid range [0, 1]}}
137 vmlsq_lane_s32(a
, b
, v
, 2); // expected-error {{argument value 2 is outside the valid range [0, 1]}}
138 vmlsq_lane_s32(a
, b
, v
, 0);
139 vmlsq_lane_s32(a
, b
, v
, 1);
142 #if defined(__aarch64__)
143 void test_vmls_laneq(int32x2_t a
, int32x2_t b
, int32x4_t v
) {
144 vmls_laneq_s32(a
, b
, v
, -1); // expected-error {{argument value -1 is outside the valid range [0, 3]}}
145 vmls_laneq_s32(a
, b
, v
, 4); // expected-error {{argument value 4 is outside the valid range [0, 3]}}
146 vmls_laneq_s32(a
, b
, v
, 0);
147 vmls_laneq_s32(a
, b
, v
, 3);
150 void test_vmlsq_laneq(int32x4_t a
, int32x4_t b
, int32x4_t v
) {
151 vmlsq_laneq_s32(a
, b
, v
, -1); // expected-error {{argument value -1 is outside the valid range [0, 3]}}
152 vmlsq_laneq_s32(a
, b
, v
, 4); // expected-error {{argument value 4 is outside the valid range [0, 3]}}
153 vmlsq_laneq_s32(a
, b
, v
, 0);
154 vmlsq_laneq_s32(a
, b
, v
, 3);
157 void test_vmlsl_high_lane(int64x2_t a
, int32x4_t b
, int32x2_t v
) {
158 vmlsl_high_lane_s32(a
, b
, v
, -1); // expected-error {{argument value -1 is outside the valid range [0, 1]}}
159 vmlsl_high_lane_s32(a
, b
, v
, 2); // expected-error {{argument value 2 is outside the valid range [0, 1]}}
160 vmlsl_high_lane_s32(a
, b
, v
, 0);
161 vmlsl_high_lane_s32(a
, b
, v
, 1);
164 void test_vmlsl_high_laneq(int64x2_t a
, int32x4_t b
, int32x4_t v
) {
165 vmlsl_high_laneq_s32(a
, b
, v
, -1); // expected-error {{argument value -1 is outside the valid range [0, 3]}}
166 vmlsl_high_laneq_s32(a
, b
, v
, 4); // expected-error {{argument value 4 is outside the valid range [0, 3]}}
167 vmlsl_high_laneq_s32(a
, b
, v
, 0);
168 vmlsl_high_laneq_s32(a
, b
, v
, 3);
172 void test_vmlsl_lane(int64x2_t a
, int32x2_t b
, int32x2_t v
) {
173 vmlsl_lane_s32(a
, b
, v
, -1); // expected-error {{argument value -1 is outside the valid range [0, 1]}}
174 vmlsl_lane_s32(a
, b
, v
, 2); // expected-error {{argument value 2 is outside the valid range [0, 1]}}
175 vmlsl_lane_s32(a
, b
, v
, 0);
176 vmlsl_lane_s32(a
, b
, v
, 1);
179 #if defined(__aarch64__)
180 void test_vmlsl_laneq(int64x2_t a
, int32x2_t b
, int32x4_t v
) {
181 vmlsl_laneq_s32(a
, b
, v
, -1); // expected-error {{argument value -1 is outside the valid range [0, 3]}}
182 vmlsl_laneq_s32(a
, b
, v
, 4); // expected-error {{argument value 4 is outside the valid range [0, 3]}}
183 vmlsl_laneq_s32(a
, b
, v
, 0);
184 vmlsl_laneq_s32(a
, b
, v
, 3);
188 void test_vmull_lane(int32x2_t a
, int32x2_t b
) {
189 vmull_lane_s32(a
, b
, -1); // expected-error {{argument value -1 is outside the valid range [0, 1]}}
190 vmull_lane_s32(a
, b
, 2); // expected-error {{argument value 2 is outside the valid range [0, 1]}}
191 vmull_lane_s32(a
, b
, 0);
192 vmull_lane_s32(a
, b
, 1);
195 #if defined(__aarch64__)
196 void test_vmull_laneq(int32x2_t a
, int32x4_t b
) {
197 vmull_laneq_s32(a
, b
, -1); // expected-error {{argument value -1 is outside the valid range [0, 3]}}
198 vmull_laneq_s32(a
, b
, 4); // expected-error {{argument value 4 is outside the valid range [0, 3]}}
199 vmull_laneq_s32(a
, b
, 0);
200 vmull_laneq_s32(a
, b
, 3);
203 void test_vmull_high_lane(int32x4_t a
, int32x2_t b
) {
204 vmull_high_lane_s32(a
, b
, -1); // expected-error {{argument value -1 is outside the valid range [0, 1]}}
205 vmull_high_lane_s32(a
, b
, 2); // expected-error {{argument value 2 is outside the valid range [0, 1]}}
206 vmull_high_lane_s32(a
, b
, 0);
207 vmull_high_lane_s32(a
, b
, 1);
210 void test_vmull_high_laneq(int32x4_t a
, int32x4_t b
) {
211 vmull_high_laneq_s32(a
, b
, -1); // expected-error {{argument value -1 is outside the valid range [0, 3]}}
212 vmull_high_laneq_s32(a
, b
, 4); // expected-error {{argument value 4 is outside the valid range [0, 3]}}
213 vmull_high_laneq_s32(a
, b
, 0);
214 vmull_high_laneq_s32(a
, b
, 3);
217 void test_vqdmlal_high_lane(int64x2_t a
, int32x4_t b
, int32x2_t v
) {
218 vqdmlal_high_lane_s32(a
, b
, v
, -1); // expected-error {{argument value -1 is outside the valid range [0, 1]}}
219 vqdmlal_high_lane_s32(a
, b
, v
, 2); // expected-error {{argument value 2 is outside the valid range [0, 1]}}
220 vqdmlal_high_lane_s32(a
, b
, v
, 0);
221 vqdmlal_high_lane_s32(a
, b
, v
, 1);
224 void test_vqdmlal_high_laneq(int64x2_t a
, int32x4_t b
, int32x4_t v
) {
225 vqdmlal_high_laneq_s32(a
, b
, v
, -1); // expected-error {{argument value -1 is outside the valid range [0, 3]}}
226 vqdmlal_high_laneq_s32(a
, b
, v
, 4); // expected-error {{argument value 4 is outside the valid range [0, 3]}}
227 vqdmlal_high_laneq_s32(a
, b
, v
, 0);
228 vqdmlal_high_laneq_s32(a
, b
, v
, 3);
232 void test_vqdmlal_lane(int64x2_t a
, int32x2_t b
, int32x2_t v
) {
233 vqdmlal_lane_s32(a
, b
, v
, -1); // expected-error {{argument value -1 is outside the valid range [0, 1]}}
234 vqdmlal_lane_s32(a
, b
, v
, 2); // expected-error {{argument value 2 is outside the valid range [0, 1]}}
235 vqdmlal_lane_s32(a
, b
, v
, 0);
236 vqdmlal_lane_s32(a
, b
, v
, 1);
239 #if defined(__aarch64__)
240 void test_vqdmlal_laneq(int64x2_t a
, int32x2_t b
, int32x4_t v
) {
241 vqdmlal_laneq_s32(a
, b
, v
, -1); // expected-error {{argument value -1 is outside the valid range [0, 3]}}
242 vqdmlal_laneq_s32(a
, b
, v
, 4); // expected-error {{argument value 4 is outside the valid range [0, 3]}}
243 vqdmlal_laneq_s32(a
, b
, v
, 0);
244 vqdmlal_laneq_s32(a
, b
, v
, 3);
247 void test_vqdmlsl_high_lane(int64x2_t a
, int32x4_t b
, int32x2_t v
) {
248 vqdmlsl_high_lane_s32(a
, b
, v
, -1); // expected-error {{argument value -1 is outside the valid range [0, 1]}}
249 vqdmlsl_high_lane_s32(a
, b
, v
, 2); // expected-error {{argument value 2 is outside the valid range [0, 1]}}
250 vqdmlsl_high_lane_s32(a
, b
, v
, 0);
251 vqdmlsl_high_lane_s32(a
, b
, v
, 1);
254 void test_vqdmlsl_high_laneq(int64x2_t a
, int32x4_t b
, int32x4_t v
) {
255 vqdmlsl_high_laneq_s32(a
, b
, v
, -1); // expected-error {{argument value -1 is outside the valid range [0, 3]}}
256 vqdmlsl_high_laneq_s32(a
, b
, v
, 4); // expected-error {{argument value 4 is outside the valid range [0, 3]}}
257 vqdmlsl_high_laneq_s32(a
, b
, v
, 0);
258 vqdmlsl_high_laneq_s32(a
, b
, v
, 3);
262 void test_vqdmlsl_lane(int64x2_t a
, int32x2_t b
, int32x2_t v
) {
263 vqdmlsl_lane_s32(a
, b
, v
, -1); // expected-error {{argument value -1 is outside the valid range [0, 1]}}
264 vqdmlsl_lane_s32(a
, b
, v
, 2); // expected-error {{argument value 2 is outside the valid range [0, 1]}}
265 vqdmlsl_lane_s32(a
, b
, v
, 0);
266 vqdmlsl_lane_s32(a
, b
, v
, 1);
269 #if defined(__aarch64__)
270 void test_vqdmlsl_laneq(int64x2_t a
, int32x2_t b
, int32x4_t v
) {
271 vqdmlsl_laneq_s32(a
, b
, v
, -1); // expected-error {{argument value -1 is outside the valid range [0, 3]}}
272 vqdmlsl_laneq_s32(a
, b
, v
, 4); // expected-error {{argument value 4 is outside the valid range [0, 3]}}
273 vqdmlsl_laneq_s32(a
, b
, v
, 0);
274 vqdmlsl_laneq_s32(a
, b
, v
, 3);
278 void test_vqdmulh_lane(int32x2_t a
, int32x2_t b
) {
279 vqdmulh_lane_s32(a
, b
, -1); // expected-error {{argument value -1 is outside the valid range [0, 1]}}
280 vqdmulh_lane_s32(a
, b
, 2); // expected-error {{argument value 2 is outside the valid range [0, 1]}}
281 vqdmulh_lane_s32(a
, b
, 0);
282 vqdmulh_lane_s32(a
, b
, 1);
285 void test_vqdmulhq_lane(int32x4_t a
, int32x2_t b
) {
286 vqdmulhq_lane_s32(a
, b
, -1); // expected-error {{argument value -1 is outside the valid range [0, 1]}}
287 vqdmulhq_lane_s32(a
, b
, 2); // expected-error {{argument value 2 is outside the valid range [0, 1]}}
288 vqdmulhq_lane_s32(a
, b
, 0);
289 vqdmulhq_lane_s32(a
, b
, 1);
292 #if defined(__aarch64__)
293 void test_vqdmulh_laneq(int32x2_t a
, int32x4_t b
) {
294 vqdmulh_laneq_s32(a
, b
, -1); // expected-error {{argument value -1 is outside the valid range [0, 3]}}
295 vqdmulh_laneq_s32(a
, b
, 4); // expected-error {{argument value 4 is outside the valid range [0, 3]}}
296 vqdmulh_laneq_s32(a
, b
, 0);
297 vqdmulh_laneq_s32(a
, b
, 3);
300 void test_vqdmulhq_laneq(int32x4_t a
, int32x4_t b
) {
301 vqdmulhq_laneq_s32(a
, b
, -1); // expected-error {{argument value -1 is outside the valid range [0, 3]}}
302 vqdmulhq_laneq_s32(a
, b
, 4); // expected-error {{argument value 4 is outside the valid range [0, 3]}}
303 vqdmulhq_laneq_s32(a
, b
, 0);
304 vqdmulhq_laneq_s32(a
, b
, 3);
307 void test_vqdmull_high_lane(int32x4_t a
, int32x2_t b
) {
308 vqdmull_high_lane_s32(a
, b
, -1); // expected-error {{argument value -1 is outside the valid range [0, 1]}}
309 vqdmull_high_lane_s32(a
, b
, 2); // expected-error {{argument value 2 is outside the valid range [0, 1]}}
310 vqdmull_high_lane_s32(a
, b
, 0);
311 vqdmull_high_lane_s32(a
, b
, 1);
314 void test_vqdmull_high_laneq(int32x4_t a
, int32x4_t b
) {
315 vqdmull_high_laneq_s32(a
, b
, -1); // expected-error {{argument value -1 is outside the valid range [0, 3]}}
316 vqdmull_high_laneq_s32(a
, b
, 4); // expected-error {{argument value 4 is outside the valid range [0, 3]}}
317 vqdmull_high_laneq_s32(a
, b
, 0);
318 vqdmull_high_laneq_s32(a
, b
, 3);
322 void test_vqdmull_lane(int32x2_t a
, int32x2_t v
) {
323 vqdmull_lane_s32(a
, v
, -1); // expected-error {{argument value -1 is outside the valid range [0, 1]}}
324 vqdmull_lane_s32(a
, v
, 2); // expected-error {{argument value 2 is outside the valid range [0, 1]}}
325 vqdmull_lane_s32(a
, v
, 0);
326 vqdmull_lane_s32(a
, v
, 1);
329 #if defined(__aarch64__)
330 void test_vqdmull_laneq(int32x2_t a
, int32x4_t v
) {
331 vqdmull_laneq_s32(a
, v
, -1); // expected-error {{argument value -1 is outside the valid range [0, 3]}}
332 vqdmull_laneq_s32(a
, v
, 4); // expected-error {{argument value 4 is outside the valid range [0, 3]}}
333 vqdmull_laneq_s32(a
, v
, 0);
334 vqdmull_laneq_s32(a
, v
, 3);
338 void test_vqrdmlah_lane(int32x2_t a
, int32x2_t b
, int32x2_t v
) {
339 vqrdmlah_lane_s32(a
, b
, v
, -1); // expected-error {{argument value -1 is outside the valid range [0, 1]}}
340 vqrdmlah_lane_s32(a
, b
, v
, 2); // expected-error {{argument value 2 is outside the valid range [0, 1]}}
341 vqrdmlah_lane_s32(a
, b
, v
, 0);
342 vqrdmlah_lane_s32(a
, b
, v
, 1);
345 void test_vqrdmlahq_lane(int32x4_t a
, int32x4_t b
, int32x2_t v
) {
346 vqrdmlahq_lane_s32(a
, b
, v
, -1); // expected-error {{argument value -1 is outside the valid range [0, 1]}}
347 vqrdmlahq_lane_s32(a
, b
, v
, 2); // expected-error {{argument value 2 is outside the valid range [0, 1]}}
348 vqrdmlahq_lane_s32(a
, b
, v
, 0);
349 vqrdmlahq_lane_s32(a
, b
, v
, 1);
352 #if defined(__aarch64__)
353 void test_vqrdmlah_laneq(int32x2_t a
, int32x2_t b
, int32x4_t v
) {
354 vqrdmlah_laneq_s32(a
, b
, v
, -1); // expected-error {{argument value -1 is outside the valid range [0, 3]}}
355 vqrdmlah_laneq_s32(a
, b
, v
, 4); // expected-error {{argument value 4 is outside the valid range [0, 3]}}
356 vqrdmlah_laneq_s32(a
, b
, v
, 0);
357 vqrdmlah_laneq_s32(a
, b
, v
, 3);
360 void test_vqrdmlahq_laneq(int32x4_t a
, int32x4_t b
, int32x4_t v
) {
361 vqrdmlahq_laneq_s32(a
, b
, v
, -1); // expected-error {{argument value -1 is outside the valid range [0, 3]}}
362 vqrdmlahq_laneq_s32(a
, b
, v
, 4); // expected-error {{argument value 4 is outside the valid range [0, 3]}}
363 vqrdmlahq_laneq_s32(a
, b
, v
, 0);
364 vqrdmlahq_laneq_s32(a
, b
, v
, 3);
368 void test_vqrdmlsh_lane(int32x2_t a
, int32x2_t b
, int32x2_t v
) {
369 vqrdmlsh_lane_s32(a
, b
, v
, -1); // expected-error {{argument value -1 is outside the valid range [0, 1]}}
370 vqrdmlsh_lane_s32(a
, b
, v
, 2); // expected-error {{argument value 2 is outside the valid range [0, 1]}}
371 vqrdmlsh_lane_s32(a
, b
, v
, 0);
372 vqrdmlsh_lane_s32(a
, b
, v
, 1);
375 void test_vqrdmlshq_lane(int32x4_t a
, int32x4_t b
, int32x2_t v
) {
376 vqrdmlshq_lane_s32(a
, b
, v
, -1); // expected-error {{argument value -1 is outside the valid range [0, 1]}}
377 vqrdmlshq_lane_s32(a
, b
, v
, 2); // expected-error {{argument value 2 is outside the valid range [0, 1]}}
378 vqrdmlshq_lane_s32(a
, b
, v
, 0);
379 vqrdmlshq_lane_s32(a
, b
, v
, 1);
382 #if defined(__aarch64__)
383 void test_vqrdmlsh_laneq(int32x2_t a
, int32x2_t b
, int32x4_t v
) {
384 vqrdmlsh_laneq_s32(a
, b
, v
, -1); // expected-error {{argument value -1 is outside the valid range [0, 3]}}
385 vqrdmlsh_laneq_s32(a
, b
, v
, 4); // expected-error {{argument value 4 is outside the valid range [0, 3]}}
386 vqrdmlsh_laneq_s32(a
, b
, v
, 0);
387 vqrdmlsh_laneq_s32(a
, b
, v
, 3);
390 void test_vqrdmlshq_laneq(int32x4_t a
, int32x4_t b
, int32x4_t v
) {
391 vqrdmlshq_laneq_s32(a
, b
, v
, -1); // expected-error {{argument value -1 is outside the valid range [0, 3]}}
392 vqrdmlshq_laneq_s32(a
, b
, v
, 4); // expected-error {{argument value 4 is outside the valid range [0, 3]}}
393 vqrdmlshq_laneq_s32(a
, b
, v
, 0);
394 vqrdmlshq_laneq_s32(a
, b
, v
, 3);
398 void test_vqrdmulh_lane(int32x2_t a
, int32x2_t v
) {
399 vqrdmulh_lane_s32(a
, v
, -1); // expected-error {{argument value -1 is outside the valid range [0, 1]}}
400 vqrdmulh_lane_s32(a
, v
, 2); // expected-error {{argument value 2 is outside the valid range [0, 1]}}
401 vqrdmulh_lane_s32(a
, v
, 0);
402 vqrdmulh_lane_s32(a
, v
, 1);
405 void test_vqrdmulhq_lane(int32x4_t a
, int32x2_t v
) {
406 vqrdmulhq_lane_s32(a
, v
, -1); // expected-error {{argument value -1 is outside the valid range [0, 1]}}
407 vqrdmulhq_lane_s32(a
, v
, 2); // expected-error {{argument value 2 is outside the valid range [0, 1]}}
408 vqrdmulhq_lane_s32(a
, v
, 0);
409 vqrdmulhq_lane_s32(a
, v
, 1);
412 #if defined(__aarch64__)
413 void test_vqrdmulh_laneq(int32x2_t a
, int32x4_t v
) {
414 vqrdmulh_laneq_s32(a
, v
, -1); // expected-error {{argument value -1 is outside the valid range [0, 3]}}
415 vqrdmulh_laneq_s32(a
, v
, 4); // expected-error {{argument value 4 is outside the valid range [0, 3]}}
416 vqrdmulh_laneq_s32(a
, v
, 0);
417 vqrdmulh_laneq_s32(a
, v
, 3);
420 void test_vqrdmulhq_laneq(int32x4_t a
, int32x4_t v
) {
421 vqrdmulhq_laneq_s32(a
, v
, -1); // expected-error {{argument value -1 is outside the valid range [0, 3]}}
422 vqrdmulhq_laneq_s32(a
, v
, 4); // expected-error {{argument value 4 is outside the valid range [0, 3]}}
423 vqrdmulhq_laneq_s32(a
, v
, 0);
424 vqrdmulhq_laneq_s32(a
, v
, 3);