brintos

brintos / llvm-project-archived public Read only

0
0
Text · 31.9 KiB · aafd36d Raw
499 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_copy_vector_lane_s8(int8x16_t arg_i8x16, int8x8_t arg_i8x8) {8	vcopy_lane_s8(arg_i8x8, 0, arg_i8x8, 0);9 10	vcopy_lane_s8(arg_i8x8, 7, arg_i8x8, 0);11	vcopy_lane_s8(arg_i8x8, -1, arg_i8x8, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}}12	vcopy_lane_s8(arg_i8x8, 8, arg_i8x8, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}}13 14	vcopy_lane_s8(arg_i8x8, 0, arg_i8x8, 7);15	vcopy_lane_s8(arg_i8x8, 0, arg_i8x8, -1); // expected-error-re {{argument value {{.*}} is outside the valid range}}16	vcopy_lane_s8(arg_i8x8, 0, arg_i8x8, 8); // expected-error-re {{argument value {{.*}} is outside the valid range}}17 18	vcopyq_lane_s8(arg_i8x16, 0, arg_i8x8, 0);19	vcopyq_lane_s8(arg_i8x16, 15, arg_i8x8, 0);20	vcopyq_lane_s8(arg_i8x16, -1, arg_i8x8, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}}21	vcopyq_lane_s8(arg_i8x16, 16, arg_i8x8, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}}22 23	vcopyq_lane_s8(arg_i8x16, 0, arg_i8x8, 7);24	vcopyq_lane_s8(arg_i8x16, 0, arg_i8x8, -1); // expected-error-re {{argument value {{.*}} is outside the valid range}}25	vcopyq_lane_s8(arg_i8x16, 0, arg_i8x8, 8); // expected-error-re {{argument value {{.*}} is outside the valid range}}26 27	vcopy_laneq_s8(arg_i8x8, 0, arg_i8x16, 0);28	vcopy_laneq_s8(arg_i8x8, 7, arg_i8x16, 0);29	vcopy_laneq_s8(arg_i8x8, -1, arg_i8x16, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}}30	vcopy_laneq_s8(arg_i8x8, 8, arg_i8x16, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}}31 32	vcopy_laneq_s8(arg_i8x8, 0, arg_i8x16, 15);33	vcopy_laneq_s8(arg_i8x8, 0, arg_i8x16, -1); // expected-error-re {{argument value {{.*}} is outside the valid range}}34	vcopy_laneq_s8(arg_i8x8, 0, arg_i8x16, 16); // expected-error-re {{argument value {{.*}} is outside the valid range}}35 36	vcopyq_laneq_s8(arg_i8x16, 0, arg_i8x16, 0);37	vcopyq_laneq_s8(arg_i8x16, 15, arg_i8x16, 0);38	vcopyq_laneq_s8(arg_i8x16, -1, arg_i8x16, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}}39	vcopyq_laneq_s8(arg_i8x16, 16, arg_i8x16, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}}40 41	vcopyq_laneq_s8(arg_i8x16, 0, arg_i8x16, 15);42	vcopyq_laneq_s8(arg_i8x16, 0, arg_i8x16, -1); // expected-error-re {{argument value {{.*}} is outside the valid range}}43	vcopyq_laneq_s8(arg_i8x16, 0, arg_i8x16, 16); // expected-error-re {{argument value {{.*}} is outside the valid range}}44 45}46 47void test_copy_vector_lane_s16(int16x4_t arg_i16x4, int16x8_t arg_i16x8) {48	vcopy_lane_s16(arg_i16x4, 0, arg_i16x4, 0);49	vcopy_lane_s16(arg_i16x4, 3, arg_i16x4, 0);50	vcopy_lane_s16(arg_i16x4, -1, arg_i16x4, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}}51	vcopy_lane_s16(arg_i16x4, 4, arg_i16x4, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}}52 53	vcopy_lane_s16(arg_i16x4, 0, arg_i16x4, 3);54	vcopy_lane_s16(arg_i16x4, 0, arg_i16x4, -1); // expected-error-re {{argument value {{.*}} is outside the valid range}}55	vcopy_lane_s16(arg_i16x4, 0, arg_i16x4, 4); // expected-error-re {{argument value {{.*}} is outside the valid range}}56 57	vcopyq_lane_s16(arg_i16x8, 0, arg_i16x4, 0);58	vcopyq_lane_s16(arg_i16x8, 7, arg_i16x4, 0);59	vcopyq_lane_s16(arg_i16x8, -1, arg_i16x4, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}}60	vcopyq_lane_s16(arg_i16x8, 8, arg_i16x4, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}}61 62	vcopyq_lane_s16(arg_i16x8, 0, arg_i16x4, 3);63	vcopyq_lane_s16(arg_i16x8, 0, arg_i16x4, -1); // expected-error-re {{argument value {{.*}} is outside the valid range}}64	vcopyq_lane_s16(arg_i16x8, 0, arg_i16x4, 4); // expected-error-re {{argument value {{.*}} is outside the valid range}}65 66	vcopy_laneq_s16(arg_i16x4, 0, arg_i16x8, 0);67	vcopy_laneq_s16(arg_i16x4, 3, arg_i16x8, 0);68	vcopy_laneq_s16(arg_i16x4, -1, arg_i16x8, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}}69	vcopy_laneq_s16(arg_i16x4, 4, arg_i16x8, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}}70 71	vcopy_laneq_s16(arg_i16x4, 0, arg_i16x8, 7);72	vcopy_laneq_s16(arg_i16x4, 0, arg_i16x8, -1); // expected-error-re {{argument value {{.*}} is outside the valid range}}73	vcopy_laneq_s16(arg_i16x4, 0, arg_i16x8, 8); // expected-error-re {{argument value {{.*}} is outside the valid range}}74 75	vcopyq_laneq_s16(arg_i16x8, 0, arg_i16x8, 0);76	vcopyq_laneq_s16(arg_i16x8, 7, arg_i16x8, 0);77	vcopyq_laneq_s16(arg_i16x8, -1, arg_i16x8, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}}78	vcopyq_laneq_s16(arg_i16x8, 8, arg_i16x8, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}}79 80	vcopyq_laneq_s16(arg_i16x8, 0, arg_i16x8, 7);81	vcopyq_laneq_s16(arg_i16x8, 0, arg_i16x8, -1); // expected-error-re {{argument value {{.*}} is outside the valid range}}82	vcopyq_laneq_s16(arg_i16x8, 0, arg_i16x8, 8); // expected-error-re {{argument value {{.*}} is outside the valid range}}83 84}85 86void test_copy_vector_lane_s32(int32x2_t arg_i32x2, int32x4_t arg_i32x4) {87	vcopy_lane_s32(arg_i32x2, 0, arg_i32x2, 0);88	vcopy_lane_s32(arg_i32x2, 1, arg_i32x2, 0);89	vcopy_lane_s32(arg_i32x2, -1, arg_i32x2, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}}90	vcopy_lane_s32(arg_i32x2, 2, arg_i32x2, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}}91 92	vcopy_lane_s32(arg_i32x2, 0, arg_i32x2, 1);93	vcopy_lane_s32(arg_i32x2, 0, arg_i32x2, -1); // expected-error-re {{argument value {{.*}} is outside the valid range}}94	vcopy_lane_s32(arg_i32x2, 0, arg_i32x2, 2); // expected-error-re {{argument value {{.*}} is outside the valid range}}95 96	vcopyq_lane_s32(arg_i32x4, 0, arg_i32x2, 0);97	vcopyq_lane_s32(arg_i32x4, 3, arg_i32x2, 0);98	vcopyq_lane_s32(arg_i32x4, -1, arg_i32x2, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}}99	vcopyq_lane_s32(arg_i32x4, 4, arg_i32x2, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}}100 101	vcopyq_lane_s32(arg_i32x4, 0, arg_i32x2, 1);102	vcopyq_lane_s32(arg_i32x4, 0, arg_i32x2, -1); // expected-error-re {{argument value {{.*}} is outside the valid range}}103	vcopyq_lane_s32(arg_i32x4, 0, arg_i32x2, 2); // expected-error-re {{argument value {{.*}} is outside the valid range}}104 105	vcopy_laneq_s32(arg_i32x2, 0, arg_i32x4, 0);106	vcopy_laneq_s32(arg_i32x2, 1, arg_i32x4, 0);107	vcopy_laneq_s32(arg_i32x2, -1, arg_i32x4, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}}108	vcopy_laneq_s32(arg_i32x2, 2, arg_i32x4, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}}109 110	vcopy_laneq_s32(arg_i32x2, 0, arg_i32x4, 3);111	vcopy_laneq_s32(arg_i32x2, 0, arg_i32x4, -1); // expected-error-re {{argument value {{.*}} is outside the valid range}}112	vcopy_laneq_s32(arg_i32x2, 0, arg_i32x4, 4); // expected-error-re {{argument value {{.*}} is outside the valid range}}113 114	vcopyq_laneq_s32(arg_i32x4, 0, arg_i32x4, 0);115	vcopyq_laneq_s32(arg_i32x4, 3, arg_i32x4, 0);116	vcopyq_laneq_s32(arg_i32x4, -1, arg_i32x4, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}}117	vcopyq_laneq_s32(arg_i32x4, 4, arg_i32x4, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}}118 119	vcopyq_laneq_s32(arg_i32x4, 0, arg_i32x4, 3);120	vcopyq_laneq_s32(arg_i32x4, 0, arg_i32x4, -1); // expected-error-re {{argument value {{.*}} is outside the valid range}}121	vcopyq_laneq_s32(arg_i32x4, 0, arg_i32x4, 4); // expected-error-re {{argument value {{.*}} is outside the valid range}}122 123}124 125void test_copy_vector_lane_s64(int64x1_t arg_i64x1, int64x2_t arg_i64x2) {126	vcopy_lane_s64(arg_i64x1, 0, arg_i64x1, 0);127	vcopy_lane_s64(arg_i64x1, -1, arg_i64x1, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}}128	vcopy_lane_s64(arg_i64x1, 1, arg_i64x1, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}}129	vcopy_lane_s64(arg_i64x1, 0, arg_i64x1, 0);130	vcopy_lane_s64(arg_i64x1, 0, arg_i64x1, -1); // expected-error-re {{argument value {{.*}} is outside the valid range}}131	vcopy_lane_s64(arg_i64x1, 0, arg_i64x1, 1); // expected-error-re {{argument value {{.*}} is outside the valid range}}132 133	vcopyq_lane_s64(arg_i64x2, 0, arg_i64x1, 0);134	vcopyq_lane_s64(arg_i64x2, 1, arg_i64x1, 0);135	vcopyq_lane_s64(arg_i64x2, -1, arg_i64x1, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}}136	vcopyq_lane_s64(arg_i64x2, 2, arg_i64x1, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}}137 138	vcopyq_lane_s64(arg_i64x2, 0, arg_i64x1, -1); // expected-error-re {{argument value {{.*}} is outside the valid range}}139	vcopyq_lane_s64(arg_i64x2, 0, arg_i64x1, 1); // expected-error-re {{argument value {{.*}} is outside the valid range}}140 141	vcopy_laneq_s64(arg_i64x1, 0, arg_i64x2, 0);142	vcopy_laneq_s64(arg_i64x1, -1, arg_i64x2, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}}143	vcopy_laneq_s64(arg_i64x1, 1, arg_i64x2, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}}144 145	vcopy_laneq_s64(arg_i64x1, 0, arg_i64x2, 1);146	vcopy_laneq_s64(arg_i64x1, 0, arg_i64x2, -1); // expected-error-re {{argument value {{.*}} is outside the valid range}}147	vcopy_laneq_s64(arg_i64x1, 0, arg_i64x2, 2); // expected-error-re {{argument value {{.*}} is outside the valid range}}148 149	vcopyq_laneq_s64(arg_i64x2, 0, arg_i64x2, 0);150	vcopyq_laneq_s64(arg_i64x2, 1, arg_i64x2, 0);151	vcopyq_laneq_s64(arg_i64x2, -1, arg_i64x2, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}}152	vcopyq_laneq_s64(arg_i64x2, 2, arg_i64x2, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}}153 154	vcopyq_laneq_s64(arg_i64x2, 0, arg_i64x2, 1);155	vcopyq_laneq_s64(arg_i64x2, 0, arg_i64x2, -1); // expected-error-re {{argument value {{.*}} is outside the valid range}}156	vcopyq_laneq_s64(arg_i64x2, 0, arg_i64x2, 2); // expected-error-re {{argument value {{.*}} is outside the valid range}}157 158}159 160void test_copy_vector_lane_u8(uint8x8_t arg_u8x8, uint8x16_t arg_u8x16) {161	vcopy_lane_u8(arg_u8x8, 0, arg_u8x8, 0);162	vcopy_lane_u8(arg_u8x8, 7, arg_u8x8, 0);163	vcopy_lane_u8(arg_u8x8, -1, arg_u8x8, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}}164	vcopy_lane_u8(arg_u8x8, 8, arg_u8x8, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}}165 166	vcopy_lane_u8(arg_u8x8, 0, arg_u8x8, 7);167	vcopy_lane_u8(arg_u8x8, 0, arg_u8x8, -1); // expected-error-re {{argument value {{.*}} is outside the valid range}}168	vcopy_lane_u8(arg_u8x8, 0, arg_u8x8, 8); // expected-error-re {{argument value {{.*}} is outside the valid range}}169 170	vcopyq_lane_u8(arg_u8x16, 0, arg_u8x8, 0);171	vcopyq_lane_u8(arg_u8x16, 15, arg_u8x8, 0);172	vcopyq_lane_u8(arg_u8x16, -1, arg_u8x8, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}}173	vcopyq_lane_u8(arg_u8x16, 16, arg_u8x8, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}}174 175	vcopyq_lane_u8(arg_u8x16, 0, arg_u8x8, 7);176	vcopyq_lane_u8(arg_u8x16, 0, arg_u8x8, -1); // expected-error-re {{argument value {{.*}} is outside the valid range}}177	vcopyq_lane_u8(arg_u8x16, 0, arg_u8x8, 8); // expected-error-re {{argument value {{.*}} is outside the valid range}}178 179	vcopy_laneq_u8(arg_u8x8, 0, arg_u8x16, 0);180	vcopy_laneq_u8(arg_u8x8, 7, arg_u8x16, 0);181	vcopy_laneq_u8(arg_u8x8, -1, arg_u8x16, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}}182	vcopy_laneq_u8(arg_u8x8, 8, arg_u8x16, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}}183 184	vcopy_laneq_u8(arg_u8x8, 0, arg_u8x16, 15);185	vcopy_laneq_u8(arg_u8x8, 0, arg_u8x16, -1); // expected-error-re {{argument value {{.*}} is outside the valid range}}186	vcopy_laneq_u8(arg_u8x8, 0, arg_u8x16, 16); // expected-error-re {{argument value {{.*}} is outside the valid range}}187 188	vcopyq_laneq_u8(arg_u8x16, 0, arg_u8x16, 0);189	vcopyq_laneq_u8(arg_u8x16, 15, arg_u8x16, 0);190	vcopyq_laneq_u8(arg_u8x16, -1, arg_u8x16, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}}191	vcopyq_laneq_u8(arg_u8x16, 16, arg_u8x16, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}}192 193	vcopyq_laneq_u8(arg_u8x16, 0, arg_u8x16, 15);194	vcopyq_laneq_u8(arg_u8x16, 0, arg_u8x16, -1); // expected-error-re {{argument value {{.*}} is outside the valid range}}195	vcopyq_laneq_u8(arg_u8x16, 0, arg_u8x16, 16); // expected-error-re {{argument value {{.*}} is outside the valid range}}196 197}198 199void test_copy_vector_lane_u16(uint16x4_t arg_u16x4, uint16x8_t arg_u16x8) {200	vcopy_lane_u16(arg_u16x4, 0, arg_u16x4, 0);201	vcopy_lane_u16(arg_u16x4, 3, arg_u16x4, 0);202	vcopy_lane_u16(arg_u16x4, -1, arg_u16x4, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}}203	vcopy_lane_u16(arg_u16x4, 4, arg_u16x4, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}}204 205	vcopy_lane_u16(arg_u16x4, 0, arg_u16x4, 3);206	vcopy_lane_u16(arg_u16x4, 0, arg_u16x4, -1); // expected-error-re {{argument value {{.*}} is outside the valid range}}207	vcopy_lane_u16(arg_u16x4, 0, arg_u16x4, 4); // expected-error-re {{argument value {{.*}} is outside the valid range}}208 209	vcopyq_lane_u16(arg_u16x8, 0, arg_u16x4, 0);210	vcopyq_lane_u16(arg_u16x8, 7, arg_u16x4, 0);211	vcopyq_lane_u16(arg_u16x8, -1, arg_u16x4, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}}212	vcopyq_lane_u16(arg_u16x8, 8, arg_u16x4, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}}213 214	vcopyq_lane_u16(arg_u16x8, 0, arg_u16x4, 3);215	vcopyq_lane_u16(arg_u16x8, 0, arg_u16x4, -1); // expected-error-re {{argument value {{.*}} is outside the valid range}}216	vcopyq_lane_u16(arg_u16x8, 0, arg_u16x4, 4); // expected-error-re {{argument value {{.*}} is outside the valid range}}217 218	vcopy_laneq_u16(arg_u16x4, 0, arg_u16x8, 0);219	vcopy_laneq_u16(arg_u16x4, 3, arg_u16x8, 0);220	vcopy_laneq_u16(arg_u16x4, -1, arg_u16x8, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}}221	vcopy_laneq_u16(arg_u16x4, 4, arg_u16x8, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}}222 223	vcopy_laneq_u16(arg_u16x4, 0, arg_u16x8, 7);224	vcopy_laneq_u16(arg_u16x4, 0, arg_u16x8, -1); // expected-error-re {{argument value {{.*}} is outside the valid range}}225	vcopy_laneq_u16(arg_u16x4, 0, arg_u16x8, 8); // expected-error-re {{argument value {{.*}} is outside the valid range}}226 227	vcopyq_laneq_u16(arg_u16x8, 0, arg_u16x8, 0);228	vcopyq_laneq_u16(arg_u16x8, 7, arg_u16x8, 0);229	vcopyq_laneq_u16(arg_u16x8, -1, arg_u16x8, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}}230	vcopyq_laneq_u16(arg_u16x8, 8, arg_u16x8, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}}231 232	vcopyq_laneq_u16(arg_u16x8, 0, arg_u16x8, 7);233	vcopyq_laneq_u16(arg_u16x8, 0, arg_u16x8, -1); // expected-error-re {{argument value {{.*}} is outside the valid range}}234	vcopyq_laneq_u16(arg_u16x8, 0, arg_u16x8, 8); // expected-error-re {{argument value {{.*}} is outside the valid range}}235 236}237 238void test_copy_vector_lane_u32(uint32x2_t arg_u32x2, uint32x4_t arg_u32x4) {239	vcopy_lane_u32(arg_u32x2, 0, arg_u32x2, 0);240	vcopy_lane_u32(arg_u32x2, 1, arg_u32x2, 0);241	vcopy_lane_u32(arg_u32x2, -1, arg_u32x2, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}}242	vcopy_lane_u32(arg_u32x2, 2, arg_u32x2, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}}243 244	vcopy_lane_u32(arg_u32x2, 0, arg_u32x2, 1);245	vcopy_lane_u32(arg_u32x2, 0, arg_u32x2, -1); // expected-error-re {{argument value {{.*}} is outside the valid range}}246	vcopy_lane_u32(arg_u32x2, 0, arg_u32x2, 2); // expected-error-re {{argument value {{.*}} is outside the valid range}}247 248	vcopyq_lane_u32(arg_u32x4, 0, arg_u32x2, 0);249	vcopyq_lane_u32(arg_u32x4, 3, arg_u32x2, 0);250	vcopyq_lane_u32(arg_u32x4, -1, arg_u32x2, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}}251	vcopyq_lane_u32(arg_u32x4, 4, arg_u32x2, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}}252 253	vcopyq_lane_u32(arg_u32x4, 0, arg_u32x2, 1);254	vcopyq_lane_u32(arg_u32x4, 0, arg_u32x2, -1); // expected-error-re {{argument value {{.*}} is outside the valid range}}255	vcopyq_lane_u32(arg_u32x4, 0, arg_u32x2, 2); // expected-error-re {{argument value {{.*}} is outside the valid range}}256 257	vcopy_laneq_u32(arg_u32x2, 0, arg_u32x4, 0);258	vcopy_laneq_u32(arg_u32x2, 1, arg_u32x4, 0);259	vcopy_laneq_u32(arg_u32x2, -1, arg_u32x4, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}}260	vcopy_laneq_u32(arg_u32x2, 2, arg_u32x4, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}}261 262	vcopy_laneq_u32(arg_u32x2, 0, arg_u32x4, 3);263	vcopy_laneq_u32(arg_u32x2, 0, arg_u32x4, -1); // expected-error-re {{argument value {{.*}} is outside the valid range}}264	vcopy_laneq_u32(arg_u32x2, 0, arg_u32x4, 4); // expected-error-re {{argument value {{.*}} is outside the valid range}}265 266	vcopyq_laneq_u32(arg_u32x4, 0, arg_u32x4, 0);267	vcopyq_laneq_u32(arg_u32x4, 3, arg_u32x4, 0);268	vcopyq_laneq_u32(arg_u32x4, -1, arg_u32x4, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}}269	vcopyq_laneq_u32(arg_u32x4, 4, arg_u32x4, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}}270 271	vcopyq_laneq_u32(arg_u32x4, 0, arg_u32x4, 3);272	vcopyq_laneq_u32(arg_u32x4, 0, arg_u32x4, -1); // expected-error-re {{argument value {{.*}} is outside the valid range}}273	vcopyq_laneq_u32(arg_u32x4, 0, arg_u32x4, 4); // expected-error-re {{argument value {{.*}} is outside the valid range}}274 275}276 277void test_copy_vector_lane_u64(uint64x2_t arg_u64x2, uint64x1_t arg_u64x1) {278	vcopy_lane_u64(arg_u64x1, 0, arg_u64x1, 0);279	vcopy_lane_u64(arg_u64x1, -1, arg_u64x1, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}}280	vcopy_lane_u64(arg_u64x1, 1, arg_u64x1, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}}281 282	vcopy_lane_u64(arg_u64x1, 0, arg_u64x1, -1); // expected-error-re {{argument value {{.*}} is outside the valid range}}283	vcopy_lane_u64(arg_u64x1, 0, arg_u64x1, 1); // expected-error-re {{argument value {{.*}} is outside the valid range}}284 285	vcopyq_lane_u64(arg_u64x2, 0, arg_u64x1, 0);286	vcopyq_lane_u64(arg_u64x2, 1, arg_u64x1, 0);287	vcopyq_lane_u64(arg_u64x2, -1, arg_u64x1, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}}288	vcopyq_lane_u64(arg_u64x2, 2, arg_u64x1, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}}289 290	vcopyq_lane_u64(arg_u64x2, 0, arg_u64x1, -1); // expected-error-re {{argument value {{.*}} is outside the valid range}}291	vcopyq_lane_u64(arg_u64x2, 0, arg_u64x1, 1); // expected-error-re {{argument value {{.*}} is outside the valid range}}292 293	vcopy_laneq_u64(arg_u64x1, 0, arg_u64x2, 0);294	vcopy_laneq_u64(arg_u64x1, -1, arg_u64x2, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}}295	vcopy_laneq_u64(arg_u64x1, 1, arg_u64x2, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}}296 297	vcopy_laneq_u64(arg_u64x1, 0, arg_u64x2, 1);298	vcopy_laneq_u64(arg_u64x1, 0, arg_u64x2, -1); // expected-error-re {{argument value {{.*}} is outside the valid range}}299	vcopy_laneq_u64(arg_u64x1, 0, arg_u64x2, 2); // expected-error-re {{argument value {{.*}} is outside the valid range}}300 301	vcopyq_laneq_u64(arg_u64x2, 0, arg_u64x2, 0);302	vcopyq_laneq_u64(arg_u64x2, 1, arg_u64x2, 0);303	vcopyq_laneq_u64(arg_u64x2, -1, arg_u64x2, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}}304	vcopyq_laneq_u64(arg_u64x2, 2, arg_u64x2, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}}305 306	vcopyq_laneq_u64(arg_u64x2, 0, arg_u64x2, 1);307	vcopyq_laneq_u64(arg_u64x2, 0, arg_u64x2, -1); // expected-error-re {{argument value {{.*}} is outside the valid range}}308	vcopyq_laneq_u64(arg_u64x2, 0, arg_u64x2, 2); // expected-error-re {{argument value {{.*}} is outside the valid range}}309 310}311 312void test_copy_vector_lane_p64(poly64x1_t arg_p64x1, poly64x2_t arg_p64x2) {313	vcopy_lane_p64(arg_p64x1, 0, arg_p64x1, 0);314	vcopy_lane_p64(arg_p64x1, -1, arg_p64x1, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}}315	vcopy_lane_p64(arg_p64x1, 1, arg_p64x1, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}}316 317	vcopy_lane_p64(arg_p64x1, 0, arg_p64x1, -1); // expected-error-re {{argument value {{.*}} is outside the valid range}}318	vcopy_lane_p64(arg_p64x1, 0, arg_p64x1, 1); // expected-error-re {{argument value {{.*}} is outside the valid range}}319 320	vcopyq_lane_p64(arg_p64x2, 0, arg_p64x1, 0);321	vcopyq_lane_p64(arg_p64x2, 1, arg_p64x1, 0);322	vcopyq_lane_p64(arg_p64x2, -1, arg_p64x1, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}}323	vcopyq_lane_p64(arg_p64x2, 2, arg_p64x1, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}}324 325	vcopyq_lane_p64(arg_p64x2, 0, arg_p64x1, -1); // expected-error-re {{argument value {{.*}} is outside the valid range}}326	vcopyq_lane_p64(arg_p64x2, 0, arg_p64x1, 1); // expected-error-re {{argument value {{.*}} is outside the valid range}}327 328	vcopy_laneq_p64(arg_p64x1, 0, arg_p64x2, 0);329	vcopy_laneq_p64(arg_p64x1, -1, arg_p64x2, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}}330	vcopy_laneq_p64(arg_p64x1, 1, arg_p64x2, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}}331 332	vcopy_laneq_p64(arg_p64x1, 0, arg_p64x2, 1);333	vcopy_laneq_p64(arg_p64x1, 0, arg_p64x2, -1); // expected-error-re {{argument value {{.*}} is outside the valid range}}334	vcopy_laneq_p64(arg_p64x1, 0, arg_p64x2, 2); // expected-error-re {{argument value {{.*}} is outside the valid range}}335 336	vcopyq_laneq_p64(arg_p64x2, 0, arg_p64x2, 0);337	vcopyq_laneq_p64(arg_p64x2, 1, arg_p64x2, 0);338	vcopyq_laneq_p64(arg_p64x2, -1, arg_p64x2, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}}339	vcopyq_laneq_p64(arg_p64x2, 2, arg_p64x2, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}}340 341	vcopyq_laneq_p64(arg_p64x2, 0, arg_p64x2, 1);342	vcopyq_laneq_p64(arg_p64x2, 0, arg_p64x2, -1); // expected-error-re {{argument value {{.*}} is outside the valid range}}343	vcopyq_laneq_p64(arg_p64x2, 0, arg_p64x2, 2); // expected-error-re {{argument value {{.*}} is outside the valid range}}344 345}346 347void test_copy_vector_lane_f32(float32x2_t arg_f32x2, float32x4_t arg_f32x4) {348	vcopy_lane_f32(arg_f32x2, 0, arg_f32x2, 0);349	vcopy_lane_f32(arg_f32x2, 1, arg_f32x2, 0);350	vcopy_lane_f32(arg_f32x2, -1, arg_f32x2, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}}351	vcopy_lane_f32(arg_f32x2, 2, arg_f32x2, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}}352 353	vcopy_lane_f32(arg_f32x2, 0, arg_f32x2, 1);354	vcopy_lane_f32(arg_f32x2, 0, arg_f32x2, -1); // expected-error-re {{argument value {{.*}} is outside the valid range}}355	vcopy_lane_f32(arg_f32x2, 0, arg_f32x2, 2); // expected-error-re {{argument value {{.*}} is outside the valid range}}356 357	vcopyq_lane_f32(arg_f32x4, 0, arg_f32x2, 0);358	vcopyq_lane_f32(arg_f32x4, 3, arg_f32x2, 0);359	vcopyq_lane_f32(arg_f32x4, -1, arg_f32x2, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}}360	vcopyq_lane_f32(arg_f32x4, 4, arg_f32x2, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}}361 362	vcopyq_lane_f32(arg_f32x4, 0, arg_f32x2, 1);363	vcopyq_lane_f32(arg_f32x4, 0, arg_f32x2, -1); // expected-error-re {{argument value {{.*}} is outside the valid range}}364	vcopyq_lane_f32(arg_f32x4, 0, arg_f32x2, 2); // expected-error-re {{argument value {{.*}} is outside the valid range}}365 366	vcopy_laneq_f32(arg_f32x2, 0, arg_f32x4, 0);367	vcopy_laneq_f32(arg_f32x2, 1, arg_f32x4, 0);368	vcopy_laneq_f32(arg_f32x2, -1, arg_f32x4, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}}369	vcopy_laneq_f32(arg_f32x2, 2, arg_f32x4, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}}370 371	vcopy_laneq_f32(arg_f32x2, 0, arg_f32x4, 3);372	vcopy_laneq_f32(arg_f32x2, 0, arg_f32x4, -1); // expected-error-re {{argument value {{.*}} is outside the valid range}}373	vcopy_laneq_f32(arg_f32x2, 0, arg_f32x4, 4); // expected-error-re {{argument value {{.*}} is outside the valid range}}374 375	vcopyq_laneq_f32(arg_f32x4, 0, arg_f32x4, 0);376	vcopyq_laneq_f32(arg_f32x4, 3, arg_f32x4, 0);377	vcopyq_laneq_f32(arg_f32x4, -1, arg_f32x4, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}}378	vcopyq_laneq_f32(arg_f32x4, 4, arg_f32x4, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}}379 380	vcopyq_laneq_f32(arg_f32x4, 0, arg_f32x4, 3);381	vcopyq_laneq_f32(arg_f32x4, 0, arg_f32x4, -1); // expected-error-re {{argument value {{.*}} is outside the valid range}}382	vcopyq_laneq_f32(arg_f32x4, 0, arg_f32x4, 4); // expected-error-re {{argument value {{.*}} is outside the valid range}}383 384}385 386void test_copy_vector_lane_f64(float64x2_t arg_f64x2, float64x1_t arg_f64x1) {387	vcopy_lane_f64(arg_f64x1, 0, arg_f64x1, 0);388	vcopy_lane_f64(arg_f64x1, -1, arg_f64x1, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}}389	vcopy_lane_f64(arg_f64x1, 1, arg_f64x1, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}}390 391	vcopy_lane_f64(arg_f64x1, 0, arg_f64x1, -1); // expected-error-re {{argument value {{.*}} is outside the valid range}}392	vcopy_lane_f64(arg_f64x1, 0, arg_f64x1, 1); // expected-error-re {{argument value {{.*}} is outside the valid range}}393 394	vcopyq_lane_f64(arg_f64x2, 0, arg_f64x1, 0);395	vcopyq_lane_f64(arg_f64x2, 1, arg_f64x1, 0);396	vcopyq_lane_f64(arg_f64x2, -1, arg_f64x1, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}}397	vcopyq_lane_f64(arg_f64x2, 2, arg_f64x1, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}}398 399	vcopyq_lane_f64(arg_f64x2, 0, arg_f64x1, -1); // expected-error-re {{argument value {{.*}} is outside the valid range}}400	vcopyq_lane_f64(arg_f64x2, 0, arg_f64x1, 1); // expected-error-re {{argument value {{.*}} is outside the valid range}}401 402	vcopy_laneq_f64(arg_f64x1, 0, arg_f64x2, 0);403	vcopy_laneq_f64(arg_f64x1, -1, arg_f64x2, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}}404	vcopy_laneq_f64(arg_f64x1, 1, arg_f64x2, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}}405 406	vcopy_laneq_f64(arg_f64x1, 0, arg_f64x2, 1);407	vcopy_laneq_f64(arg_f64x1, 0, arg_f64x2, -1); // expected-error-re {{argument value {{.*}} is outside the valid range}}408	vcopy_laneq_f64(arg_f64x1, 0, arg_f64x2, 2); // expected-error-re {{argument value {{.*}} is outside the valid range}}409 410	vcopyq_laneq_f64(arg_f64x2, 0, arg_f64x2, 0);411	vcopyq_laneq_f64(arg_f64x2, 1, arg_f64x2, 0);412	vcopyq_laneq_f64(arg_f64x2, -1, arg_f64x2, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}}413	vcopyq_laneq_f64(arg_f64x2, 2, arg_f64x2, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}}414 415	vcopyq_laneq_f64(arg_f64x2, 0, arg_f64x2, 1);416	vcopyq_laneq_f64(arg_f64x2, 0, arg_f64x2, -1); // expected-error-re {{argument value {{.*}} is outside the valid range}}417	vcopyq_laneq_f64(arg_f64x2, 0, arg_f64x2, 2); // expected-error-re {{argument value {{.*}} is outside the valid range}}418 419}420 421void test_copy_vector_lane_p8(poly8x16_t arg_p8x16, poly8x8_t arg_p8x8) {422	vcopy_lane_p8(arg_p8x8, 0, arg_p8x8, 0);423	vcopy_lane_p8(arg_p8x8, 7, arg_p8x8, 0);424	vcopy_lane_p8(arg_p8x8, -1, arg_p8x8, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}}425	vcopy_lane_p8(arg_p8x8, 8, arg_p8x8, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}}426 427	vcopy_lane_p8(arg_p8x8, 0, arg_p8x8, 7);428	vcopy_lane_p8(arg_p8x8, 0, arg_p8x8, -1); // expected-error-re {{argument value {{.*}} is outside the valid range}}429	vcopy_lane_p8(arg_p8x8, 0, arg_p8x8, 8); // expected-error-re {{argument value {{.*}} is outside the valid range}}430 431	vcopyq_lane_p8(arg_p8x16, 0, arg_p8x8, 0);432	vcopyq_lane_p8(arg_p8x16, 15, arg_p8x8, 0);433	vcopyq_lane_p8(arg_p8x16, -1, arg_p8x8, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}}434	vcopyq_lane_p8(arg_p8x16, 16, arg_p8x8, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}}435 436	vcopyq_lane_p8(arg_p8x16, 0, arg_p8x8, 7);437	vcopyq_lane_p8(arg_p8x16, 0, arg_p8x8, -1); // expected-error-re {{argument value {{.*}} is outside the valid range}}438	vcopyq_lane_p8(arg_p8x16, 0, arg_p8x8, 8); // expected-error-re {{argument value {{.*}} is outside the valid range}}439 440	vcopy_laneq_p8(arg_p8x8, 0, arg_p8x16, 0);441	vcopy_laneq_p8(arg_p8x8, 7, arg_p8x16, 0);442	vcopy_laneq_p8(arg_p8x8, -1, arg_p8x16, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}}443	vcopy_laneq_p8(arg_p8x8, 8, arg_p8x16, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}}444 445	vcopy_laneq_p8(arg_p8x8, 0, arg_p8x16, 15);446	vcopy_laneq_p8(arg_p8x8, 0, arg_p8x16, -1); // expected-error-re {{argument value {{.*}} is outside the valid range}}447	vcopy_laneq_p8(arg_p8x8, 0, arg_p8x16, 16); // expected-error-re {{argument value {{.*}} is outside the valid range}}448 449	vcopyq_laneq_p8(arg_p8x16, 0, arg_p8x16, 0);450	vcopyq_laneq_p8(arg_p8x16, 15, arg_p8x16, 0);451	vcopyq_laneq_p8(arg_p8x16, -1, arg_p8x16, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}}452	vcopyq_laneq_p8(arg_p8x16, 16, arg_p8x16, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}}453 454	vcopyq_laneq_p8(arg_p8x16, 0, arg_p8x16, 15);455	vcopyq_laneq_p8(arg_p8x16, 0, arg_p8x16, -1); // expected-error-re {{argument value {{.*}} is outside the valid range}}456	vcopyq_laneq_p8(arg_p8x16, 0, arg_p8x16, 16); // expected-error-re {{argument value {{.*}} is outside the valid range}}457 458}459 460void test_copy_vector_lane_p16(poly16x8_t arg_p16x8, poly16x4_t arg_p16x4) {461	vcopy_lane_p16(arg_p16x4, 0, arg_p16x4, 0);462	vcopy_lane_p16(arg_p16x4, 3, arg_p16x4, 0);463	vcopy_lane_p16(arg_p16x4, -1, arg_p16x4, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}}464	vcopy_lane_p16(arg_p16x4, 4, arg_p16x4, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}}465 466	vcopy_lane_p16(arg_p16x4, 0, arg_p16x4, 3);467	vcopy_lane_p16(arg_p16x4, 0, arg_p16x4, -1); // expected-error-re {{argument value {{.*}} is outside the valid range}}468	vcopy_lane_p16(arg_p16x4, 0, arg_p16x4, 4); // expected-error-re {{argument value {{.*}} is outside the valid range}}469 470	vcopyq_lane_p16(arg_p16x8, 0, arg_p16x4, 0);471	vcopyq_lane_p16(arg_p16x8, 7, arg_p16x4, 0);472	vcopyq_lane_p16(arg_p16x8, -1, arg_p16x4, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}}473	vcopyq_lane_p16(arg_p16x8, 8, arg_p16x4, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}}474 475	vcopyq_lane_p16(arg_p16x8, 0, arg_p16x4, 3);476	vcopyq_lane_p16(arg_p16x8, 0, arg_p16x4, -1); // expected-error-re {{argument value {{.*}} is outside the valid range}}477	vcopyq_lane_p16(arg_p16x8, 0, arg_p16x4, 4); // expected-error-re {{argument value {{.*}} is outside the valid range}}478 479	vcopy_laneq_p16(arg_p16x4, 0, arg_p16x8, 0);480	vcopy_laneq_p16(arg_p16x4, 3, arg_p16x8, 0);481	vcopy_laneq_p16(arg_p16x4, -1, arg_p16x8, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}}482	vcopy_laneq_p16(arg_p16x4, 4, arg_p16x8, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}}483 484	vcopy_laneq_p16(arg_p16x4, 0, arg_p16x8, 7);485	vcopy_laneq_p16(arg_p16x4, 0, arg_p16x8, -1); // expected-error-re {{argument value {{.*}} is outside the valid range}}486	vcopy_laneq_p16(arg_p16x4, 0, arg_p16x8, 8); // expected-error-re {{argument value {{.*}} is outside the valid range}}487 488	vcopyq_laneq_p16(arg_p16x8, 0, arg_p16x8, 0);489	vcopyq_laneq_p16(arg_p16x8, 7, arg_p16x8, 0);490	vcopyq_laneq_p16(arg_p16x8, -1, arg_p16x8, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}}491	vcopyq_laneq_p16(arg_p16x8, 8, arg_p16x8, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}}492 493	vcopyq_laneq_p16(arg_p16x8, 0, arg_p16x8, 7);494	vcopyq_laneq_p16(arg_p16x8, 0, arg_p16x8, -1); // expected-error-re {{argument value {{.*}} is outside the valid range}}495	vcopyq_laneq_p16(arg_p16x8, 0, arg_p16x8, 8); // expected-error-re {{argument value {{.*}} is outside the valid range}}496 497}498 499