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