1084 lines · c
1// RUN: %clang_cc1 -triple aarch64-linux-gnu -target-feature +neon -ffreestanding -fsyntax-only -verify %s2 3#include <arm_neon.h>4// REQUIRES: aarch64-registered-target5 6 7void test_vector_shift_right_s8(int8x8_t arg_i8x8, int8x16_t arg_i8x16) {8 vshr_n_s8(arg_i8x8, 1);9 vshr_n_s8(arg_i8x8, 8);10 vshr_n_s8(arg_i8x8, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}}11 vshr_n_s8(arg_i8x8, 9); // expected-error-re {{argument value {{.*}} is outside the valid range}}12 13 vshrq_n_s8(arg_i8x16, 1);14 vshrq_n_s8(arg_i8x16, 8);15 vshrq_n_s8(arg_i8x16, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}}16 vshrq_n_s8(arg_i8x16, 9); // expected-error-re {{argument value {{.*}} is outside the valid range}}17 18}19 20void test_vector_shift_right_s16(int16x4_t arg_i16x4, int16x8_t arg_i16x8) {21 vshr_n_s16(arg_i16x4, 1);22 vshr_n_s16(arg_i16x4, 16);23 vshr_n_s16(arg_i16x4, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}}24 vshr_n_s16(arg_i16x4, 17); // expected-error-re {{argument value {{.*}} is outside the valid range}}25 26 vshrq_n_s16(arg_i16x8, 1);27 vshrq_n_s16(arg_i16x8, 16);28 vshrq_n_s16(arg_i16x8, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}}29 vshrq_n_s16(arg_i16x8, 17); // expected-error-re {{argument value {{.*}} is outside the valid range}}30 31}32 33void test_vector_shift_right_s32(int32x2_t arg_i32x2, int32x4_t arg_i32x4) {34 vshr_n_s32(arg_i32x2, 1);35 vshr_n_s32(arg_i32x2, 32);36 vshr_n_s32(arg_i32x2, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}}37 vshr_n_s32(arg_i32x2, 33); // expected-error-re {{argument value {{.*}} is outside the valid range}}38 39 vshrq_n_s32(arg_i32x4, 1);40 vshrq_n_s32(arg_i32x4, 32);41 vshrq_n_s32(arg_i32x4, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}}42 vshrq_n_s32(arg_i32x4, 33); // expected-error-re {{argument value {{.*}} is outside the valid range}}43 44}45 46void test_vector_shift_right_s64(int64_t arg_i64, int64x1_t arg_i64x1, int64x2_t arg_i64x2) {47 vshr_n_s64(arg_i64x1, 1);48 vshr_n_s64(arg_i64x1, 64);49 vshr_n_s64(arg_i64x1, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}}50 vshr_n_s64(arg_i64x1, 65); // expected-error-re {{argument value {{.*}} is outside the valid range}}51 52 vshrq_n_s64(arg_i64x2, 1);53 vshrq_n_s64(arg_i64x2, 64);54 vshrq_n_s64(arg_i64x2, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}}55 vshrq_n_s64(arg_i64x2, 65); // expected-error-re {{argument value {{.*}} is outside the valid range}}56 57 vshrd_n_s64(arg_i64, 1);58 vshrd_n_s64(arg_i64, 64);59 vshrd_n_s64(arg_i64, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}}60 vshrd_n_s64(arg_i64, 65); // expected-error-re {{argument value {{.*}} is outside the valid range}}61 62}63 64void test_vector_shift_right_u8(uint8x16_t arg_u8x16, uint8x8_t arg_u8x8) {65 vshr_n_u8(arg_u8x8, 1);66 vshr_n_u8(arg_u8x8, 8);67 vshr_n_u8(arg_u8x8, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}}68 vshr_n_u8(arg_u8x8, 9); // expected-error-re {{argument value {{.*}} is outside the valid range}}69 70 vshrq_n_u8(arg_u8x16, 1);71 vshrq_n_u8(arg_u8x16, 8);72 vshrq_n_u8(arg_u8x16, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}}73 vshrq_n_u8(arg_u8x16, 9); // expected-error-re {{argument value {{.*}} is outside the valid range}}74 75}76 77void test_vector_shift_right_u16(uint16x8_t arg_u16x8, uint16x4_t arg_u16x4) {78 vshr_n_u16(arg_u16x4, 1);79 vshr_n_u16(arg_u16x4, 16);80 vshr_n_u16(arg_u16x4, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}}81 vshr_n_u16(arg_u16x4, 17); // expected-error-re {{argument value {{.*}} is outside the valid range}}82 83 vshrq_n_u16(arg_u16x8, 1);84 vshrq_n_u16(arg_u16x8, 16);85 vshrq_n_u16(arg_u16x8, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}}86 vshrq_n_u16(arg_u16x8, 17); // expected-error-re {{argument value {{.*}} is outside the valid range}}87 88}89 90void test_vector_shift_right_u32(uint32x2_t arg_u32x2, uint32x4_t arg_u32x4) {91 vshr_n_u32(arg_u32x2, 1);92 vshr_n_u32(arg_u32x2, 32);93 vshr_n_u32(arg_u32x2, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}}94 vshr_n_u32(arg_u32x2, 33); // expected-error-re {{argument value {{.*}} is outside the valid range}}95 96 vshrq_n_u32(arg_u32x4, 1);97 vshrq_n_u32(arg_u32x4, 32);98 vshrq_n_u32(arg_u32x4, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}}99 vshrq_n_u32(arg_u32x4, 33); // expected-error-re {{argument value {{.*}} is outside the valid range}}100 101}102 103void test_vector_shift_right_u64(uint64x2_t arg_u64x2, uint64_t arg_u64, uint64x1_t arg_u64x1) {104 vshr_n_u64(arg_u64x1, 1);105 vshr_n_u64(arg_u64x1, 64);106 vshr_n_u64(arg_u64x1, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}}107 vshr_n_u64(arg_u64x1, 65); // expected-error-re {{argument value {{.*}} is outside the valid range}}108 109 vshrq_n_u64(arg_u64x2, 1);110 vshrq_n_u64(arg_u64x2, 64);111 vshrq_n_u64(arg_u64x2, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}}112 vshrq_n_u64(arg_u64x2, 65); // expected-error-re {{argument value {{.*}} is outside the valid range}}113 114 vshrd_n_u64(arg_u64, 1);115 vshrd_n_u64(arg_u64, 64);116 vshrd_n_u64(arg_u64, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}}117 vshrd_n_u64(arg_u64, 65); // expected-error-re {{argument value {{.*}} is outside the valid range}}118 119}120 121void test_vector_rounding_shift_right_s8(int8x8_t arg_i8x8, int8x16_t arg_i8x16) {122 vrshr_n_s8(arg_i8x8, 1);123 vrshr_n_s8(arg_i8x8, 8);124 vrshr_n_s8(arg_i8x8, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}}125 vrshr_n_s8(arg_i8x8, 9); // expected-error-re {{argument value {{.*}} is outside the valid range}}126 127 vrshrq_n_s8(arg_i8x16, 1);128 vrshrq_n_s8(arg_i8x16, 8);129 vrshrq_n_s8(arg_i8x16, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}}130 vrshrq_n_s8(arg_i8x16, 9); // expected-error-re {{argument value {{.*}} is outside the valid range}}131 132}133 134void test_vector_rounding_shift_right_s16(int16x4_t arg_i16x4, int16x8_t arg_i16x8) {135 vrshr_n_s16(arg_i16x4, 1);136 vrshr_n_s16(arg_i16x4, 16);137 vrshr_n_s16(arg_i16x4, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}}138 vrshr_n_s16(arg_i16x4, 17); // expected-error-re {{argument value {{.*}} is outside the valid range}}139 140 vrshrq_n_s16(arg_i16x8, 1);141 vrshrq_n_s16(arg_i16x8, 16);142 vrshrq_n_s16(arg_i16x8, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}}143 vrshrq_n_s16(arg_i16x8, 17); // expected-error-re {{argument value {{.*}} is outside the valid range}}144 145}146 147void test_vector_rounding_shift_right_s32(int32x2_t arg_i32x2, int32x4_t arg_i32x4) {148 vrshr_n_s32(arg_i32x2, 1);149 vrshr_n_s32(arg_i32x2, 32);150 vrshr_n_s32(arg_i32x2, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}}151 vrshr_n_s32(arg_i32x2, 33); // expected-error-re {{argument value {{.*}} is outside the valid range}}152 153 vrshrq_n_s32(arg_i32x4, 1);154 vrshrq_n_s32(arg_i32x4, 32);155 vrshrq_n_s32(arg_i32x4, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}}156 vrshrq_n_s32(arg_i32x4, 33); // expected-error-re {{argument value {{.*}} is outside the valid range}}157 158}159 160void test_vector_rounding_shift_right_s64(int64_t arg_i64, int64x1_t arg_i64x1, int64x2_t arg_i64x2) {161 vrshr_n_s64(arg_i64x1, 1);162 vrshr_n_s64(arg_i64x1, 64);163 vrshr_n_s64(arg_i64x1, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}}164 vrshr_n_s64(arg_i64x1, 65); // expected-error-re {{argument value {{.*}} is outside the valid range}}165 166 vrshrq_n_s64(arg_i64x2, 1);167 vrshrq_n_s64(arg_i64x2, 64);168 vrshrq_n_s64(arg_i64x2, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}}169 vrshrq_n_s64(arg_i64x2, 65); // expected-error-re {{argument value {{.*}} is outside the valid range}}170 171 vrshrd_n_s64(arg_i64, 1);172 vrshrd_n_s64(arg_i64, 64);173 vrshrd_n_s64(arg_i64, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}}174 vrshrd_n_s64(arg_i64, 65); // expected-error-re {{argument value {{.*}} is outside the valid range}}175 176}177 178void test_vector_rounding_shift_right_u8(uint8x16_t arg_u8x16, uint8x8_t arg_u8x8) {179 vrshr_n_u8(arg_u8x8, 1);180 vrshr_n_u8(arg_u8x8, 8);181 vrshr_n_u8(arg_u8x8, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}}182 vrshr_n_u8(arg_u8x8, 9); // expected-error-re {{argument value {{.*}} is outside the valid range}}183 184 vrshrq_n_u8(arg_u8x16, 1);185 vrshrq_n_u8(arg_u8x16, 8);186 vrshrq_n_u8(arg_u8x16, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}}187 vrshrq_n_u8(arg_u8x16, 9); // expected-error-re {{argument value {{.*}} is outside the valid range}}188 189}190 191void test_vector_rounding_shift_right_u16(uint16x8_t arg_u16x8, uint16x4_t arg_u16x4) {192 vrshr_n_u16(arg_u16x4, 1);193 vrshr_n_u16(arg_u16x4, 16);194 vrshr_n_u16(arg_u16x4, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}}195 vrshr_n_u16(arg_u16x4, 17); // expected-error-re {{argument value {{.*}} is outside the valid range}}196 197 vrshrq_n_u16(arg_u16x8, 1);198 vrshrq_n_u16(arg_u16x8, 16);199 vrshrq_n_u16(arg_u16x8, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}}200 vrshrq_n_u16(arg_u16x8, 17); // expected-error-re {{argument value {{.*}} is outside the valid range}}201 202}203 204void test_vector_rounding_shift_right_u32(uint32x2_t arg_u32x2, uint32x4_t arg_u32x4) {205 vrshr_n_u32(arg_u32x2, 1);206 vrshr_n_u32(arg_u32x2, 32);207 vrshr_n_u32(arg_u32x2, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}}208 vrshr_n_u32(arg_u32x2, 33); // expected-error-re {{argument value {{.*}} is outside the valid range}}209 210 vrshrq_n_u32(arg_u32x4, 1);211 vrshrq_n_u32(arg_u32x4, 32);212 vrshrq_n_u32(arg_u32x4, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}}213 vrshrq_n_u32(arg_u32x4, 33); // expected-error-re {{argument value {{.*}} is outside the valid range}}214 215}216 217void test_vector_rounding_shift_right_u64(uint64x2_t arg_u64x2, uint64_t arg_u64, uint64x1_t arg_u64x1) {218 vrshr_n_u64(arg_u64x1, 1);219 vrshr_n_u64(arg_u64x1, 64);220 vrshr_n_u64(arg_u64x1, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}}221 vrshr_n_u64(arg_u64x1, 65); // expected-error-re {{argument value {{.*}} is outside the valid range}}222 223 vrshrq_n_u64(arg_u64x2, 1);224 vrshrq_n_u64(arg_u64x2, 64);225 vrshrq_n_u64(arg_u64x2, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}}226 vrshrq_n_u64(arg_u64x2, 65); // expected-error-re {{argument value {{.*}} is outside the valid range}}227 228 vrshrd_n_u64(arg_u64, 1);229 vrshrd_n_u64(arg_u64, 64);230 vrshrd_n_u64(arg_u64, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}}231 vrshrd_n_u64(arg_u64, 65); // expected-error-re {{argument value {{.*}} is outside the valid range}}232 233}234 235void test_vector_shift_right_and_accumulate_s8(int8x8_t arg_i8x8, int8x16_t arg_i8x16) {236 vsra_n_s8(arg_i8x8, arg_i8x8, 1);237 vsra_n_s8(arg_i8x8, arg_i8x8, 8);238 vsra_n_s8(arg_i8x8, arg_i8x8, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}}239 vsra_n_s8(arg_i8x8, arg_i8x8, 9); // expected-error-re {{argument value {{.*}} is outside the valid range}}240 241 vsraq_n_s8(arg_i8x16, arg_i8x16, 1);242 vsraq_n_s8(arg_i8x16, arg_i8x16, 8);243 vsraq_n_s8(arg_i8x16, arg_i8x16, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}}244 vsraq_n_s8(arg_i8x16, arg_i8x16, 9); // expected-error-re {{argument value {{.*}} is outside the valid range}}245 246}247 248void test_vector_shift_right_and_accumulate_s16(int16x4_t arg_i16x4, int16x8_t arg_i16x8) {249 vsra_n_s16(arg_i16x4, arg_i16x4, 1);250 vsra_n_s16(arg_i16x4, arg_i16x4, 16);251 vsra_n_s16(arg_i16x4, arg_i16x4, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}}252 vsra_n_s16(arg_i16x4, arg_i16x4, 17); // expected-error-re {{argument value {{.*}} is outside the valid range}}253 254 vsraq_n_s16(arg_i16x8, arg_i16x8, 1);255 vsraq_n_s16(arg_i16x8, arg_i16x8, 16);256 vsraq_n_s16(arg_i16x8, arg_i16x8, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}}257 vsraq_n_s16(arg_i16x8, arg_i16x8, 17); // expected-error-re {{argument value {{.*}} is outside the valid range}}258 259}260 261void test_vector_shift_right_and_accumulate_s32(int32x2_t arg_i32x2, int32x4_t arg_i32x4) {262 vsra_n_s32(arg_i32x2, arg_i32x2, 1);263 vsra_n_s32(arg_i32x2, arg_i32x2, 32);264 vsra_n_s32(arg_i32x2, arg_i32x2, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}}265 vsra_n_s32(arg_i32x2, arg_i32x2, 33); // expected-error-re {{argument value {{.*}} is outside the valid range}}266 267 vsraq_n_s32(arg_i32x4, arg_i32x4, 1);268 vsraq_n_s32(arg_i32x4, arg_i32x4, 32);269 vsraq_n_s32(arg_i32x4, arg_i32x4, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}}270 vsraq_n_s32(arg_i32x4, arg_i32x4, 33); // expected-error-re {{argument value {{.*}} is outside the valid range}}271 272}273 274void test_vector_shift_right_and_accumulate_s64(int64_t arg_i64, int64x1_t arg_i64x1, int64x2_t arg_i64x2) {275 vsra_n_s64(arg_i64x1, arg_i64x1, 1);276 vsra_n_s64(arg_i64x1, arg_i64x1, 64);277 vsra_n_s64(arg_i64x1, arg_i64x1, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}}278 vsra_n_s64(arg_i64x1, arg_i64x1, 65); // expected-error-re {{argument value {{.*}} is outside the valid range}}279 280 vsraq_n_s64(arg_i64x2, arg_i64x2, 1);281 vsraq_n_s64(arg_i64x2, arg_i64x2, 64);282 vsraq_n_s64(arg_i64x2, arg_i64x2, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}}283 vsraq_n_s64(arg_i64x2, arg_i64x2, 65); // expected-error-re {{argument value {{.*}} is outside the valid range}}284 285 vsrad_n_s64(arg_i64, arg_i64, 1);286 vsrad_n_s64(arg_i64, arg_i64, 64);287 vsrad_n_s64(arg_i64, arg_i64, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}}288 vsrad_n_s64(arg_i64, arg_i64, 65); // expected-error-re {{argument value {{.*}} is outside the valid range}}289 290}291 292void test_vector_shift_right_and_accumulate_u8(uint8x16_t arg_u8x16, uint8x8_t arg_u8x8) {293 vsra_n_u8(arg_u8x8, arg_u8x8, 1);294 vsra_n_u8(arg_u8x8, arg_u8x8, 8);295 vsra_n_u8(arg_u8x8, arg_u8x8, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}}296 vsra_n_u8(arg_u8x8, arg_u8x8, 9); // expected-error-re {{argument value {{.*}} is outside the valid range}}297 298 vsraq_n_u8(arg_u8x16, arg_u8x16, 1);299 vsraq_n_u8(arg_u8x16, arg_u8x16, 8);300 vsraq_n_u8(arg_u8x16, arg_u8x16, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}}301 vsraq_n_u8(arg_u8x16, arg_u8x16, 9); // expected-error-re {{argument value {{.*}} is outside the valid range}}302 303}304 305void test_vector_shift_right_and_accumulate_u16(uint16x8_t arg_u16x8, uint16x4_t arg_u16x4) {306 vsra_n_u16(arg_u16x4, arg_u16x4, 1);307 vsra_n_u16(arg_u16x4, arg_u16x4, 16);308 vsra_n_u16(arg_u16x4, arg_u16x4, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}}309 vsra_n_u16(arg_u16x4, arg_u16x4, 17); // expected-error-re {{argument value {{.*}} is outside the valid range}}310 311 vsraq_n_u16(arg_u16x8, arg_u16x8, 1);312 vsraq_n_u16(arg_u16x8, arg_u16x8, 16);313 vsraq_n_u16(arg_u16x8, arg_u16x8, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}}314 vsraq_n_u16(arg_u16x8, arg_u16x8, 17); // expected-error-re {{argument value {{.*}} is outside the valid range}}315 316}317 318void test_vector_shift_right_and_accumulate_u32(uint32x2_t arg_u32x2, uint32x4_t arg_u32x4) {319 vsra_n_u32(arg_u32x2, arg_u32x2, 1);320 vsra_n_u32(arg_u32x2, arg_u32x2, 32);321 vsra_n_u32(arg_u32x2, arg_u32x2, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}}322 vsra_n_u32(arg_u32x2, arg_u32x2, 33); // expected-error-re {{argument value {{.*}} is outside the valid range}}323 324 vsraq_n_u32(arg_u32x4, arg_u32x4, 1);325 vsraq_n_u32(arg_u32x4, arg_u32x4, 32);326 vsraq_n_u32(arg_u32x4, arg_u32x4, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}}327 vsraq_n_u32(arg_u32x4, arg_u32x4, 33); // expected-error-re {{argument value {{.*}} is outside the valid range}}328 329}330 331void test_vector_shift_right_and_accumulate_u64(uint64x2_t arg_u64x2, uint64_t arg_u64, uint64x1_t arg_u64x1) {332 vsra_n_u64(arg_u64x1, arg_u64x1, 1);333 vsra_n_u64(arg_u64x1, arg_u64x1, 64);334 vsra_n_u64(arg_u64x1, arg_u64x1, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}}335 vsra_n_u64(arg_u64x1, arg_u64x1, 65); // expected-error-re {{argument value {{.*}} is outside the valid range}}336 337 vsraq_n_u64(arg_u64x2, arg_u64x2, 1);338 vsraq_n_u64(arg_u64x2, arg_u64x2, 64);339 vsraq_n_u64(arg_u64x2, arg_u64x2, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}}340 vsraq_n_u64(arg_u64x2, arg_u64x2, 65); // expected-error-re {{argument value {{.*}} is outside the valid range}}341 342 vsrad_n_u64(arg_u64, arg_u64, 1);343 vsrad_n_u64(arg_u64, arg_u64, 64);344 vsrad_n_u64(arg_u64, arg_u64, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}}345 vsrad_n_u64(arg_u64, arg_u64, 65); // expected-error-re {{argument value {{.*}} is outside the valid range}}346 347}348 349void test_vector_rounding_shift_right_and_accumulate_s8(int8x8_t arg_i8x8, int8x16_t arg_i8x16) {350 vrsra_n_s8(arg_i8x8, arg_i8x8, 1);351 vrsra_n_s8(arg_i8x8, arg_i8x8, 8);352 vrsra_n_s8(arg_i8x8, arg_i8x8, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}}353 vrsra_n_s8(arg_i8x8, arg_i8x8, 9); // expected-error-re {{argument value {{.*}} is outside the valid range}}354 355 vrsraq_n_s8(arg_i8x16, arg_i8x16, 1);356 vrsraq_n_s8(arg_i8x16, arg_i8x16, 8);357 vrsraq_n_s8(arg_i8x16, arg_i8x16, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}}358 vrsraq_n_s8(arg_i8x16, arg_i8x16, 9); // expected-error-re {{argument value {{.*}} is outside the valid range}}359 360}361 362void test_vector_rounding_shift_right_and_accumulate_s16(int16x4_t arg_i16x4, int16x8_t arg_i16x8) {363 vrsra_n_s16(arg_i16x4, arg_i16x4, 1);364 vrsra_n_s16(arg_i16x4, arg_i16x4, 16);365 vrsra_n_s16(arg_i16x4, arg_i16x4, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}}366 vrsra_n_s16(arg_i16x4, arg_i16x4, 17); // expected-error-re {{argument value {{.*}} is outside the valid range}}367 368 vrsraq_n_s16(arg_i16x8, arg_i16x8, 1);369 vrsraq_n_s16(arg_i16x8, arg_i16x8, 16);370 vrsraq_n_s16(arg_i16x8, arg_i16x8, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}}371 vrsraq_n_s16(arg_i16x8, arg_i16x8, 17); // expected-error-re {{argument value {{.*}} is outside the valid range}}372 373}374 375void test_vector_rounding_shift_right_and_accumulate_s32(int32x2_t arg_i32x2, int32x4_t arg_i32x4) {376 vrsra_n_s32(arg_i32x2, arg_i32x2, 1);377 vrsra_n_s32(arg_i32x2, arg_i32x2, 32);378 vrsra_n_s32(arg_i32x2, arg_i32x2, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}}379 vrsra_n_s32(arg_i32x2, arg_i32x2, 33); // expected-error-re {{argument value {{.*}} is outside the valid range}}380 381 vrsraq_n_s32(arg_i32x4, arg_i32x4, 1);382 vrsraq_n_s32(arg_i32x4, arg_i32x4, 32);383 vrsraq_n_s32(arg_i32x4, arg_i32x4, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}}384 vrsraq_n_s32(arg_i32x4, arg_i32x4, 33); // expected-error-re {{argument value {{.*}} is outside the valid range}}385 386}387 388void test_vector_rounding_shift_right_and_accumulate_s64(int64_t arg_i64, int64x1_t arg_i64x1, int64x2_t arg_i64x2) {389 vrsra_n_s64(arg_i64x1, arg_i64x1, 1);390 vrsra_n_s64(arg_i64x1, arg_i64x1, 64);391 vrsra_n_s64(arg_i64x1, arg_i64x1, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}}392 vrsra_n_s64(arg_i64x1, arg_i64x1, 65); // expected-error-re {{argument value {{.*}} is outside the valid range}}393 394 vrsraq_n_s64(arg_i64x2, arg_i64x2, 1);395 vrsraq_n_s64(arg_i64x2, arg_i64x2, 64);396 vrsraq_n_s64(arg_i64x2, arg_i64x2, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}}397 vrsraq_n_s64(arg_i64x2, arg_i64x2, 65); // expected-error-re {{argument value {{.*}} is outside the valid range}}398 399 vrsrad_n_s64(arg_i64, arg_i64, 1);400 vrsrad_n_s64(arg_i64, arg_i64, 64);401 vrsrad_n_s64(arg_i64, arg_i64, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}}402 vrsrad_n_s64(arg_i64, arg_i64, 65); // expected-error-re {{argument value {{.*}} is outside the valid range}}403 404}405 406void test_vector_rounding_shift_right_and_accumulate_u8(uint8x16_t arg_u8x16, uint8x8_t arg_u8x8) {407 vrsra_n_u8(arg_u8x8, arg_u8x8, 1);408 vrsra_n_u8(arg_u8x8, arg_u8x8, 8);409 vrsra_n_u8(arg_u8x8, arg_u8x8, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}}410 vrsra_n_u8(arg_u8x8, arg_u8x8, 9); // expected-error-re {{argument value {{.*}} is outside the valid range}}411 412 vrsraq_n_u8(arg_u8x16, arg_u8x16, 1);413 vrsraq_n_u8(arg_u8x16, arg_u8x16, 8);414 vrsraq_n_u8(arg_u8x16, arg_u8x16, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}}415 vrsraq_n_u8(arg_u8x16, arg_u8x16, 9); // expected-error-re {{argument value {{.*}} is outside the valid range}}416 417}418 419void test_vector_rounding_shift_right_and_accumulate_u16(uint16x8_t arg_u16x8, uint16x4_t arg_u16x4) {420 vrsra_n_u16(arg_u16x4, arg_u16x4, 1);421 vrsra_n_u16(arg_u16x4, arg_u16x4, 16);422 vrsra_n_u16(arg_u16x4, arg_u16x4, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}}423 vrsra_n_u16(arg_u16x4, arg_u16x4, 17); // expected-error-re {{argument value {{.*}} is outside the valid range}}424 425 vrsraq_n_u16(arg_u16x8, arg_u16x8, 1);426 vrsraq_n_u16(arg_u16x8, arg_u16x8, 16);427 vrsraq_n_u16(arg_u16x8, arg_u16x8, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}}428 vrsraq_n_u16(arg_u16x8, arg_u16x8, 17); // expected-error-re {{argument value {{.*}} is outside the valid range}}429 430}431 432void test_vector_rounding_shift_right_and_accumulate_u32(uint32x2_t arg_u32x2, uint32x4_t arg_u32x4) {433 vrsra_n_u32(arg_u32x2, arg_u32x2, 1);434 vrsra_n_u32(arg_u32x2, arg_u32x2, 32);435 vrsra_n_u32(arg_u32x2, arg_u32x2, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}}436 vrsra_n_u32(arg_u32x2, arg_u32x2, 33); // expected-error-re {{argument value {{.*}} is outside the valid range}}437 438 vrsraq_n_u32(arg_u32x4, arg_u32x4, 1);439 vrsraq_n_u32(arg_u32x4, arg_u32x4, 32);440 vrsraq_n_u32(arg_u32x4, arg_u32x4, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}}441 vrsraq_n_u32(arg_u32x4, arg_u32x4, 33); // expected-error-re {{argument value {{.*}} is outside the valid range}}442 443}444 445void test_vector_rounding_shift_right_and_accumulate_u64(uint64x2_t arg_u64x2, uint64_t arg_u64, uint64x1_t arg_u64x1) {446 vrsra_n_u64(arg_u64x1, arg_u64x1, 1);447 vrsra_n_u64(arg_u64x1, arg_u64x1, 64);448 vrsra_n_u64(arg_u64x1, arg_u64x1, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}}449 vrsra_n_u64(arg_u64x1, arg_u64x1, 65); // expected-error-re {{argument value {{.*}} is outside the valid range}}450 451 vrsraq_n_u64(arg_u64x2, arg_u64x2, 1);452 vrsraq_n_u64(arg_u64x2, arg_u64x2, 64);453 vrsraq_n_u64(arg_u64x2, arg_u64x2, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}}454 vrsraq_n_u64(arg_u64x2, arg_u64x2, 65); // expected-error-re {{argument value {{.*}} is outside the valid range}}455 456 vrsrad_n_u64(arg_u64, arg_u64, 1);457 vrsrad_n_u64(arg_u64, arg_u64, 64);458 vrsrad_n_u64(arg_u64, arg_u64, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}}459 vrsrad_n_u64(arg_u64, arg_u64, 65); // expected-error-re {{argument value {{.*}} is outside the valid range}}460 461}462 463void test_vector_shift_right_and_narrow_s16(int16x8_t arg_i16x8, int8x8_t arg_i8x8) {464 vshrn_n_s16(arg_i16x8, 1);465 vshrn_n_s16(arg_i16x8, 8);466 vshrn_n_s16(arg_i16x8, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}}467 vshrn_n_s16(arg_i16x8, 9); // expected-error-re {{argument value {{.*}} is outside the valid range}}468 469 vshrn_high_n_s16(arg_i8x8, arg_i16x8, 1);470 vshrn_high_n_s16(arg_i8x8, arg_i16x8, 8);471 vshrn_high_n_s16(arg_i8x8, arg_i16x8, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}}472 vshrn_high_n_s16(arg_i8x8, arg_i16x8, 9); // expected-error-re {{argument value {{.*}} is outside the valid range}}473 474}475 476void test_vector_shift_right_and_narrow_s32(int32x4_t arg_i32x4, int16x4_t arg_i16x4) {477 vshrn_n_s32(arg_i32x4, 1);478 vshrn_n_s32(arg_i32x4, 16);479 vshrn_n_s32(arg_i32x4, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}}480 vshrn_n_s32(arg_i32x4, 17); // expected-error-re {{argument value {{.*}} is outside the valid range}}481 482 vshrn_high_n_s32(arg_i16x4, arg_i32x4, 1);483 vshrn_high_n_s32(arg_i16x4, arg_i32x4, 16);484 vshrn_high_n_s32(arg_i16x4, arg_i32x4, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}}485 vshrn_high_n_s32(arg_i16x4, arg_i32x4, 17); // expected-error-re {{argument value {{.*}} is outside the valid range}}486 487}488 489void test_vector_shift_right_and_narrow_s64(int32x2_t arg_i32x2, int64x2_t arg_i64x2) {490 vshrn_n_s64(arg_i64x2, 1);491 vshrn_n_s64(arg_i64x2, 32);492 vshrn_n_s64(arg_i64x2, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}}493 vshrn_n_s64(arg_i64x2, 33); // expected-error-re {{argument value {{.*}} is outside the valid range}}494 495 vshrn_high_n_s64(arg_i32x2, arg_i64x2, 1);496 vshrn_high_n_s64(arg_i32x2, arg_i64x2, 32);497 vshrn_high_n_s64(arg_i32x2, arg_i64x2, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}}498 vshrn_high_n_s64(arg_i32x2, arg_i64x2, 33); // expected-error-re {{argument value {{.*}} is outside the valid range}}499 500}501 502void test_vector_shift_right_and_narrow_u16(uint16x8_t arg_u16x8, uint8x8_t arg_u8x8) {503 vshrn_n_u16(arg_u16x8, 1);504 vshrn_n_u16(arg_u16x8, 8);505 vshrn_n_u16(arg_u16x8, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}}506 vshrn_n_u16(arg_u16x8, 9); // expected-error-re {{argument value {{.*}} is outside the valid range}}507 508 vshrn_high_n_u16(arg_u8x8, arg_u16x8, 1);509 vshrn_high_n_u16(arg_u8x8, arg_u16x8, 8);510 vshrn_high_n_u16(arg_u8x8, arg_u16x8, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}}511 vshrn_high_n_u16(arg_u8x8, arg_u16x8, 9); // expected-error-re {{argument value {{.*}} is outside the valid range}}512 513}514 515void test_vector_shift_right_and_narrow_u32(uint32x4_t arg_u32x4, uint16x4_t arg_u16x4) {516 vshrn_n_u32(arg_u32x4, 1);517 vshrn_n_u32(arg_u32x4, 16);518 vshrn_n_u32(arg_u32x4, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}}519 vshrn_n_u32(arg_u32x4, 17); // expected-error-re {{argument value {{.*}} is outside the valid range}}520 521 vshrn_high_n_u32(arg_u16x4, arg_u32x4, 1);522 vshrn_high_n_u32(arg_u16x4, arg_u32x4, 16);523 vshrn_high_n_u32(arg_u16x4, arg_u32x4, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}}524 vshrn_high_n_u32(arg_u16x4, arg_u32x4, 17); // expected-error-re {{argument value {{.*}} is outside the valid range}}525 526}527 528void test_vector_shift_right_and_narrow_u64(uint64x2_t arg_u64x2, uint32x2_t arg_u32x2) {529 vshrn_n_u64(arg_u64x2, 1);530 vshrn_n_u64(arg_u64x2, 32);531 vshrn_n_u64(arg_u64x2, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}}532 vshrn_n_u64(arg_u64x2, 33); // expected-error-re {{argument value {{.*}} is outside the valid range}}533 534 vshrn_high_n_u64(arg_u32x2, arg_u64x2, 1);535 vshrn_high_n_u64(arg_u32x2, arg_u64x2, 32);536 vshrn_high_n_u64(arg_u32x2, arg_u64x2, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}}537 vshrn_high_n_u64(arg_u32x2, arg_u64x2, 33); // expected-error-re {{argument value {{.*}} is outside the valid range}}538 539}540 541void test_vector_saturating_shift_right_and_narrow_s16(int16x8_t arg_i16x8, uint8x8_t arg_u8x8, int16_t arg_i16, int8x8_t arg_i8x8) {542 vqshrun_n_s16(arg_i16x8, 1);543 vqshrun_n_s16(arg_i16x8, 8);544 vqshrun_n_s16(arg_i16x8, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}}545 vqshrun_n_s16(arg_i16x8, 9); // expected-error-re {{argument value {{.*}} is outside the valid range}}546 547 vqshrunh_n_s16(arg_i16, 1);548 vqshrunh_n_s16(arg_i16, 8);549 vqshrunh_n_s16(arg_i16, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}}550 vqshrunh_n_s16(arg_i16, 9); // expected-error-re {{argument value {{.*}} is outside the valid range}}551 552 vqshrun_high_n_s16(arg_u8x8, arg_i16x8, 1);553 vqshrun_high_n_s16(arg_u8x8, arg_i16x8, 8);554 vqshrun_high_n_s16(arg_u8x8, arg_i16x8, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}}555 vqshrun_high_n_s16(arg_u8x8, arg_i16x8, 9); // expected-error-re {{argument value {{.*}} is outside the valid range}}556 557 vqshrn_n_s16(arg_i16x8, 1);558 vqshrn_n_s16(arg_i16x8, 8);559 vqshrn_n_s16(arg_i16x8, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}}560 vqshrn_n_s16(arg_i16x8, 9); // expected-error-re {{argument value {{.*}} is outside the valid range}}561 562 vqshrnh_n_s16(arg_i16, 1);563 vqshrnh_n_s16(arg_i16, 8);564 vqshrnh_n_s16(arg_i16, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}}565 vqshrnh_n_s16(arg_i16, 9); // expected-error-re {{argument value {{.*}} is outside the valid range}}566 567 vqshrn_high_n_s16(arg_i8x8, arg_i16x8, 1);568 vqshrn_high_n_s16(arg_i8x8, arg_i16x8, 8);569 vqshrn_high_n_s16(arg_i8x8, arg_i16x8, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}}570 vqshrn_high_n_s16(arg_i8x8, arg_i16x8, 9); // expected-error-re {{argument value {{.*}} is outside the valid range}}571 572}573 574void test_vector_saturating_shift_right_and_narrow_s32(int16x4_t arg_i16x4, int32_t arg_i32, int32x4_t arg_i32x4, uint16x4_t arg_u16x4) {575 vqshrun_n_s32(arg_i32x4, 1);576 vqshrun_n_s32(arg_i32x4, 16);577 vqshrun_n_s32(arg_i32x4, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}}578 vqshrun_n_s32(arg_i32x4, 17); // expected-error-re {{argument value {{.*}} is outside the valid range}}579 580 vqshruns_n_s32(arg_i32, 1);581 vqshruns_n_s32(arg_i32, 16);582 vqshruns_n_s32(arg_i32, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}}583 vqshruns_n_s32(arg_i32, 17); // expected-error-re {{argument value {{.*}} is outside the valid range}}584 585 vqshrun_high_n_s32(arg_u16x4, arg_i32x4, 1);586 vqshrun_high_n_s32(arg_u16x4, arg_i32x4, 16);587 vqshrun_high_n_s32(arg_u16x4, arg_i32x4, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}}588 vqshrun_high_n_s32(arg_u16x4, arg_i32x4, 17); // expected-error-re {{argument value {{.*}} is outside the valid range}}589 590 vqshrn_n_s32(arg_i32x4, 1);591 vqshrn_n_s32(arg_i32x4, 16);592 vqshrn_n_s32(arg_i32x4, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}}593 vqshrn_n_s32(arg_i32x4, 17); // expected-error-re {{argument value {{.*}} is outside the valid range}}594 595 vqshrns_n_s32(arg_i32, 1);596 vqshrns_n_s32(arg_i32, 16);597 vqshrns_n_s32(arg_i32, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}}598 vqshrns_n_s32(arg_i32, 17); // expected-error-re {{argument value {{.*}} is outside the valid range}}599 600 vqshrn_high_n_s32(arg_i16x4, arg_i32x4, 1);601 vqshrn_high_n_s32(arg_i16x4, arg_i32x4, 16);602 vqshrn_high_n_s32(arg_i16x4, arg_i32x4, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}}603 vqshrn_high_n_s32(arg_i16x4, arg_i32x4, 17); // expected-error-re {{argument value {{.*}} is outside the valid range}}604 605}606 607void test_vector_saturating_shift_right_and_narrow_s64(uint32x2_t arg_u32x2, int64x2_t arg_i64x2, int32x2_t arg_i32x2, int64_t arg_i64) {608 vqshrun_n_s64(arg_i64x2, 1);609 vqshrun_n_s64(arg_i64x2, 32);610 vqshrun_n_s64(arg_i64x2, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}}611 vqshrun_n_s64(arg_i64x2, 33); // expected-error-re {{argument value {{.*}} is outside the valid range}}612 613 vqshrund_n_s64(arg_i64, 1);614 vqshrund_n_s64(arg_i64, 32);615 vqshrund_n_s64(arg_i64, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}}616 vqshrund_n_s64(arg_i64, 33); // expected-error-re {{argument value {{.*}} is outside the valid range}}617 618 vqshrun_high_n_s64(arg_u32x2, arg_i64x2, 1);619 vqshrun_high_n_s64(arg_u32x2, arg_i64x2, 32);620 vqshrun_high_n_s64(arg_u32x2, arg_i64x2, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}}621 vqshrun_high_n_s64(arg_u32x2, arg_i64x2, 33); // expected-error-re {{argument value {{.*}} is outside the valid range}}622 623 vqshrn_n_s64(arg_i64x2, 1);624 vqshrn_n_s64(arg_i64x2, 32);625 vqshrn_n_s64(arg_i64x2, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}}626 vqshrn_n_s64(arg_i64x2, 33); // expected-error-re {{argument value {{.*}} is outside the valid range}}627 628 vqshrnd_n_s64(arg_i64, 1);629 vqshrnd_n_s64(arg_i64, 32);630 vqshrnd_n_s64(arg_i64, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}}631 vqshrnd_n_s64(arg_i64, 33); // expected-error-re {{argument value {{.*}} is outside the valid range}}632 633 vqshrn_high_n_s64(arg_i32x2, arg_i64x2, 1);634 vqshrn_high_n_s64(arg_i32x2, arg_i64x2, 32);635 vqshrn_high_n_s64(arg_i32x2, arg_i64x2, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}}636 vqshrn_high_n_s64(arg_i32x2, arg_i64x2, 33); // expected-error-re {{argument value {{.*}} is outside the valid range}}637 638}639 640void test_vector_saturating_shift_right_and_narrow_u16(uint16x8_t arg_u16x8, uint16_t arg_u16, uint8x8_t arg_u8x8) {641 vqshrn_n_u16(arg_u16x8, 1);642 vqshrn_n_u16(arg_u16x8, 8);643 vqshrn_n_u16(arg_u16x8, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}}644 vqshrn_n_u16(arg_u16x8, 9); // expected-error-re {{argument value {{.*}} is outside the valid range}}645 646 vqshrnh_n_u16(arg_u16, 1);647 vqshrnh_n_u16(arg_u16, 8);648 vqshrnh_n_u16(arg_u16, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}}649 vqshrnh_n_u16(arg_u16, 9); // expected-error-re {{argument value {{.*}} is outside the valid range}}650 651 vqshrn_high_n_u16(arg_u8x8, arg_u16x8, 1);652 vqshrn_high_n_u16(arg_u8x8, arg_u16x8, 8);653 vqshrn_high_n_u16(arg_u8x8, arg_u16x8, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}}654 vqshrn_high_n_u16(arg_u8x8, arg_u16x8, 9); // expected-error-re {{argument value {{.*}} is outside the valid range}}655 656}657 658void test_vector_saturating_shift_right_and_narrow_u32(uint32x4_t arg_u32x4, uint32_t arg_u32, uint16x4_t arg_u16x4) {659 vqshrn_n_u32(arg_u32x4, 1);660 vqshrn_n_u32(arg_u32x4, 16);661 vqshrn_n_u32(arg_u32x4, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}}662 vqshrn_n_u32(arg_u32x4, 17); // expected-error-re {{argument value {{.*}} is outside the valid range}}663 664 vqshrns_n_u32(arg_u32, 1);665 vqshrns_n_u32(arg_u32, 16);666 vqshrns_n_u32(arg_u32, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}}667 vqshrns_n_u32(arg_u32, 17); // expected-error-re {{argument value {{.*}} is outside the valid range}}668 669 vqshrn_high_n_u32(arg_u16x4, arg_u32x4, 1);670 vqshrn_high_n_u32(arg_u16x4, arg_u32x4, 16);671 vqshrn_high_n_u32(arg_u16x4, arg_u32x4, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}}672 vqshrn_high_n_u32(arg_u16x4, arg_u32x4, 17); // expected-error-re {{argument value {{.*}} is outside the valid range}}673 674}675 676void test_vector_saturating_shift_right_and_narrow_u64(uint64x2_t arg_u64x2, uint32x2_t arg_u32x2, uint64_t arg_u64) {677 vqshrn_n_u64(arg_u64x2, 1);678 vqshrn_n_u64(arg_u64x2, 32);679 vqshrn_n_u64(arg_u64x2, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}}680 vqshrn_n_u64(arg_u64x2, 33); // expected-error-re {{argument value {{.*}} is outside the valid range}}681 682 vqshrnd_n_u64(arg_u64, 1);683 vqshrnd_n_u64(arg_u64, 32);684 vqshrnd_n_u64(arg_u64, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}}685 vqshrnd_n_u64(arg_u64, 33); // expected-error-re {{argument value {{.*}} is outside the valid range}}686 687 vqshrn_high_n_u64(arg_u32x2, arg_u64x2, 1);688 vqshrn_high_n_u64(arg_u32x2, arg_u64x2, 32);689 vqshrn_high_n_u64(arg_u32x2, arg_u64x2, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}}690 vqshrn_high_n_u64(arg_u32x2, arg_u64x2, 33); // expected-error-re {{argument value {{.*}} is outside the valid range}}691 692}693 694void test_vector_saturating_rounding_shift_right_and_narrow_s16(int16x8_t arg_i16x8, uint8x8_t arg_u8x8,695 int16_t arg_i16, int8x8_t arg_i8x8) {696 vqrshrun_n_s16(arg_i16x8, 1);697 vqrshrun_n_s16(arg_i16x8, 8);698 vqrshrun_n_s16(arg_i16x8, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}}699 vqrshrun_n_s16(arg_i16x8, 9); // expected-error-re {{argument value {{.*}} is outside the valid range}}700 701 vqrshrunh_n_s16(arg_i16, 1);702 vqrshrunh_n_s16(arg_i16, 8);703 vqrshrunh_n_s16(arg_i16, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}}704 vqrshrunh_n_s16(arg_i16, 9); // expected-error-re {{argument value {{.*}} is outside the valid range}}705 706 vqrshrun_high_n_s16(arg_u8x8, arg_i16x8, 1);707 vqrshrun_high_n_s16(arg_u8x8, arg_i16x8, 8);708 vqrshrun_high_n_s16(arg_u8x8, arg_i16x8, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}}709 vqrshrun_high_n_s16(arg_u8x8, arg_i16x8, 9); // expected-error-re {{argument value {{.*}} is outside the valid range}}710 711 vqrshrn_n_s16(arg_i16x8, 1);712 vqrshrn_n_s16(arg_i16x8, 8);713 vqrshrn_n_s16(arg_i16x8, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}}714 vqrshrn_n_s16(arg_i16x8, 9); // expected-error-re {{argument value {{.*}} is outside the valid range}}715 716 vqrshrnh_n_s16(arg_i16, 1);717 vqrshrnh_n_s16(arg_i16, 8);718 vqrshrnh_n_s16(arg_i16, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}}719 vqrshrnh_n_s16(arg_i16, 9); // expected-error-re {{argument value {{.*}} is outside the valid range}}720 721 vqrshrn_high_n_s16(arg_i8x8, arg_i16x8, 1);722 vqrshrn_high_n_s16(arg_i8x8, arg_i16x8, 8);723 vqrshrn_high_n_s16(arg_i8x8, arg_i16x8, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}}724 vqrshrn_high_n_s16(arg_i8x8, arg_i16x8, 9); // expected-error-re {{argument value {{.*}} is outside the valid range}}725 726}727 728void test_vector_saturating_rounding_shift_right_and_narrow_s32(int16x4_t arg_i16x4, int32_t arg_i32,729 int32x4_t arg_i32x4, uint16x4_t arg_u16x4) {730 vqrshrun_n_s32(arg_i32x4, 1);731 vqrshrun_n_s32(arg_i32x4, 16);732 vqrshrun_n_s32(arg_i32x4, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}}733 vqrshrun_n_s32(arg_i32x4, 17); // expected-error-re {{argument value {{.*}} is outside the valid range}}734 735 vqrshruns_n_s32(arg_i32, 1);736 vqrshruns_n_s32(arg_i32, 16);737 vqrshruns_n_s32(arg_i32, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}}738 vqrshruns_n_s32(arg_i32, 17); // expected-error-re {{argument value {{.*}} is outside the valid range}}739 740 vqrshrun_high_n_s32(arg_u16x4, arg_i32x4, 1);741 vqrshrun_high_n_s32(arg_u16x4, arg_i32x4, 16);742 vqrshrun_high_n_s32(arg_u16x4, arg_i32x4, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}}743 vqrshrun_high_n_s32(arg_u16x4, arg_i32x4, 17); // expected-error-re {{argument value {{.*}} is outside the valid range}}744 745 vqrshrn_n_s32(arg_i32x4, 1);746 vqrshrn_n_s32(arg_i32x4, 16);747 vqrshrn_n_s32(arg_i32x4, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}}748 vqrshrn_n_s32(arg_i32x4, 17); // expected-error-re {{argument value {{.*}} is outside the valid range}}749 750 vqrshrns_n_s32(arg_i32, 1);751 vqrshrns_n_s32(arg_i32, 16);752 vqrshrns_n_s32(arg_i32, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}}753 vqrshrns_n_s32(arg_i32, 17); // expected-error-re {{argument value {{.*}} is outside the valid range}}754 755 vqrshrn_high_n_s32(arg_i16x4, arg_i32x4, 1);756 vqrshrn_high_n_s32(arg_i16x4, arg_i32x4, 16);757 vqrshrn_high_n_s32(arg_i16x4, arg_i32x4, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}}758 vqrshrn_high_n_s32(arg_i16x4, arg_i32x4, 17); // expected-error-re {{argument value {{.*}} is outside the valid range}}759 760}761 762void test_vector_saturating_rounding_shift_right_and_narrow_s64(uint32x2_t arg_u32x2, int64x2_t arg_i64x2,763 int32x2_t arg_i32x2, int64_t arg_i64) {764 vqrshrun_n_s64(arg_i64x2, 1);765 vqrshrun_n_s64(arg_i64x2, 32);766 vqrshrun_n_s64(arg_i64x2, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}}767 vqrshrun_n_s64(arg_i64x2, 33); // expected-error-re {{argument value {{.*}} is outside the valid range}}768 769 vqrshrund_n_s64(arg_i64, 1);770 vqrshrund_n_s64(arg_i64, 32);771 vqrshrund_n_s64(arg_i64, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}}772 vqrshrund_n_s64(arg_i64, 33); // expected-error-re {{argument value {{.*}} is outside the valid range}}773 774 vqrshrun_high_n_s64(arg_u32x2, arg_i64x2, 1);775 vqrshrun_high_n_s64(arg_u32x2, arg_i64x2, 32);776 vqrshrun_high_n_s64(arg_u32x2, arg_i64x2, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}}777 vqrshrun_high_n_s64(arg_u32x2, arg_i64x2, 33); // expected-error-re {{argument value {{.*}} is outside the valid range}}778 779 vqrshrn_n_s64(arg_i64x2, 1);780 vqrshrn_n_s64(arg_i64x2, 32);781 vqrshrn_n_s64(arg_i64x2, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}}782 vqrshrn_n_s64(arg_i64x2, 33); // expected-error-re {{argument value {{.*}} is outside the valid range}}783 784 vqrshrnd_n_s64(arg_i64, 1);785 vqrshrnd_n_s64(arg_i64, 32);786 vqrshrnd_n_s64(arg_i64, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}}787 vqrshrnd_n_s64(arg_i64, 33); // expected-error-re {{argument value {{.*}} is outside the valid range}}788 789 vqrshrn_high_n_s64(arg_i32x2, arg_i64x2, 1);790 vqrshrn_high_n_s64(arg_i32x2, arg_i64x2, 32);791 vqrshrn_high_n_s64(arg_i32x2, arg_i64x2, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}}792 vqrshrn_high_n_s64(arg_i32x2, arg_i64x2, 33); // expected-error-re {{argument value {{.*}} is outside the valid range}}793 794}795 796void test_vector_saturating_rounding_shift_right_and_narrow_u16(uint16x8_t arg_u16x8, uint16_t arg_u16,797 uint8x8_t arg_u8x8) {798 vqrshrn_n_u16(arg_u16x8, 1);799 vqrshrn_n_u16(arg_u16x8, 8);800 vqrshrn_n_u16(arg_u16x8, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}}801 vqrshrn_n_u16(arg_u16x8, 9); // expected-error-re {{argument value {{.*}} is outside the valid range}}802 803 vqrshrnh_n_u16(arg_u16, 1);804 vqrshrnh_n_u16(arg_u16, 8);805 vqrshrnh_n_u16(arg_u16, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}}806 vqrshrnh_n_u16(arg_u16, 9); // expected-error-re {{argument value {{.*}} is outside the valid range}}807 808 vqrshrn_high_n_u16(arg_u8x8, arg_u16x8, 1);809 vqrshrn_high_n_u16(arg_u8x8, arg_u16x8, 8);810 vqrshrn_high_n_u16(arg_u8x8, arg_u16x8, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}}811 vqrshrn_high_n_u16(arg_u8x8, arg_u16x8, 9); // expected-error-re {{argument value {{.*}} is outside the valid range}}812 813}814 815void test_vector_saturating_rounding_shift_right_and_narrow_u32(uint32x4_t arg_u32x4, uint32_t arg_u32,816 uint16x4_t arg_u16x4) {817 vqrshrn_n_u32(arg_u32x4, 1);818 vqrshrn_n_u32(arg_u32x4, 16);819 vqrshrn_n_u32(arg_u32x4, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}}820 vqrshrn_n_u32(arg_u32x4, 17); // expected-error-re {{argument value {{.*}} is outside the valid range}}821 822 vqrshrns_n_u32(arg_u32, 1);823 vqrshrns_n_u32(arg_u32, 16);824 vqrshrns_n_u32(arg_u32, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}}825 vqrshrns_n_u32(arg_u32, 17); // expected-error-re {{argument value {{.*}} is outside the valid range}}826 827 vqrshrn_high_n_u32(arg_u16x4, arg_u32x4, 1);828 vqrshrn_high_n_u32(arg_u16x4, arg_u32x4, 16);829 vqrshrn_high_n_u32(arg_u16x4, arg_u32x4, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}}830 vqrshrn_high_n_u32(arg_u16x4, arg_u32x4, 17); // expected-error-re {{argument value {{.*}} is outside the valid range}}831 832}833 834void test_vector_saturating_rounding_shift_right_and_narrow_u64(uint64x2_t arg_u64x2, uint32x2_t arg_u32x2,835 uint64_t arg_u64) {836 vqrshrn_n_u64(arg_u64x2, 1);837 vqrshrn_n_u64(arg_u64x2, 32);838 vqrshrn_n_u64(arg_u64x2, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}}839 vqrshrn_n_u64(arg_u64x2, 33); // expected-error-re {{argument value {{.*}} is outside the valid range}}840 841 vqrshrnd_n_u64(arg_u64, 1);842 vqrshrnd_n_u64(arg_u64, 32);843 vqrshrnd_n_u64(arg_u64, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}}844 vqrshrnd_n_u64(arg_u64, 33); // expected-error-re {{argument value {{.*}} is outside the valid range}}845 846 vqrshrn_high_n_u64(arg_u32x2, arg_u64x2, 1);847 vqrshrn_high_n_u64(arg_u32x2, arg_u64x2, 32);848 vqrshrn_high_n_u64(arg_u32x2, arg_u64x2, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}}849 vqrshrn_high_n_u64(arg_u32x2, arg_u64x2, 33); // expected-error-re {{argument value {{.*}} is outside the valid range}}850 851}852 853void test_vector_rounding_shift_right_and_narrow_s16(int16x8_t arg_i16x8, int8x8_t arg_i8x8) {854 vrshrn_n_s16(arg_i16x8, 1);855 vrshrn_n_s16(arg_i16x8, 8);856 vrshrn_n_s16(arg_i16x8, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}}857 vrshrn_n_s16(arg_i16x8, 9); // expected-error-re {{argument value {{.*}} is outside the valid range}}858 859 vrshrn_high_n_s16(arg_i8x8, arg_i16x8, 1);860 vrshrn_high_n_s16(arg_i8x8, arg_i16x8, 8);861 vrshrn_high_n_s16(arg_i8x8, arg_i16x8, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}}862 vrshrn_high_n_s16(arg_i8x8, arg_i16x8, 9); // expected-error-re {{argument value {{.*}} is outside the valid range}}863 864}865 866void test_vector_rounding_shift_right_and_narrow_s32(int32x4_t arg_i32x4, int16x4_t arg_i16x4) {867 vrshrn_n_s32(arg_i32x4, 1);868 vrshrn_n_s32(arg_i32x4, 16);869 vrshrn_n_s32(arg_i32x4, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}}870 vrshrn_n_s32(arg_i32x4, 17); // expected-error-re {{argument value {{.*}} is outside the valid range}}871 872 vrshrn_high_n_s32(arg_i16x4, arg_i32x4, 1);873 vrshrn_high_n_s32(arg_i16x4, arg_i32x4, 16);874 vrshrn_high_n_s32(arg_i16x4, arg_i32x4, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}}875 vrshrn_high_n_s32(arg_i16x4, arg_i32x4, 17); // expected-error-re {{argument value {{.*}} is outside the valid range}}876 877}878 879void test_vector_rounding_shift_right_and_narrow_s64(int32x2_t arg_i32x2, int64x2_t arg_i64x2) {880 vrshrn_n_s64(arg_i64x2, 1);881 vrshrn_n_s64(arg_i64x2, 32);882 vrshrn_n_s64(arg_i64x2, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}}883 vrshrn_n_s64(arg_i64x2, 33); // expected-error-re {{argument value {{.*}} is outside the valid range}}884 885 vrshrn_high_n_s64(arg_i32x2, arg_i64x2, 1);886 vrshrn_high_n_s64(arg_i32x2, arg_i64x2, 32);887 vrshrn_high_n_s64(arg_i32x2, arg_i64x2, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}}888 vrshrn_high_n_s64(arg_i32x2, arg_i64x2, 33); // expected-error-re {{argument value {{.*}} is outside the valid range}}889 890}891 892void test_vector_rounding_shift_right_and_narrow_u16(uint16x8_t arg_u16x8, uint8x8_t arg_u8x8) {893 vrshrn_n_u16(arg_u16x8, 1);894 vrshrn_n_u16(arg_u16x8, 8);895 vrshrn_n_u16(arg_u16x8, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}}896 vrshrn_n_u16(arg_u16x8, 9); // expected-error-re {{argument value {{.*}} is outside the valid range}}897 898 vrshrn_high_n_u16(arg_u8x8, arg_u16x8, 1);899 vrshrn_high_n_u16(arg_u8x8, arg_u16x8, 8);900 vrshrn_high_n_u16(arg_u8x8, arg_u16x8, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}}901 vrshrn_high_n_u16(arg_u8x8, arg_u16x8, 9); // expected-error-re {{argument value {{.*}} is outside the valid range}}902 903}904 905void test_vector_rounding_shift_right_and_narrow_u32(uint32x4_t arg_u32x4, uint16x4_t arg_u16x4) {906 vrshrn_n_u32(arg_u32x4, 1);907 vrshrn_n_u32(arg_u32x4, 16);908 vrshrn_n_u32(arg_u32x4, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}}909 vrshrn_n_u32(arg_u32x4, 17); // expected-error-re {{argument value {{.*}} is outside the valid range}}910 911 vrshrn_high_n_u32(arg_u16x4, arg_u32x4, 1);912 vrshrn_high_n_u32(arg_u16x4, arg_u32x4, 16);913 vrshrn_high_n_u32(arg_u16x4, arg_u32x4, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}}914 vrshrn_high_n_u32(arg_u16x4, arg_u32x4, 17); // expected-error-re {{argument value {{.*}} is outside the valid range}}915 916}917 918void test_vector_rounding_shift_right_and_narrow_u64(uint64x2_t arg_u64x2, uint32x2_t arg_u32x2) {919 vrshrn_n_u64(arg_u64x2, 1);920 vrshrn_n_u64(arg_u64x2, 32);921 vrshrn_n_u64(arg_u64x2, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}}922 vrshrn_n_u64(arg_u64x2, 33); // expected-error-re {{argument value {{.*}} is outside the valid range}}923 924 vrshrn_high_n_u64(arg_u32x2, arg_u64x2, 1);925 vrshrn_high_n_u64(arg_u32x2, arg_u64x2, 32);926 vrshrn_high_n_u64(arg_u32x2, arg_u64x2, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}}927 vrshrn_high_n_u64(arg_u32x2, arg_u64x2, 33); // expected-error-re {{argument value {{.*}} is outside the valid range}}928 929}930 931void test_vector_shift_right_and_insert_s8(int8x8_t arg_i8x8, int8x16_t arg_i8x16) {932 vsri_n_s8(arg_i8x8, arg_i8x8, 1);933 vsri_n_s8(arg_i8x8, arg_i8x8, 8);934 vsri_n_s8(arg_i8x8, arg_i8x8, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}}935 vsri_n_s8(arg_i8x8, arg_i8x8, 9); // expected-error-re {{argument value {{.*}} is outside the valid range}}936 937 vsriq_n_s8(arg_i8x16, arg_i8x16, 1);938 vsriq_n_s8(arg_i8x16, arg_i8x16, 8);939 vsriq_n_s8(arg_i8x16, arg_i8x16, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}}940 vsriq_n_s8(arg_i8x16, arg_i8x16, 9); // expected-error-re {{argument value {{.*}} is outside the valid range}}941 942}943 944void test_vector_shift_right_and_insert_s16(int16x4_t arg_i16x4, int16x8_t arg_i16x8) {945 vsri_n_s16(arg_i16x4, arg_i16x4, 1);946 vsri_n_s16(arg_i16x4, arg_i16x4, 16);947 vsri_n_s16(arg_i16x4, arg_i16x4, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}}948 vsri_n_s16(arg_i16x4, arg_i16x4, 17); // expected-error-re {{argument value {{.*}} is outside the valid range}}949 950 vsriq_n_s16(arg_i16x8, arg_i16x8, 1);951 vsriq_n_s16(arg_i16x8, arg_i16x8, 16);952 vsriq_n_s16(arg_i16x8, arg_i16x8, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}}953 vsriq_n_s16(arg_i16x8, arg_i16x8, 17); // expected-error-re {{argument value {{.*}} is outside the valid range}}954 955}956 957void test_vector_shift_right_and_insert_s32(int32x2_t arg_i32x2, int32x4_t arg_i32x4) {958 vsri_n_s32(arg_i32x2, arg_i32x2, 1);959 vsri_n_s32(arg_i32x2, arg_i32x2, 32);960 vsri_n_s32(arg_i32x2, arg_i32x2, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}}961 vsri_n_s32(arg_i32x2, arg_i32x2, 33); // expected-error-re {{argument value {{.*}} is outside the valid range}}962 963 vsriq_n_s32(arg_i32x4, arg_i32x4, 1);964 vsriq_n_s32(arg_i32x4, arg_i32x4, 32);965 vsriq_n_s32(arg_i32x4, arg_i32x4, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}}966 vsriq_n_s32(arg_i32x4, arg_i32x4, 33); // expected-error-re {{argument value {{.*}} is outside the valid range}}967 968}969 970void test_vector_shift_right_and_insert_s64(int64_t arg_i64, int64x1_t arg_i64x1, int64x2_t arg_i64x2) {971 vsri_n_s64(arg_i64x1, arg_i64x1, 1);972 vsri_n_s64(arg_i64x1, arg_i64x1, 64);973 vsri_n_s64(arg_i64x1, arg_i64x1, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}}974 vsri_n_s64(arg_i64x1, arg_i64x1, 65); // expected-error-re {{argument value {{.*}} is outside the valid range}}975 976 vsriq_n_s64(arg_i64x2, arg_i64x2, 1);977 vsriq_n_s64(arg_i64x2, arg_i64x2, 64);978 vsriq_n_s64(arg_i64x2, arg_i64x2, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}}979 vsriq_n_s64(arg_i64x2, arg_i64x2, 65); // expected-error-re {{argument value {{.*}} is outside the valid range}}980 981 vsrid_n_s64(arg_i64, arg_i64, 1);982 vsrid_n_s64(arg_i64, arg_i64, 64);983 vsrid_n_s64(arg_i64, arg_i64, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}}984 vsrid_n_s64(arg_i64, arg_i64, 65); // expected-error-re {{argument value {{.*}} is outside the valid range}}985 986}987 988void test_vector_shift_right_and_insert_u8(uint8x16_t arg_u8x16, uint8x8_t arg_u8x8) {989 vsri_n_u8(arg_u8x8, arg_u8x8, 1);990 vsri_n_u8(arg_u8x8, arg_u8x8, 8);991 vsri_n_u8(arg_u8x8, arg_u8x8, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}}992 vsri_n_u8(arg_u8x8, arg_u8x8, 9); // expected-error-re {{argument value {{.*}} is outside the valid range}}993 994 vsriq_n_u8(arg_u8x16, arg_u8x16, 1);995 vsriq_n_u8(arg_u8x16, arg_u8x16, 8);996 vsriq_n_u8(arg_u8x16, arg_u8x16, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}}997 vsriq_n_u8(arg_u8x16, arg_u8x16, 9); // expected-error-re {{argument value {{.*}} is outside the valid range}}998 999}1000 1001void test_vector_shift_right_and_insert_u16(uint16x8_t arg_u16x8, uint16x4_t arg_u16x4) {1002 vsri_n_u16(arg_u16x4, arg_u16x4, 1);1003 vsri_n_u16(arg_u16x4, arg_u16x4, 16);1004 vsri_n_u16(arg_u16x4, arg_u16x4, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}}1005 vsri_n_u16(arg_u16x4, arg_u16x4, 17); // expected-error-re {{argument value {{.*}} is outside the valid range}}1006 1007 vsriq_n_u16(arg_u16x8, arg_u16x8, 1);1008 vsriq_n_u16(arg_u16x8, arg_u16x8, 16);1009 vsriq_n_u16(arg_u16x8, arg_u16x8, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}}1010 vsriq_n_u16(arg_u16x8, arg_u16x8, 17); // expected-error-re {{argument value {{.*}} is outside the valid range}}1011 1012}1013 1014void test_vector_shift_right_and_insert_u32(uint32x2_t arg_u32x2, uint32x4_t arg_u32x4) {1015 vsri_n_u32(arg_u32x2, arg_u32x2, 1);1016 vsri_n_u32(arg_u32x2, arg_u32x2, 32);1017 vsri_n_u32(arg_u32x2, arg_u32x2, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}}1018 vsri_n_u32(arg_u32x2, arg_u32x2, 33); // expected-error-re {{argument value {{.*}} is outside the valid range}}1019 1020 vsriq_n_u32(arg_u32x4, arg_u32x4, 1);1021 vsriq_n_u32(arg_u32x4, arg_u32x4, 32);1022 vsriq_n_u32(arg_u32x4, arg_u32x4, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}}1023 vsriq_n_u32(arg_u32x4, arg_u32x4, 33); // expected-error-re {{argument value {{.*}} is outside the valid range}}1024 1025}1026 1027void test_vector_shift_right_and_insert_u64(uint64x2_t arg_u64x2, uint64_t arg_u64, uint64x1_t arg_u64x1) {1028 vsri_n_u64(arg_u64x1, arg_u64x1, 1);1029 vsri_n_u64(arg_u64x1, arg_u64x1, 64);1030 vsri_n_u64(arg_u64x1, arg_u64x1, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}}1031 vsri_n_u64(arg_u64x1, arg_u64x1, 65); // expected-error-re {{argument value {{.*}} is outside the valid range}}1032 1033 vsriq_n_u64(arg_u64x2, arg_u64x2, 1);1034 vsriq_n_u64(arg_u64x2, arg_u64x2, 64);1035 vsriq_n_u64(arg_u64x2, arg_u64x2, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}}1036 vsriq_n_u64(arg_u64x2, arg_u64x2, 65); // expected-error-re {{argument value {{.*}} is outside the valid range}}1037 1038 vsrid_n_u64(arg_u64, arg_u64, 1);1039 vsrid_n_u64(arg_u64, arg_u64, 64);1040 vsrid_n_u64(arg_u64, arg_u64, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}}1041 vsrid_n_u64(arg_u64, arg_u64, 65); // expected-error-re {{argument value {{.*}} is outside the valid range}}1042 1043}1044 1045void test_vector_shift_right_and_insert_p64(poly64x2_t arg_p64x2, poly64x1_t arg_p64x1) {1046 vsri_n_p64(arg_p64x1, arg_p64x1, 1);1047 vsri_n_p64(arg_p64x1, arg_p64x1, 64);1048 vsri_n_p64(arg_p64x1, arg_p64x1, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}}1049 vsri_n_p64(arg_p64x1, arg_p64x1, 65); // expected-error-re {{argument value {{.*}} is outside the valid range}}1050 1051 vsriq_n_p64(arg_p64x2, arg_p64x2, 1);1052 vsriq_n_p64(arg_p64x2, arg_p64x2, 64);1053 vsriq_n_p64(arg_p64x2, arg_p64x2, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}}1054 vsriq_n_p64(arg_p64x2, arg_p64x2, 65); // expected-error-re {{argument value {{.*}} is outside the valid range}}1055 1056}1057 1058void test_vector_shift_right_and_insert_p8(poly8x16_t arg_p8x16, poly8x8_t arg_p8x8) {1059 vsri_n_p8(arg_p8x8, arg_p8x8, 1);1060 vsri_n_p8(arg_p8x8, arg_p8x8, 8);1061 vsri_n_p8(arg_p8x8, arg_p8x8, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}}1062 vsri_n_p8(arg_p8x8, arg_p8x8, 9); // expected-error-re {{argument value {{.*}} is outside the valid range}}1063 1064 vsriq_n_p8(arg_p8x16, arg_p8x16, 1);1065 vsriq_n_p8(arg_p8x16, arg_p8x16, 8);1066 vsriq_n_p8(arg_p8x16, arg_p8x16, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}}1067 vsriq_n_p8(arg_p8x16, arg_p8x16, 9); // expected-error-re {{argument value {{.*}} is outside the valid range}}1068 1069}1070 1071void test_vector_shift_right_and_insert_p16(poly16x4_t arg_p16x4, poly16x8_t arg_p16x8) {1072 vsri_n_p16(arg_p16x4, arg_p16x4, 1);1073 vsri_n_p16(arg_p16x4, arg_p16x4, 16);1074 vsri_n_p16(arg_p16x4, arg_p16x4, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}}1075 vsri_n_p16(arg_p16x4, arg_p16x4, 17); // expected-error-re {{argument value {{.*}} is outside the valid range}}1076 1077 vsriq_n_p16(arg_p16x8, arg_p16x8, 1);1078 vsriq_n_p16(arg_p16x8, arg_p16x8, 16);1079 vsriq_n_p16(arg_p16x8, arg_p16x8, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}}1080 vsriq_n_p16(arg_p16x8, arg_p16x8, 17); // expected-error-re {{argument value {{.*}} is outside the valid range}}1081 1082}1083 1084