// RUN: %clang_cc1 -triple aarch64-linux-gnu -target-feature +neon -ffreestanding -fsyntax-only -verify %s #include // REQUIRES: aarch64-registered-target void test_vector_shift_right_s8(int8x8_t arg_i8x8, int8x16_t arg_i8x16) { vshr_n_s8(arg_i8x8, 1); vshr_n_s8(arg_i8x8, 8); vshr_n_s8(arg_i8x8, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}} vshr_n_s8(arg_i8x8, 9); // expected-error-re {{argument value {{.*}} is outside the valid range}} vshrq_n_s8(arg_i8x16, 1); vshrq_n_s8(arg_i8x16, 8); vshrq_n_s8(arg_i8x16, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}} vshrq_n_s8(arg_i8x16, 9); // expected-error-re {{argument value {{.*}} is outside the valid range}} } void test_vector_shift_right_s16(int16x4_t arg_i16x4, int16x8_t arg_i16x8) { vshr_n_s16(arg_i16x4, 1); vshr_n_s16(arg_i16x4, 16); vshr_n_s16(arg_i16x4, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}} vshr_n_s16(arg_i16x4, 17); // expected-error-re {{argument value {{.*}} is outside the valid range}} vshrq_n_s16(arg_i16x8, 1); vshrq_n_s16(arg_i16x8, 16); vshrq_n_s16(arg_i16x8, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}} vshrq_n_s16(arg_i16x8, 17); // expected-error-re {{argument value {{.*}} is outside the valid range}} } void test_vector_shift_right_s32(int32x2_t arg_i32x2, int32x4_t arg_i32x4) { vshr_n_s32(arg_i32x2, 1); vshr_n_s32(arg_i32x2, 32); vshr_n_s32(arg_i32x2, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}} vshr_n_s32(arg_i32x2, 33); // expected-error-re {{argument value {{.*}} is outside the valid range}} vshrq_n_s32(arg_i32x4, 1); vshrq_n_s32(arg_i32x4, 32); vshrq_n_s32(arg_i32x4, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}} vshrq_n_s32(arg_i32x4, 33); // expected-error-re {{argument value {{.*}} is outside the valid range}} } void test_vector_shift_right_s64(int64_t arg_i64, int64x1_t arg_i64x1, int64x2_t arg_i64x2) { vshr_n_s64(arg_i64x1, 1); vshr_n_s64(arg_i64x1, 64); vshr_n_s64(arg_i64x1, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}} vshr_n_s64(arg_i64x1, 65); // expected-error-re {{argument value {{.*}} is outside the valid range}} vshrq_n_s64(arg_i64x2, 1); vshrq_n_s64(arg_i64x2, 64); vshrq_n_s64(arg_i64x2, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}} vshrq_n_s64(arg_i64x2, 65); // expected-error-re {{argument value {{.*}} is outside the valid range}} vshrd_n_s64(arg_i64, 1); vshrd_n_s64(arg_i64, 64); vshrd_n_s64(arg_i64, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}} vshrd_n_s64(arg_i64, 65); // expected-error-re {{argument value {{.*}} is outside the valid range}} } void test_vector_shift_right_u8(uint8x16_t arg_u8x16, uint8x8_t arg_u8x8) { vshr_n_u8(arg_u8x8, 1); vshr_n_u8(arg_u8x8, 8); vshr_n_u8(arg_u8x8, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}} vshr_n_u8(arg_u8x8, 9); // expected-error-re {{argument value {{.*}} is outside the valid range}} vshrq_n_u8(arg_u8x16, 1); vshrq_n_u8(arg_u8x16, 8); vshrq_n_u8(arg_u8x16, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}} vshrq_n_u8(arg_u8x16, 9); // expected-error-re {{argument value {{.*}} is outside the valid range}} } void test_vector_shift_right_u16(uint16x8_t arg_u16x8, uint16x4_t arg_u16x4) { vshr_n_u16(arg_u16x4, 1); vshr_n_u16(arg_u16x4, 16); vshr_n_u16(arg_u16x4, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}} vshr_n_u16(arg_u16x4, 17); // expected-error-re {{argument value {{.*}} is outside the valid range}} vshrq_n_u16(arg_u16x8, 1); vshrq_n_u16(arg_u16x8, 16); vshrq_n_u16(arg_u16x8, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}} vshrq_n_u16(arg_u16x8, 17); // expected-error-re {{argument value {{.*}} is outside the valid range}} } void test_vector_shift_right_u32(uint32x2_t arg_u32x2, uint32x4_t arg_u32x4) { vshr_n_u32(arg_u32x2, 1); vshr_n_u32(arg_u32x2, 32); vshr_n_u32(arg_u32x2, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}} vshr_n_u32(arg_u32x2, 33); // expected-error-re {{argument value {{.*}} is outside the valid range}} vshrq_n_u32(arg_u32x4, 1); vshrq_n_u32(arg_u32x4, 32); vshrq_n_u32(arg_u32x4, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}} vshrq_n_u32(arg_u32x4, 33); // expected-error-re {{argument value {{.*}} is outside the valid range}} } void test_vector_shift_right_u64(uint64x2_t arg_u64x2, uint64_t arg_u64, uint64x1_t arg_u64x1) { vshr_n_u64(arg_u64x1, 1); vshr_n_u64(arg_u64x1, 64); vshr_n_u64(arg_u64x1, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}} vshr_n_u64(arg_u64x1, 65); // expected-error-re {{argument value {{.*}} is outside the valid range}} vshrq_n_u64(arg_u64x2, 1); vshrq_n_u64(arg_u64x2, 64); vshrq_n_u64(arg_u64x2, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}} vshrq_n_u64(arg_u64x2, 65); // expected-error-re {{argument value {{.*}} is outside the valid range}} vshrd_n_u64(arg_u64, 1); vshrd_n_u64(arg_u64, 64); vshrd_n_u64(arg_u64, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}} vshrd_n_u64(arg_u64, 65); // expected-error-re {{argument value {{.*}} is outside the valid range}} } void test_vector_rounding_shift_right_s8(int8x8_t arg_i8x8, int8x16_t arg_i8x16) { vrshr_n_s8(arg_i8x8, 1); vrshr_n_s8(arg_i8x8, 8); vrshr_n_s8(arg_i8x8, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}} vrshr_n_s8(arg_i8x8, 9); // expected-error-re {{argument value {{.*}} is outside the valid range}} vrshrq_n_s8(arg_i8x16, 1); vrshrq_n_s8(arg_i8x16, 8); vrshrq_n_s8(arg_i8x16, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}} vrshrq_n_s8(arg_i8x16, 9); // expected-error-re {{argument value {{.*}} is outside the valid range}} } void test_vector_rounding_shift_right_s16(int16x4_t arg_i16x4, int16x8_t arg_i16x8) { vrshr_n_s16(arg_i16x4, 1); vrshr_n_s16(arg_i16x4, 16); vrshr_n_s16(arg_i16x4, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}} vrshr_n_s16(arg_i16x4, 17); // expected-error-re {{argument value {{.*}} is outside the valid range}} vrshrq_n_s16(arg_i16x8, 1); vrshrq_n_s16(arg_i16x8, 16); vrshrq_n_s16(arg_i16x8, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}} vrshrq_n_s16(arg_i16x8, 17); // expected-error-re {{argument value {{.*}} is outside the valid range}} } void test_vector_rounding_shift_right_s32(int32x2_t arg_i32x2, int32x4_t arg_i32x4) { vrshr_n_s32(arg_i32x2, 1); vrshr_n_s32(arg_i32x2, 32); vrshr_n_s32(arg_i32x2, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}} vrshr_n_s32(arg_i32x2, 33); // expected-error-re {{argument value {{.*}} is outside the valid range}} vrshrq_n_s32(arg_i32x4, 1); vrshrq_n_s32(arg_i32x4, 32); vrshrq_n_s32(arg_i32x4, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}} vrshrq_n_s32(arg_i32x4, 33); // expected-error-re {{argument value {{.*}} is outside the valid range}} } void test_vector_rounding_shift_right_s64(int64_t arg_i64, int64x1_t arg_i64x1, int64x2_t arg_i64x2) { vrshr_n_s64(arg_i64x1, 1); vrshr_n_s64(arg_i64x1, 64); vrshr_n_s64(arg_i64x1, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}} vrshr_n_s64(arg_i64x1, 65); // expected-error-re {{argument value {{.*}} is outside the valid range}} vrshrq_n_s64(arg_i64x2, 1); vrshrq_n_s64(arg_i64x2, 64); vrshrq_n_s64(arg_i64x2, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}} vrshrq_n_s64(arg_i64x2, 65); // expected-error-re {{argument value {{.*}} is outside the valid range}} vrshrd_n_s64(arg_i64, 1); vrshrd_n_s64(arg_i64, 64); vrshrd_n_s64(arg_i64, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}} vrshrd_n_s64(arg_i64, 65); // expected-error-re {{argument value {{.*}} is outside the valid range}} } void test_vector_rounding_shift_right_u8(uint8x16_t arg_u8x16, uint8x8_t arg_u8x8) { vrshr_n_u8(arg_u8x8, 1); vrshr_n_u8(arg_u8x8, 8); vrshr_n_u8(arg_u8x8, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}} vrshr_n_u8(arg_u8x8, 9); // expected-error-re {{argument value {{.*}} is outside the valid range}} vrshrq_n_u8(arg_u8x16, 1); vrshrq_n_u8(arg_u8x16, 8); vrshrq_n_u8(arg_u8x16, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}} vrshrq_n_u8(arg_u8x16, 9); // expected-error-re {{argument value {{.*}} is outside the valid range}} } void test_vector_rounding_shift_right_u16(uint16x8_t arg_u16x8, uint16x4_t arg_u16x4) { vrshr_n_u16(arg_u16x4, 1); vrshr_n_u16(arg_u16x4, 16); vrshr_n_u16(arg_u16x4, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}} vrshr_n_u16(arg_u16x4, 17); // expected-error-re {{argument value {{.*}} is outside the valid range}} vrshrq_n_u16(arg_u16x8, 1); vrshrq_n_u16(arg_u16x8, 16); vrshrq_n_u16(arg_u16x8, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}} vrshrq_n_u16(arg_u16x8, 17); // expected-error-re {{argument value {{.*}} is outside the valid range}} } void test_vector_rounding_shift_right_u32(uint32x2_t arg_u32x2, uint32x4_t arg_u32x4) { vrshr_n_u32(arg_u32x2, 1); vrshr_n_u32(arg_u32x2, 32); vrshr_n_u32(arg_u32x2, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}} vrshr_n_u32(arg_u32x2, 33); // expected-error-re {{argument value {{.*}} is outside the valid range}} vrshrq_n_u32(arg_u32x4, 1); vrshrq_n_u32(arg_u32x4, 32); vrshrq_n_u32(arg_u32x4, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}} vrshrq_n_u32(arg_u32x4, 33); // expected-error-re {{argument value {{.*}} is outside the valid range}} } void test_vector_rounding_shift_right_u64(uint64x2_t arg_u64x2, uint64_t arg_u64, uint64x1_t arg_u64x1) { vrshr_n_u64(arg_u64x1, 1); vrshr_n_u64(arg_u64x1, 64); vrshr_n_u64(arg_u64x1, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}} vrshr_n_u64(arg_u64x1, 65); // expected-error-re {{argument value {{.*}} is outside the valid range}} vrshrq_n_u64(arg_u64x2, 1); vrshrq_n_u64(arg_u64x2, 64); vrshrq_n_u64(arg_u64x2, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}} vrshrq_n_u64(arg_u64x2, 65); // expected-error-re {{argument value {{.*}} is outside the valid range}} vrshrd_n_u64(arg_u64, 1); vrshrd_n_u64(arg_u64, 64); vrshrd_n_u64(arg_u64, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}} vrshrd_n_u64(arg_u64, 65); // expected-error-re {{argument value {{.*}} is outside the valid range}} } void test_vector_shift_right_and_accumulate_s8(int8x8_t arg_i8x8, int8x16_t arg_i8x16) { vsra_n_s8(arg_i8x8, arg_i8x8, 1); vsra_n_s8(arg_i8x8, arg_i8x8, 8); vsra_n_s8(arg_i8x8, arg_i8x8, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}} vsra_n_s8(arg_i8x8, arg_i8x8, 9); // expected-error-re {{argument value {{.*}} is outside the valid range}} vsraq_n_s8(arg_i8x16, arg_i8x16, 1); vsraq_n_s8(arg_i8x16, arg_i8x16, 8); vsraq_n_s8(arg_i8x16, arg_i8x16, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}} vsraq_n_s8(arg_i8x16, arg_i8x16, 9); // expected-error-re {{argument value {{.*}} is outside the valid range}} } void test_vector_shift_right_and_accumulate_s16(int16x4_t arg_i16x4, int16x8_t arg_i16x8) { vsra_n_s16(arg_i16x4, arg_i16x4, 1); vsra_n_s16(arg_i16x4, arg_i16x4, 16); vsra_n_s16(arg_i16x4, arg_i16x4, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}} vsra_n_s16(arg_i16x4, arg_i16x4, 17); // expected-error-re {{argument value {{.*}} is outside the valid range}} vsraq_n_s16(arg_i16x8, arg_i16x8, 1); vsraq_n_s16(arg_i16x8, arg_i16x8, 16); vsraq_n_s16(arg_i16x8, arg_i16x8, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}} vsraq_n_s16(arg_i16x8, arg_i16x8, 17); // expected-error-re {{argument value {{.*}} is outside the valid range}} } void test_vector_shift_right_and_accumulate_s32(int32x2_t arg_i32x2, int32x4_t arg_i32x4) { vsra_n_s32(arg_i32x2, arg_i32x2, 1); vsra_n_s32(arg_i32x2, arg_i32x2, 32); vsra_n_s32(arg_i32x2, arg_i32x2, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}} vsra_n_s32(arg_i32x2, arg_i32x2, 33); // expected-error-re {{argument value {{.*}} is outside the valid range}} vsraq_n_s32(arg_i32x4, arg_i32x4, 1); vsraq_n_s32(arg_i32x4, arg_i32x4, 32); vsraq_n_s32(arg_i32x4, arg_i32x4, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}} vsraq_n_s32(arg_i32x4, arg_i32x4, 33); // expected-error-re {{argument value {{.*}} is outside the valid range}} } void test_vector_shift_right_and_accumulate_s64(int64_t arg_i64, int64x1_t arg_i64x1, int64x2_t arg_i64x2) { vsra_n_s64(arg_i64x1, arg_i64x1, 1); vsra_n_s64(arg_i64x1, arg_i64x1, 64); vsra_n_s64(arg_i64x1, arg_i64x1, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}} vsra_n_s64(arg_i64x1, arg_i64x1, 65); // expected-error-re {{argument value {{.*}} is outside the valid range}} vsraq_n_s64(arg_i64x2, arg_i64x2, 1); vsraq_n_s64(arg_i64x2, arg_i64x2, 64); vsraq_n_s64(arg_i64x2, arg_i64x2, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}} vsraq_n_s64(arg_i64x2, arg_i64x2, 65); // expected-error-re {{argument value {{.*}} is outside the valid range}} vsrad_n_s64(arg_i64, arg_i64, 1); vsrad_n_s64(arg_i64, arg_i64, 64); vsrad_n_s64(arg_i64, arg_i64, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}} vsrad_n_s64(arg_i64, arg_i64, 65); // expected-error-re {{argument value {{.*}} is outside the valid range}} } void test_vector_shift_right_and_accumulate_u8(uint8x16_t arg_u8x16, uint8x8_t arg_u8x8) { vsra_n_u8(arg_u8x8, arg_u8x8, 1); vsra_n_u8(arg_u8x8, arg_u8x8, 8); vsra_n_u8(arg_u8x8, arg_u8x8, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}} vsra_n_u8(arg_u8x8, arg_u8x8, 9); // expected-error-re {{argument value {{.*}} is outside the valid range}} vsraq_n_u8(arg_u8x16, arg_u8x16, 1); vsraq_n_u8(arg_u8x16, arg_u8x16, 8); vsraq_n_u8(arg_u8x16, arg_u8x16, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}} vsraq_n_u8(arg_u8x16, arg_u8x16, 9); // expected-error-re {{argument value {{.*}} is outside the valid range}} } void test_vector_shift_right_and_accumulate_u16(uint16x8_t arg_u16x8, uint16x4_t arg_u16x4) { vsra_n_u16(arg_u16x4, arg_u16x4, 1); vsra_n_u16(arg_u16x4, arg_u16x4, 16); vsra_n_u16(arg_u16x4, arg_u16x4, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}} vsra_n_u16(arg_u16x4, arg_u16x4, 17); // expected-error-re {{argument value {{.*}} is outside the valid range}} vsraq_n_u16(arg_u16x8, arg_u16x8, 1); vsraq_n_u16(arg_u16x8, arg_u16x8, 16); vsraq_n_u16(arg_u16x8, arg_u16x8, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}} vsraq_n_u16(arg_u16x8, arg_u16x8, 17); // expected-error-re {{argument value {{.*}} is outside the valid range}} } void test_vector_shift_right_and_accumulate_u32(uint32x2_t arg_u32x2, uint32x4_t arg_u32x4) { vsra_n_u32(arg_u32x2, arg_u32x2, 1); vsra_n_u32(arg_u32x2, arg_u32x2, 32); vsra_n_u32(arg_u32x2, arg_u32x2, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}} vsra_n_u32(arg_u32x2, arg_u32x2, 33); // expected-error-re {{argument value {{.*}} is outside the valid range}} vsraq_n_u32(arg_u32x4, arg_u32x4, 1); vsraq_n_u32(arg_u32x4, arg_u32x4, 32); vsraq_n_u32(arg_u32x4, arg_u32x4, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}} vsraq_n_u32(arg_u32x4, arg_u32x4, 33); // expected-error-re {{argument value {{.*}} is outside the valid range}} } void test_vector_shift_right_and_accumulate_u64(uint64x2_t arg_u64x2, uint64_t arg_u64, uint64x1_t arg_u64x1) { vsra_n_u64(arg_u64x1, arg_u64x1, 1); vsra_n_u64(arg_u64x1, arg_u64x1, 64); vsra_n_u64(arg_u64x1, arg_u64x1, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}} vsra_n_u64(arg_u64x1, arg_u64x1, 65); // expected-error-re {{argument value {{.*}} is outside the valid range}} vsraq_n_u64(arg_u64x2, arg_u64x2, 1); vsraq_n_u64(arg_u64x2, arg_u64x2, 64); vsraq_n_u64(arg_u64x2, arg_u64x2, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}} vsraq_n_u64(arg_u64x2, arg_u64x2, 65); // expected-error-re {{argument value {{.*}} is outside the valid range}} vsrad_n_u64(arg_u64, arg_u64, 1); vsrad_n_u64(arg_u64, arg_u64, 64); vsrad_n_u64(arg_u64, arg_u64, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}} vsrad_n_u64(arg_u64, arg_u64, 65); // expected-error-re {{argument value {{.*}} is outside the valid range}} } void test_vector_rounding_shift_right_and_accumulate_s8(int8x8_t arg_i8x8, int8x16_t arg_i8x16) { vrsra_n_s8(arg_i8x8, arg_i8x8, 1); vrsra_n_s8(arg_i8x8, arg_i8x8, 8); vrsra_n_s8(arg_i8x8, arg_i8x8, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}} vrsra_n_s8(arg_i8x8, arg_i8x8, 9); // expected-error-re {{argument value {{.*}} is outside the valid range}} vrsraq_n_s8(arg_i8x16, arg_i8x16, 1); vrsraq_n_s8(arg_i8x16, arg_i8x16, 8); vrsraq_n_s8(arg_i8x16, arg_i8x16, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}} vrsraq_n_s8(arg_i8x16, arg_i8x16, 9); // expected-error-re {{argument value {{.*}} is outside the valid range}} } void test_vector_rounding_shift_right_and_accumulate_s16(int16x4_t arg_i16x4, int16x8_t arg_i16x8) { vrsra_n_s16(arg_i16x4, arg_i16x4, 1); vrsra_n_s16(arg_i16x4, arg_i16x4, 16); vrsra_n_s16(arg_i16x4, arg_i16x4, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}} vrsra_n_s16(arg_i16x4, arg_i16x4, 17); // expected-error-re {{argument value {{.*}} is outside the valid range}} vrsraq_n_s16(arg_i16x8, arg_i16x8, 1); vrsraq_n_s16(arg_i16x8, arg_i16x8, 16); vrsraq_n_s16(arg_i16x8, arg_i16x8, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}} vrsraq_n_s16(arg_i16x8, arg_i16x8, 17); // expected-error-re {{argument value {{.*}} is outside the valid range}} } void test_vector_rounding_shift_right_and_accumulate_s32(int32x2_t arg_i32x2, int32x4_t arg_i32x4) { vrsra_n_s32(arg_i32x2, arg_i32x2, 1); vrsra_n_s32(arg_i32x2, arg_i32x2, 32); vrsra_n_s32(arg_i32x2, arg_i32x2, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}} vrsra_n_s32(arg_i32x2, arg_i32x2, 33); // expected-error-re {{argument value {{.*}} is outside the valid range}} vrsraq_n_s32(arg_i32x4, arg_i32x4, 1); vrsraq_n_s32(arg_i32x4, arg_i32x4, 32); vrsraq_n_s32(arg_i32x4, arg_i32x4, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}} vrsraq_n_s32(arg_i32x4, arg_i32x4, 33); // expected-error-re {{argument value {{.*}} is outside the valid range}} } void test_vector_rounding_shift_right_and_accumulate_s64(int64_t arg_i64, int64x1_t arg_i64x1, int64x2_t arg_i64x2) { vrsra_n_s64(arg_i64x1, arg_i64x1, 1); vrsra_n_s64(arg_i64x1, arg_i64x1, 64); vrsra_n_s64(arg_i64x1, arg_i64x1, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}} vrsra_n_s64(arg_i64x1, arg_i64x1, 65); // expected-error-re {{argument value {{.*}} is outside the valid range}} vrsraq_n_s64(arg_i64x2, arg_i64x2, 1); vrsraq_n_s64(arg_i64x2, arg_i64x2, 64); vrsraq_n_s64(arg_i64x2, arg_i64x2, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}} vrsraq_n_s64(arg_i64x2, arg_i64x2, 65); // expected-error-re {{argument value {{.*}} is outside the valid range}} vrsrad_n_s64(arg_i64, arg_i64, 1); vrsrad_n_s64(arg_i64, arg_i64, 64); vrsrad_n_s64(arg_i64, arg_i64, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}} vrsrad_n_s64(arg_i64, arg_i64, 65); // expected-error-re {{argument value {{.*}} is outside the valid range}} } void test_vector_rounding_shift_right_and_accumulate_u8(uint8x16_t arg_u8x16, uint8x8_t arg_u8x8) { vrsra_n_u8(arg_u8x8, arg_u8x8, 1); vrsra_n_u8(arg_u8x8, arg_u8x8, 8); vrsra_n_u8(arg_u8x8, arg_u8x8, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}} vrsra_n_u8(arg_u8x8, arg_u8x8, 9); // expected-error-re {{argument value {{.*}} is outside the valid range}} vrsraq_n_u8(arg_u8x16, arg_u8x16, 1); vrsraq_n_u8(arg_u8x16, arg_u8x16, 8); vrsraq_n_u8(arg_u8x16, arg_u8x16, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}} vrsraq_n_u8(arg_u8x16, arg_u8x16, 9); // expected-error-re {{argument value {{.*}} is outside the valid range}} } void test_vector_rounding_shift_right_and_accumulate_u16(uint16x8_t arg_u16x8, uint16x4_t arg_u16x4) { vrsra_n_u16(arg_u16x4, arg_u16x4, 1); vrsra_n_u16(arg_u16x4, arg_u16x4, 16); vrsra_n_u16(arg_u16x4, arg_u16x4, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}} vrsra_n_u16(arg_u16x4, arg_u16x4, 17); // expected-error-re {{argument value {{.*}} is outside the valid range}} vrsraq_n_u16(arg_u16x8, arg_u16x8, 1); vrsraq_n_u16(arg_u16x8, arg_u16x8, 16); vrsraq_n_u16(arg_u16x8, arg_u16x8, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}} vrsraq_n_u16(arg_u16x8, arg_u16x8, 17); // expected-error-re {{argument value {{.*}} is outside the valid range}} } void test_vector_rounding_shift_right_and_accumulate_u32(uint32x2_t arg_u32x2, uint32x4_t arg_u32x4) { vrsra_n_u32(arg_u32x2, arg_u32x2, 1); vrsra_n_u32(arg_u32x2, arg_u32x2, 32); vrsra_n_u32(arg_u32x2, arg_u32x2, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}} vrsra_n_u32(arg_u32x2, arg_u32x2, 33); // expected-error-re {{argument value {{.*}} is outside the valid range}} vrsraq_n_u32(arg_u32x4, arg_u32x4, 1); vrsraq_n_u32(arg_u32x4, arg_u32x4, 32); vrsraq_n_u32(arg_u32x4, arg_u32x4, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}} vrsraq_n_u32(arg_u32x4, arg_u32x4, 33); // expected-error-re {{argument value {{.*}} is outside the valid range}} } void test_vector_rounding_shift_right_and_accumulate_u64(uint64x2_t arg_u64x2, uint64_t arg_u64, uint64x1_t arg_u64x1) { vrsra_n_u64(arg_u64x1, arg_u64x1, 1); vrsra_n_u64(arg_u64x1, arg_u64x1, 64); vrsra_n_u64(arg_u64x1, arg_u64x1, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}} vrsra_n_u64(arg_u64x1, arg_u64x1, 65); // expected-error-re {{argument value {{.*}} is outside the valid range}} vrsraq_n_u64(arg_u64x2, arg_u64x2, 1); vrsraq_n_u64(arg_u64x2, arg_u64x2, 64); vrsraq_n_u64(arg_u64x2, arg_u64x2, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}} vrsraq_n_u64(arg_u64x2, arg_u64x2, 65); // expected-error-re {{argument value {{.*}} is outside the valid range}} vrsrad_n_u64(arg_u64, arg_u64, 1); vrsrad_n_u64(arg_u64, arg_u64, 64); vrsrad_n_u64(arg_u64, arg_u64, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}} vrsrad_n_u64(arg_u64, arg_u64, 65); // expected-error-re {{argument value {{.*}} is outside the valid range}} } void test_vector_shift_right_and_narrow_s16(int16x8_t arg_i16x8, int8x8_t arg_i8x8) { vshrn_n_s16(arg_i16x8, 1); vshrn_n_s16(arg_i16x8, 8); vshrn_n_s16(arg_i16x8, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}} vshrn_n_s16(arg_i16x8, 9); // expected-error-re {{argument value {{.*}} is outside the valid range}} vshrn_high_n_s16(arg_i8x8, arg_i16x8, 1); vshrn_high_n_s16(arg_i8x8, arg_i16x8, 8); vshrn_high_n_s16(arg_i8x8, arg_i16x8, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}} vshrn_high_n_s16(arg_i8x8, arg_i16x8, 9); // expected-error-re {{argument value {{.*}} is outside the valid range}} } void test_vector_shift_right_and_narrow_s32(int32x4_t arg_i32x4, int16x4_t arg_i16x4) { vshrn_n_s32(arg_i32x4, 1); vshrn_n_s32(arg_i32x4, 16); vshrn_n_s32(arg_i32x4, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}} vshrn_n_s32(arg_i32x4, 17); // expected-error-re {{argument value {{.*}} is outside the valid range}} vshrn_high_n_s32(arg_i16x4, arg_i32x4, 1); vshrn_high_n_s32(arg_i16x4, arg_i32x4, 16); vshrn_high_n_s32(arg_i16x4, arg_i32x4, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}} vshrn_high_n_s32(arg_i16x4, arg_i32x4, 17); // expected-error-re {{argument value {{.*}} is outside the valid range}} } void test_vector_shift_right_and_narrow_s64(int32x2_t arg_i32x2, int64x2_t arg_i64x2) { vshrn_n_s64(arg_i64x2, 1); vshrn_n_s64(arg_i64x2, 32); vshrn_n_s64(arg_i64x2, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}} vshrn_n_s64(arg_i64x2, 33); // expected-error-re {{argument value {{.*}} is outside the valid range}} vshrn_high_n_s64(arg_i32x2, arg_i64x2, 1); vshrn_high_n_s64(arg_i32x2, arg_i64x2, 32); vshrn_high_n_s64(arg_i32x2, arg_i64x2, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}} vshrn_high_n_s64(arg_i32x2, arg_i64x2, 33); // expected-error-re {{argument value {{.*}} is outside the valid range}} } void test_vector_shift_right_and_narrow_u16(uint16x8_t arg_u16x8, uint8x8_t arg_u8x8) { vshrn_n_u16(arg_u16x8, 1); vshrn_n_u16(arg_u16x8, 8); vshrn_n_u16(arg_u16x8, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}} vshrn_n_u16(arg_u16x8, 9); // expected-error-re {{argument value {{.*}} is outside the valid range}} vshrn_high_n_u16(arg_u8x8, arg_u16x8, 1); vshrn_high_n_u16(arg_u8x8, arg_u16x8, 8); vshrn_high_n_u16(arg_u8x8, arg_u16x8, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}} vshrn_high_n_u16(arg_u8x8, arg_u16x8, 9); // expected-error-re {{argument value {{.*}} is outside the valid range}} } void test_vector_shift_right_and_narrow_u32(uint32x4_t arg_u32x4, uint16x4_t arg_u16x4) { vshrn_n_u32(arg_u32x4, 1); vshrn_n_u32(arg_u32x4, 16); vshrn_n_u32(arg_u32x4, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}} vshrn_n_u32(arg_u32x4, 17); // expected-error-re {{argument value {{.*}} is outside the valid range}} vshrn_high_n_u32(arg_u16x4, arg_u32x4, 1); vshrn_high_n_u32(arg_u16x4, arg_u32x4, 16); vshrn_high_n_u32(arg_u16x4, arg_u32x4, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}} vshrn_high_n_u32(arg_u16x4, arg_u32x4, 17); // expected-error-re {{argument value {{.*}} is outside the valid range}} } void test_vector_shift_right_and_narrow_u64(uint64x2_t arg_u64x2, uint32x2_t arg_u32x2) { vshrn_n_u64(arg_u64x2, 1); vshrn_n_u64(arg_u64x2, 32); vshrn_n_u64(arg_u64x2, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}} vshrn_n_u64(arg_u64x2, 33); // expected-error-re {{argument value {{.*}} is outside the valid range}} vshrn_high_n_u64(arg_u32x2, arg_u64x2, 1); vshrn_high_n_u64(arg_u32x2, arg_u64x2, 32); vshrn_high_n_u64(arg_u32x2, arg_u64x2, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}} vshrn_high_n_u64(arg_u32x2, arg_u64x2, 33); // expected-error-re {{argument value {{.*}} is outside the valid range}} } void test_vector_saturating_shift_right_and_narrow_s16(int16x8_t arg_i16x8, uint8x8_t arg_u8x8, int16_t arg_i16, int8x8_t arg_i8x8) { vqshrun_n_s16(arg_i16x8, 1); vqshrun_n_s16(arg_i16x8, 8); vqshrun_n_s16(arg_i16x8, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}} vqshrun_n_s16(arg_i16x8, 9); // expected-error-re {{argument value {{.*}} is outside the valid range}} vqshrunh_n_s16(arg_i16, 1); vqshrunh_n_s16(arg_i16, 8); vqshrunh_n_s16(arg_i16, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}} vqshrunh_n_s16(arg_i16, 9); // expected-error-re {{argument value {{.*}} is outside the valid range}} vqshrun_high_n_s16(arg_u8x8, arg_i16x8, 1); vqshrun_high_n_s16(arg_u8x8, arg_i16x8, 8); vqshrun_high_n_s16(arg_u8x8, arg_i16x8, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}} vqshrun_high_n_s16(arg_u8x8, arg_i16x8, 9); // expected-error-re {{argument value {{.*}} is outside the valid range}} vqshrn_n_s16(arg_i16x8, 1); vqshrn_n_s16(arg_i16x8, 8); vqshrn_n_s16(arg_i16x8, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}} vqshrn_n_s16(arg_i16x8, 9); // expected-error-re {{argument value {{.*}} is outside the valid range}} vqshrnh_n_s16(arg_i16, 1); vqshrnh_n_s16(arg_i16, 8); vqshrnh_n_s16(arg_i16, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}} vqshrnh_n_s16(arg_i16, 9); // expected-error-re {{argument value {{.*}} is outside the valid range}} vqshrn_high_n_s16(arg_i8x8, arg_i16x8, 1); vqshrn_high_n_s16(arg_i8x8, arg_i16x8, 8); vqshrn_high_n_s16(arg_i8x8, arg_i16x8, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}} vqshrn_high_n_s16(arg_i8x8, arg_i16x8, 9); // expected-error-re {{argument value {{.*}} is outside the valid range}} } void test_vector_saturating_shift_right_and_narrow_s32(int16x4_t arg_i16x4, int32_t arg_i32, int32x4_t arg_i32x4, uint16x4_t arg_u16x4) { vqshrun_n_s32(arg_i32x4, 1); vqshrun_n_s32(arg_i32x4, 16); vqshrun_n_s32(arg_i32x4, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}} vqshrun_n_s32(arg_i32x4, 17); // expected-error-re {{argument value {{.*}} is outside the valid range}} vqshruns_n_s32(arg_i32, 1); vqshruns_n_s32(arg_i32, 16); vqshruns_n_s32(arg_i32, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}} vqshruns_n_s32(arg_i32, 17); // expected-error-re {{argument value {{.*}} is outside the valid range}} vqshrun_high_n_s32(arg_u16x4, arg_i32x4, 1); vqshrun_high_n_s32(arg_u16x4, arg_i32x4, 16); vqshrun_high_n_s32(arg_u16x4, arg_i32x4, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}} vqshrun_high_n_s32(arg_u16x4, arg_i32x4, 17); // expected-error-re {{argument value {{.*}} is outside the valid range}} vqshrn_n_s32(arg_i32x4, 1); vqshrn_n_s32(arg_i32x4, 16); vqshrn_n_s32(arg_i32x4, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}} vqshrn_n_s32(arg_i32x4, 17); // expected-error-re {{argument value {{.*}} is outside the valid range}} vqshrns_n_s32(arg_i32, 1); vqshrns_n_s32(arg_i32, 16); vqshrns_n_s32(arg_i32, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}} vqshrns_n_s32(arg_i32, 17); // expected-error-re {{argument value {{.*}} is outside the valid range}} vqshrn_high_n_s32(arg_i16x4, arg_i32x4, 1); vqshrn_high_n_s32(arg_i16x4, arg_i32x4, 16); vqshrn_high_n_s32(arg_i16x4, arg_i32x4, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}} vqshrn_high_n_s32(arg_i16x4, arg_i32x4, 17); // expected-error-re {{argument value {{.*}} is outside the valid range}} } void test_vector_saturating_shift_right_and_narrow_s64(uint32x2_t arg_u32x2, int64x2_t arg_i64x2, int32x2_t arg_i32x2, int64_t arg_i64) { vqshrun_n_s64(arg_i64x2, 1); vqshrun_n_s64(arg_i64x2, 32); vqshrun_n_s64(arg_i64x2, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}} vqshrun_n_s64(arg_i64x2, 33); // expected-error-re {{argument value {{.*}} is outside the valid range}} vqshrund_n_s64(arg_i64, 1); vqshrund_n_s64(arg_i64, 32); vqshrund_n_s64(arg_i64, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}} vqshrund_n_s64(arg_i64, 33); // expected-error-re {{argument value {{.*}} is outside the valid range}} vqshrun_high_n_s64(arg_u32x2, arg_i64x2, 1); vqshrun_high_n_s64(arg_u32x2, arg_i64x2, 32); vqshrun_high_n_s64(arg_u32x2, arg_i64x2, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}} vqshrun_high_n_s64(arg_u32x2, arg_i64x2, 33); // expected-error-re {{argument value {{.*}} is outside the valid range}} vqshrn_n_s64(arg_i64x2, 1); vqshrn_n_s64(arg_i64x2, 32); vqshrn_n_s64(arg_i64x2, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}} vqshrn_n_s64(arg_i64x2, 33); // expected-error-re {{argument value {{.*}} is outside the valid range}} vqshrnd_n_s64(arg_i64, 1); vqshrnd_n_s64(arg_i64, 32); vqshrnd_n_s64(arg_i64, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}} vqshrnd_n_s64(arg_i64, 33); // expected-error-re {{argument value {{.*}} is outside the valid range}} vqshrn_high_n_s64(arg_i32x2, arg_i64x2, 1); vqshrn_high_n_s64(arg_i32x2, arg_i64x2, 32); vqshrn_high_n_s64(arg_i32x2, arg_i64x2, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}} vqshrn_high_n_s64(arg_i32x2, arg_i64x2, 33); // expected-error-re {{argument value {{.*}} is outside the valid range}} } void test_vector_saturating_shift_right_and_narrow_u16(uint16x8_t arg_u16x8, uint16_t arg_u16, uint8x8_t arg_u8x8) { vqshrn_n_u16(arg_u16x8, 1); vqshrn_n_u16(arg_u16x8, 8); vqshrn_n_u16(arg_u16x8, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}} vqshrn_n_u16(arg_u16x8, 9); // expected-error-re {{argument value {{.*}} is outside the valid range}} vqshrnh_n_u16(arg_u16, 1); vqshrnh_n_u16(arg_u16, 8); vqshrnh_n_u16(arg_u16, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}} vqshrnh_n_u16(arg_u16, 9); // expected-error-re {{argument value {{.*}} is outside the valid range}} vqshrn_high_n_u16(arg_u8x8, arg_u16x8, 1); vqshrn_high_n_u16(arg_u8x8, arg_u16x8, 8); vqshrn_high_n_u16(arg_u8x8, arg_u16x8, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}} vqshrn_high_n_u16(arg_u8x8, arg_u16x8, 9); // expected-error-re {{argument value {{.*}} is outside the valid range}} } void test_vector_saturating_shift_right_and_narrow_u32(uint32x4_t arg_u32x4, uint32_t arg_u32, uint16x4_t arg_u16x4) { vqshrn_n_u32(arg_u32x4, 1); vqshrn_n_u32(arg_u32x4, 16); vqshrn_n_u32(arg_u32x4, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}} vqshrn_n_u32(arg_u32x4, 17); // expected-error-re {{argument value {{.*}} is outside the valid range}} vqshrns_n_u32(arg_u32, 1); vqshrns_n_u32(arg_u32, 16); vqshrns_n_u32(arg_u32, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}} vqshrns_n_u32(arg_u32, 17); // expected-error-re {{argument value {{.*}} is outside the valid range}} vqshrn_high_n_u32(arg_u16x4, arg_u32x4, 1); vqshrn_high_n_u32(arg_u16x4, arg_u32x4, 16); vqshrn_high_n_u32(arg_u16x4, arg_u32x4, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}} vqshrn_high_n_u32(arg_u16x4, arg_u32x4, 17); // expected-error-re {{argument value {{.*}} is outside the valid range}} } void test_vector_saturating_shift_right_and_narrow_u64(uint64x2_t arg_u64x2, uint32x2_t arg_u32x2, uint64_t arg_u64) { vqshrn_n_u64(arg_u64x2, 1); vqshrn_n_u64(arg_u64x2, 32); vqshrn_n_u64(arg_u64x2, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}} vqshrn_n_u64(arg_u64x2, 33); // expected-error-re {{argument value {{.*}} is outside the valid range}} vqshrnd_n_u64(arg_u64, 1); vqshrnd_n_u64(arg_u64, 32); vqshrnd_n_u64(arg_u64, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}} vqshrnd_n_u64(arg_u64, 33); // expected-error-re {{argument value {{.*}} is outside the valid range}} vqshrn_high_n_u64(arg_u32x2, arg_u64x2, 1); vqshrn_high_n_u64(arg_u32x2, arg_u64x2, 32); vqshrn_high_n_u64(arg_u32x2, arg_u64x2, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}} vqshrn_high_n_u64(arg_u32x2, arg_u64x2, 33); // expected-error-re {{argument value {{.*}} is outside the valid range}} } void test_vector_saturating_rounding_shift_right_and_narrow_s16(int16x8_t arg_i16x8, uint8x8_t arg_u8x8, int16_t arg_i16, int8x8_t arg_i8x8) { vqrshrun_n_s16(arg_i16x8, 1); vqrshrun_n_s16(arg_i16x8, 8); vqrshrun_n_s16(arg_i16x8, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}} vqrshrun_n_s16(arg_i16x8, 9); // expected-error-re {{argument value {{.*}} is outside the valid range}} vqrshrunh_n_s16(arg_i16, 1); vqrshrunh_n_s16(arg_i16, 8); vqrshrunh_n_s16(arg_i16, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}} vqrshrunh_n_s16(arg_i16, 9); // expected-error-re {{argument value {{.*}} is outside the valid range}} vqrshrun_high_n_s16(arg_u8x8, arg_i16x8, 1); vqrshrun_high_n_s16(arg_u8x8, arg_i16x8, 8); vqrshrun_high_n_s16(arg_u8x8, arg_i16x8, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}} vqrshrun_high_n_s16(arg_u8x8, arg_i16x8, 9); // expected-error-re {{argument value {{.*}} is outside the valid range}} vqrshrn_n_s16(arg_i16x8, 1); vqrshrn_n_s16(arg_i16x8, 8); vqrshrn_n_s16(arg_i16x8, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}} vqrshrn_n_s16(arg_i16x8, 9); // expected-error-re {{argument value {{.*}} is outside the valid range}} vqrshrnh_n_s16(arg_i16, 1); vqrshrnh_n_s16(arg_i16, 8); vqrshrnh_n_s16(arg_i16, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}} vqrshrnh_n_s16(arg_i16, 9); // expected-error-re {{argument value {{.*}} is outside the valid range}} vqrshrn_high_n_s16(arg_i8x8, arg_i16x8, 1); vqrshrn_high_n_s16(arg_i8x8, arg_i16x8, 8); vqrshrn_high_n_s16(arg_i8x8, arg_i16x8, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}} vqrshrn_high_n_s16(arg_i8x8, arg_i16x8, 9); // expected-error-re {{argument value {{.*}} is outside the valid range}} } void test_vector_saturating_rounding_shift_right_and_narrow_s32(int16x4_t arg_i16x4, int32_t arg_i32, int32x4_t arg_i32x4, uint16x4_t arg_u16x4) { vqrshrun_n_s32(arg_i32x4, 1); vqrshrun_n_s32(arg_i32x4, 16); vqrshrun_n_s32(arg_i32x4, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}} vqrshrun_n_s32(arg_i32x4, 17); // expected-error-re {{argument value {{.*}} is outside the valid range}} vqrshruns_n_s32(arg_i32, 1); vqrshruns_n_s32(arg_i32, 16); vqrshruns_n_s32(arg_i32, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}} vqrshruns_n_s32(arg_i32, 17); // expected-error-re {{argument value {{.*}} is outside the valid range}} vqrshrun_high_n_s32(arg_u16x4, arg_i32x4, 1); vqrshrun_high_n_s32(arg_u16x4, arg_i32x4, 16); vqrshrun_high_n_s32(arg_u16x4, arg_i32x4, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}} vqrshrun_high_n_s32(arg_u16x4, arg_i32x4, 17); // expected-error-re {{argument value {{.*}} is outside the valid range}} vqrshrn_n_s32(arg_i32x4, 1); vqrshrn_n_s32(arg_i32x4, 16); vqrshrn_n_s32(arg_i32x4, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}} vqrshrn_n_s32(arg_i32x4, 17); // expected-error-re {{argument value {{.*}} is outside the valid range}} vqrshrns_n_s32(arg_i32, 1); vqrshrns_n_s32(arg_i32, 16); vqrshrns_n_s32(arg_i32, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}} vqrshrns_n_s32(arg_i32, 17); // expected-error-re {{argument value {{.*}} is outside the valid range}} vqrshrn_high_n_s32(arg_i16x4, arg_i32x4, 1); vqrshrn_high_n_s32(arg_i16x4, arg_i32x4, 16); vqrshrn_high_n_s32(arg_i16x4, arg_i32x4, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}} vqrshrn_high_n_s32(arg_i16x4, arg_i32x4, 17); // expected-error-re {{argument value {{.*}} is outside the valid range}} } void test_vector_saturating_rounding_shift_right_and_narrow_s64(uint32x2_t arg_u32x2, int64x2_t arg_i64x2, int32x2_t arg_i32x2, int64_t arg_i64) { vqrshrun_n_s64(arg_i64x2, 1); vqrshrun_n_s64(arg_i64x2, 32); vqrshrun_n_s64(arg_i64x2, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}} vqrshrun_n_s64(arg_i64x2, 33); // expected-error-re {{argument value {{.*}} is outside the valid range}} vqrshrund_n_s64(arg_i64, 1); vqrshrund_n_s64(arg_i64, 32); vqrshrund_n_s64(arg_i64, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}} vqrshrund_n_s64(arg_i64, 33); // expected-error-re {{argument value {{.*}} is outside the valid range}} vqrshrun_high_n_s64(arg_u32x2, arg_i64x2, 1); vqrshrun_high_n_s64(arg_u32x2, arg_i64x2, 32); vqrshrun_high_n_s64(arg_u32x2, arg_i64x2, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}} vqrshrun_high_n_s64(arg_u32x2, arg_i64x2, 33); // expected-error-re {{argument value {{.*}} is outside the valid range}} vqrshrn_n_s64(arg_i64x2, 1); vqrshrn_n_s64(arg_i64x2, 32); vqrshrn_n_s64(arg_i64x2, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}} vqrshrn_n_s64(arg_i64x2, 33); // expected-error-re {{argument value {{.*}} is outside the valid range}} vqrshrnd_n_s64(arg_i64, 1); vqrshrnd_n_s64(arg_i64, 32); vqrshrnd_n_s64(arg_i64, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}} vqrshrnd_n_s64(arg_i64, 33); // expected-error-re {{argument value {{.*}} is outside the valid range}} vqrshrn_high_n_s64(arg_i32x2, arg_i64x2, 1); vqrshrn_high_n_s64(arg_i32x2, arg_i64x2, 32); vqrshrn_high_n_s64(arg_i32x2, arg_i64x2, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}} vqrshrn_high_n_s64(arg_i32x2, arg_i64x2, 33); // expected-error-re {{argument value {{.*}} is outside the valid range}} } void test_vector_saturating_rounding_shift_right_and_narrow_u16(uint16x8_t arg_u16x8, uint16_t arg_u16, uint8x8_t arg_u8x8) { vqrshrn_n_u16(arg_u16x8, 1); vqrshrn_n_u16(arg_u16x8, 8); vqrshrn_n_u16(arg_u16x8, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}} vqrshrn_n_u16(arg_u16x8, 9); // expected-error-re {{argument value {{.*}} is outside the valid range}} vqrshrnh_n_u16(arg_u16, 1); vqrshrnh_n_u16(arg_u16, 8); vqrshrnh_n_u16(arg_u16, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}} vqrshrnh_n_u16(arg_u16, 9); // expected-error-re {{argument value {{.*}} is outside the valid range}} vqrshrn_high_n_u16(arg_u8x8, arg_u16x8, 1); vqrshrn_high_n_u16(arg_u8x8, arg_u16x8, 8); vqrshrn_high_n_u16(arg_u8x8, arg_u16x8, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}} vqrshrn_high_n_u16(arg_u8x8, arg_u16x8, 9); // expected-error-re {{argument value {{.*}} is outside the valid range}} } void test_vector_saturating_rounding_shift_right_and_narrow_u32(uint32x4_t arg_u32x4, uint32_t arg_u32, uint16x4_t arg_u16x4) { vqrshrn_n_u32(arg_u32x4, 1); vqrshrn_n_u32(arg_u32x4, 16); vqrshrn_n_u32(arg_u32x4, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}} vqrshrn_n_u32(arg_u32x4, 17); // expected-error-re {{argument value {{.*}} is outside the valid range}} vqrshrns_n_u32(arg_u32, 1); vqrshrns_n_u32(arg_u32, 16); vqrshrns_n_u32(arg_u32, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}} vqrshrns_n_u32(arg_u32, 17); // expected-error-re {{argument value {{.*}} is outside the valid range}} vqrshrn_high_n_u32(arg_u16x4, arg_u32x4, 1); vqrshrn_high_n_u32(arg_u16x4, arg_u32x4, 16); vqrshrn_high_n_u32(arg_u16x4, arg_u32x4, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}} vqrshrn_high_n_u32(arg_u16x4, arg_u32x4, 17); // expected-error-re {{argument value {{.*}} is outside the valid range}} } void test_vector_saturating_rounding_shift_right_and_narrow_u64(uint64x2_t arg_u64x2, uint32x2_t arg_u32x2, uint64_t arg_u64) { vqrshrn_n_u64(arg_u64x2, 1); vqrshrn_n_u64(arg_u64x2, 32); vqrshrn_n_u64(arg_u64x2, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}} vqrshrn_n_u64(arg_u64x2, 33); // expected-error-re {{argument value {{.*}} is outside the valid range}} vqrshrnd_n_u64(arg_u64, 1); vqrshrnd_n_u64(arg_u64, 32); vqrshrnd_n_u64(arg_u64, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}} vqrshrnd_n_u64(arg_u64, 33); // expected-error-re {{argument value {{.*}} is outside the valid range}} vqrshrn_high_n_u64(arg_u32x2, arg_u64x2, 1); vqrshrn_high_n_u64(arg_u32x2, arg_u64x2, 32); vqrshrn_high_n_u64(arg_u32x2, arg_u64x2, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}} vqrshrn_high_n_u64(arg_u32x2, arg_u64x2, 33); // expected-error-re {{argument value {{.*}} is outside the valid range}} } void test_vector_rounding_shift_right_and_narrow_s16(int16x8_t arg_i16x8, int8x8_t arg_i8x8) { vrshrn_n_s16(arg_i16x8, 1); vrshrn_n_s16(arg_i16x8, 8); vrshrn_n_s16(arg_i16x8, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}} vrshrn_n_s16(arg_i16x8, 9); // expected-error-re {{argument value {{.*}} is outside the valid range}} vrshrn_high_n_s16(arg_i8x8, arg_i16x8, 1); vrshrn_high_n_s16(arg_i8x8, arg_i16x8, 8); vrshrn_high_n_s16(arg_i8x8, arg_i16x8, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}} vrshrn_high_n_s16(arg_i8x8, arg_i16x8, 9); // expected-error-re {{argument value {{.*}} is outside the valid range}} } void test_vector_rounding_shift_right_and_narrow_s32(int32x4_t arg_i32x4, int16x4_t arg_i16x4) { vrshrn_n_s32(arg_i32x4, 1); vrshrn_n_s32(arg_i32x4, 16); vrshrn_n_s32(arg_i32x4, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}} vrshrn_n_s32(arg_i32x4, 17); // expected-error-re {{argument value {{.*}} is outside the valid range}} vrshrn_high_n_s32(arg_i16x4, arg_i32x4, 1); vrshrn_high_n_s32(arg_i16x4, arg_i32x4, 16); vrshrn_high_n_s32(arg_i16x4, arg_i32x4, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}} vrshrn_high_n_s32(arg_i16x4, arg_i32x4, 17); // expected-error-re {{argument value {{.*}} is outside the valid range}} } void test_vector_rounding_shift_right_and_narrow_s64(int32x2_t arg_i32x2, int64x2_t arg_i64x2) { vrshrn_n_s64(arg_i64x2, 1); vrshrn_n_s64(arg_i64x2, 32); vrshrn_n_s64(arg_i64x2, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}} vrshrn_n_s64(arg_i64x2, 33); // expected-error-re {{argument value {{.*}} is outside the valid range}} vrshrn_high_n_s64(arg_i32x2, arg_i64x2, 1); vrshrn_high_n_s64(arg_i32x2, arg_i64x2, 32); vrshrn_high_n_s64(arg_i32x2, arg_i64x2, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}} vrshrn_high_n_s64(arg_i32x2, arg_i64x2, 33); // expected-error-re {{argument value {{.*}} is outside the valid range}} } void test_vector_rounding_shift_right_and_narrow_u16(uint16x8_t arg_u16x8, uint8x8_t arg_u8x8) { vrshrn_n_u16(arg_u16x8, 1); vrshrn_n_u16(arg_u16x8, 8); vrshrn_n_u16(arg_u16x8, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}} vrshrn_n_u16(arg_u16x8, 9); // expected-error-re {{argument value {{.*}} is outside the valid range}} vrshrn_high_n_u16(arg_u8x8, arg_u16x8, 1); vrshrn_high_n_u16(arg_u8x8, arg_u16x8, 8); vrshrn_high_n_u16(arg_u8x8, arg_u16x8, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}} vrshrn_high_n_u16(arg_u8x8, arg_u16x8, 9); // expected-error-re {{argument value {{.*}} is outside the valid range}} } void test_vector_rounding_shift_right_and_narrow_u32(uint32x4_t arg_u32x4, uint16x4_t arg_u16x4) { vrshrn_n_u32(arg_u32x4, 1); vrshrn_n_u32(arg_u32x4, 16); vrshrn_n_u32(arg_u32x4, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}} vrshrn_n_u32(arg_u32x4, 17); // expected-error-re {{argument value {{.*}} is outside the valid range}} vrshrn_high_n_u32(arg_u16x4, arg_u32x4, 1); vrshrn_high_n_u32(arg_u16x4, arg_u32x4, 16); vrshrn_high_n_u32(arg_u16x4, arg_u32x4, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}} vrshrn_high_n_u32(arg_u16x4, arg_u32x4, 17); // expected-error-re {{argument value {{.*}} is outside the valid range}} } void test_vector_rounding_shift_right_and_narrow_u64(uint64x2_t arg_u64x2, uint32x2_t arg_u32x2) { vrshrn_n_u64(arg_u64x2, 1); vrshrn_n_u64(arg_u64x2, 32); vrshrn_n_u64(arg_u64x2, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}} vrshrn_n_u64(arg_u64x2, 33); // expected-error-re {{argument value {{.*}} is outside the valid range}} vrshrn_high_n_u64(arg_u32x2, arg_u64x2, 1); vrshrn_high_n_u64(arg_u32x2, arg_u64x2, 32); vrshrn_high_n_u64(arg_u32x2, arg_u64x2, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}} vrshrn_high_n_u64(arg_u32x2, arg_u64x2, 33); // expected-error-re {{argument value {{.*}} is outside the valid range}} } void test_vector_shift_right_and_insert_s8(int8x8_t arg_i8x8, int8x16_t arg_i8x16) { vsri_n_s8(arg_i8x8, arg_i8x8, 1); vsri_n_s8(arg_i8x8, arg_i8x8, 8); vsri_n_s8(arg_i8x8, arg_i8x8, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}} vsri_n_s8(arg_i8x8, arg_i8x8, 9); // expected-error-re {{argument value {{.*}} is outside the valid range}} vsriq_n_s8(arg_i8x16, arg_i8x16, 1); vsriq_n_s8(arg_i8x16, arg_i8x16, 8); vsriq_n_s8(arg_i8x16, arg_i8x16, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}} vsriq_n_s8(arg_i8x16, arg_i8x16, 9); // expected-error-re {{argument value {{.*}} is outside the valid range}} } void test_vector_shift_right_and_insert_s16(int16x4_t arg_i16x4, int16x8_t arg_i16x8) { vsri_n_s16(arg_i16x4, arg_i16x4, 1); vsri_n_s16(arg_i16x4, arg_i16x4, 16); vsri_n_s16(arg_i16x4, arg_i16x4, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}} vsri_n_s16(arg_i16x4, arg_i16x4, 17); // expected-error-re {{argument value {{.*}} is outside the valid range}} vsriq_n_s16(arg_i16x8, arg_i16x8, 1); vsriq_n_s16(arg_i16x8, arg_i16x8, 16); vsriq_n_s16(arg_i16x8, arg_i16x8, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}} vsriq_n_s16(arg_i16x8, arg_i16x8, 17); // expected-error-re {{argument value {{.*}} is outside the valid range}} } void test_vector_shift_right_and_insert_s32(int32x2_t arg_i32x2, int32x4_t arg_i32x4) { vsri_n_s32(arg_i32x2, arg_i32x2, 1); vsri_n_s32(arg_i32x2, arg_i32x2, 32); vsri_n_s32(arg_i32x2, arg_i32x2, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}} vsri_n_s32(arg_i32x2, arg_i32x2, 33); // expected-error-re {{argument value {{.*}} is outside the valid range}} vsriq_n_s32(arg_i32x4, arg_i32x4, 1); vsriq_n_s32(arg_i32x4, arg_i32x4, 32); vsriq_n_s32(arg_i32x4, arg_i32x4, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}} vsriq_n_s32(arg_i32x4, arg_i32x4, 33); // expected-error-re {{argument value {{.*}} is outside the valid range}} } void test_vector_shift_right_and_insert_s64(int64_t arg_i64, int64x1_t arg_i64x1, int64x2_t arg_i64x2) { vsri_n_s64(arg_i64x1, arg_i64x1, 1); vsri_n_s64(arg_i64x1, arg_i64x1, 64); vsri_n_s64(arg_i64x1, arg_i64x1, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}} vsri_n_s64(arg_i64x1, arg_i64x1, 65); // expected-error-re {{argument value {{.*}} is outside the valid range}} vsriq_n_s64(arg_i64x2, arg_i64x2, 1); vsriq_n_s64(arg_i64x2, arg_i64x2, 64); vsriq_n_s64(arg_i64x2, arg_i64x2, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}} vsriq_n_s64(arg_i64x2, arg_i64x2, 65); // expected-error-re {{argument value {{.*}} is outside the valid range}} vsrid_n_s64(arg_i64, arg_i64, 1); vsrid_n_s64(arg_i64, arg_i64, 64); vsrid_n_s64(arg_i64, arg_i64, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}} vsrid_n_s64(arg_i64, arg_i64, 65); // expected-error-re {{argument value {{.*}} is outside the valid range}} } void test_vector_shift_right_and_insert_u8(uint8x16_t arg_u8x16, uint8x8_t arg_u8x8) { vsri_n_u8(arg_u8x8, arg_u8x8, 1); vsri_n_u8(arg_u8x8, arg_u8x8, 8); vsri_n_u8(arg_u8x8, arg_u8x8, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}} vsri_n_u8(arg_u8x8, arg_u8x8, 9); // expected-error-re {{argument value {{.*}} is outside the valid range}} vsriq_n_u8(arg_u8x16, arg_u8x16, 1); vsriq_n_u8(arg_u8x16, arg_u8x16, 8); vsriq_n_u8(arg_u8x16, arg_u8x16, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}} vsriq_n_u8(arg_u8x16, arg_u8x16, 9); // expected-error-re {{argument value {{.*}} is outside the valid range}} } void test_vector_shift_right_and_insert_u16(uint16x8_t arg_u16x8, uint16x4_t arg_u16x4) { vsri_n_u16(arg_u16x4, arg_u16x4, 1); vsri_n_u16(arg_u16x4, arg_u16x4, 16); vsri_n_u16(arg_u16x4, arg_u16x4, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}} vsri_n_u16(arg_u16x4, arg_u16x4, 17); // expected-error-re {{argument value {{.*}} is outside the valid range}} vsriq_n_u16(arg_u16x8, arg_u16x8, 1); vsriq_n_u16(arg_u16x8, arg_u16x8, 16); vsriq_n_u16(arg_u16x8, arg_u16x8, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}} vsriq_n_u16(arg_u16x8, arg_u16x8, 17); // expected-error-re {{argument value {{.*}} is outside the valid range}} } void test_vector_shift_right_and_insert_u32(uint32x2_t arg_u32x2, uint32x4_t arg_u32x4) { vsri_n_u32(arg_u32x2, arg_u32x2, 1); vsri_n_u32(arg_u32x2, arg_u32x2, 32); vsri_n_u32(arg_u32x2, arg_u32x2, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}} vsri_n_u32(arg_u32x2, arg_u32x2, 33); // expected-error-re {{argument value {{.*}} is outside the valid range}} vsriq_n_u32(arg_u32x4, arg_u32x4, 1); vsriq_n_u32(arg_u32x4, arg_u32x4, 32); vsriq_n_u32(arg_u32x4, arg_u32x4, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}} vsriq_n_u32(arg_u32x4, arg_u32x4, 33); // expected-error-re {{argument value {{.*}} is outside the valid range}} } void test_vector_shift_right_and_insert_u64(uint64x2_t arg_u64x2, uint64_t arg_u64, uint64x1_t arg_u64x1) { vsri_n_u64(arg_u64x1, arg_u64x1, 1); vsri_n_u64(arg_u64x1, arg_u64x1, 64); vsri_n_u64(arg_u64x1, arg_u64x1, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}} vsri_n_u64(arg_u64x1, arg_u64x1, 65); // expected-error-re {{argument value {{.*}} is outside the valid range}} vsriq_n_u64(arg_u64x2, arg_u64x2, 1); vsriq_n_u64(arg_u64x2, arg_u64x2, 64); vsriq_n_u64(arg_u64x2, arg_u64x2, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}} vsriq_n_u64(arg_u64x2, arg_u64x2, 65); // expected-error-re {{argument value {{.*}} is outside the valid range}} vsrid_n_u64(arg_u64, arg_u64, 1); vsrid_n_u64(arg_u64, arg_u64, 64); vsrid_n_u64(arg_u64, arg_u64, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}} vsrid_n_u64(arg_u64, arg_u64, 65); // expected-error-re {{argument value {{.*}} is outside the valid range}} } void test_vector_shift_right_and_insert_p64(poly64x2_t arg_p64x2, poly64x1_t arg_p64x1) { vsri_n_p64(arg_p64x1, arg_p64x1, 1); vsri_n_p64(arg_p64x1, arg_p64x1, 64); vsri_n_p64(arg_p64x1, arg_p64x1, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}} vsri_n_p64(arg_p64x1, arg_p64x1, 65); // expected-error-re {{argument value {{.*}} is outside the valid range}} vsriq_n_p64(arg_p64x2, arg_p64x2, 1); vsriq_n_p64(arg_p64x2, arg_p64x2, 64); vsriq_n_p64(arg_p64x2, arg_p64x2, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}} vsriq_n_p64(arg_p64x2, arg_p64x2, 65); // expected-error-re {{argument value {{.*}} is outside the valid range}} } void test_vector_shift_right_and_insert_p8(poly8x16_t arg_p8x16, poly8x8_t arg_p8x8) { vsri_n_p8(arg_p8x8, arg_p8x8, 1); vsri_n_p8(arg_p8x8, arg_p8x8, 8); vsri_n_p8(arg_p8x8, arg_p8x8, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}} vsri_n_p8(arg_p8x8, arg_p8x8, 9); // expected-error-re {{argument value {{.*}} is outside the valid range}} vsriq_n_p8(arg_p8x16, arg_p8x16, 1); vsriq_n_p8(arg_p8x16, arg_p8x16, 8); vsriq_n_p8(arg_p8x16, arg_p8x16, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}} vsriq_n_p8(arg_p8x16, arg_p8x16, 9); // expected-error-re {{argument value {{.*}} is outside the valid range}} } void test_vector_shift_right_and_insert_p16(poly16x4_t arg_p16x4, poly16x8_t arg_p16x8) { vsri_n_p16(arg_p16x4, arg_p16x4, 1); vsri_n_p16(arg_p16x4, arg_p16x4, 16); vsri_n_p16(arg_p16x4, arg_p16x4, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}} vsri_n_p16(arg_p16x4, arg_p16x4, 17); // expected-error-re {{argument value {{.*}} is outside the valid range}} vsriq_n_p16(arg_p16x8, arg_p16x8, 1); vsriq_n_p16(arg_p16x8, arg_p16x8, 16); vsriq_n_p16(arg_p16x8, arg_p16x8, 0); // expected-error-re {{argument value {{.*}} is outside the valid range}} vsriq_n_p16(arg_p16x8, arg_p16x8, 17); // expected-error-re {{argument value {{.*}} is outside the valid range}} }