brintos

brintos / llvm-project-archived public Read only

0
0
Text · 56.1 KiB · ad4677f Raw
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