@@ -258,7 +258,7 @@ aarch64_types_store1_qualifiers[SIMD_MAX_BUILTIN_ARGS]
static enum aarch64_type_qualifiers
aarch64_types_storestruct_lane_qualifiers[SIMD_MAX_BUILTIN_ARGS]
= { qualifier_void, qualifier_pointer_map_mode,
- qualifier_none, qualifier_none };
+ qualifier_none, qualifier_struct_load_store_lane_index };
#define TYPES_STORESTRUCT_LANE (aarch64_types_storestruct_lane_qualifiers)
#define CF0(N, X) CODE_FOR_aarch64_##N##X
new file mode 100644
@@ -0,0 +1,15 @@
+/* Test error message when passing an invalid value as a lane index. */
+
+/* { dg-do compile } */
+
+#include <arm_neon.h>
+
+void
+f_vst4q_lane (int8_t * p, int8x16x4_t v)
+{
+ vst4q_lane_s8 (p, v, 16);
+/* { dg-error "lane 16 out of range 0 - 15" "" { target *-*-* } 0 } */
+ return;
+}
+
+
From: Charles Baylis <charles.baylis@linaro.org> gcc/ChangeLog: <DATE> Charles Baylis <charles.baylis@linaro.org> * config/aarch64/aarch64-builtins.c (aarch64_types_storestruct_lane_qualifiers): Mark last argument with qualifier_struct_load_store_lane_index. gcc/testsuite/ChangeLog: <DATE> Charles Baylis <charles.baylis@linaro.org> * gcc.target/aarch64/simd/vst4q_lane.c: New test. Change-Id: If097c9d32eb6eb3d4c4e16db81f81e44a3154509 --- gcc/config/aarch64/aarch64-builtins.c | 2 +- gcc/testsuite/gcc.target/aarch64/simd/vst4q_lane.c | 15 +++++++++++++++ 2 files changed, 16 insertions(+), 1 deletion(-) create mode 100644 gcc/testsuite/gcc.target/aarch64/simd/vst4q_lane.c