aboutsummaryrefslogtreecommitdiff
path: root/gcc/testsuite/gcc.target/aarch64/simd/vst3q_lane_u32_indices_1.c
diff options
context:
space:
mode:
authorCharles Baylis <charles.baylis@linaro.org>2014-12-03 12:57:03 +0000
committerCharles Baylis <charles.baylis@linaro.org>2015-06-05 14:20:25 +0100
commit6ab58182de1936deaa1b83ec787306878d1ae999 (patch)
treefdc9649bc247ad49dfb4ae9aeca3f9c21ed3ff09 /gcc/testsuite/gcc.target/aarch64/simd/vst3q_lane_u32_indices_1.c
parent0ea7cdf701d6084984237858ec8106c6c90302c0 (diff)
[AArch64] PR63870 Improve error messages for NEON single lane memory alinaro-local/cbaylis-test1
ccess intrinsics gcc/ChangeLog: <DATE> Charles Baylis <charles.baylis@linaro.org> PR target/63870 * config/aarch64/aarch64-builtins.c (enum aarch64_type_qualifiers): Add qualifier_struct_load_store_lane_index. (aarch64_types_loadstruct_lane_qualifiers): Use qualifier_struct_load_store_lane_index for lane index argument for last argument. (aarch64_types_storestruct_lane_qualifiers): Ditto. (builtin_simd_arg): Add SIMD_ARG_STRUCT_LOAD_STORE_LANE_INDEX. (aarch64_simd_expand_args): Add new argument describing mode of builtin. Check lane bounds for arguments with SIMD_ARG_STRUCT_LOAD_STORE_LANE_INDEX. (aarch64_simd_expand_builtin): Emit error for incorrect lane indices if marked with SIMD_ARG_STRUCT_LOAD_STORE_LANE_INDEX. (aarch64_simd_expand_builtin): Handle arguments with qualifier_struct_load_store_lane_index. Pass machine mode of builtin to aarch64_simd_expand_args. * config/aarch64/aarch64-simd-builtins.def: Declare ld[234]_lane and vst[234]_lane with BUILTIN_VALLDIF. * config/aarch64/aarch64-simd.md: (aarch64_vec_load_lanesoi_lane<mode>): Use VALLDIF iterator. Perform endianness reversal on lane index. (aarch64_vec_load_lanesci_lane<mode>): Ditto. (aarch64_vec_load_lanesxi_lane<mode>): Ditto. (vec_store_lanesoi_lane<mode>): Use VALLDIF iterator. Fix typo in attribute. (vec_store_lanesci_lane<mode>): Use VALLDIF iterator. (vec_store_lanesxi_lane<mode>): Ditto. (aarch64_ld2_lane<mode>): Use VALLDIF iterator. Remove endianness reversal of lane index. (aarch64_ld3_lane<mode>): Ditto. (aarch64_ld4_lane<mode>): Ditto. (aarch64_st2_lane<mode>): Ditto. (aarch64_st3_lane<mode>): Ditto. (aarch64_st4_lane<mode>): Ditto. * config/aarch64/arm_neon.h (__LD2_LANE_FUNC): Rename mode parameter to qmode. Add new mode parameter. Update uses. (__LD3_LANE_FUNC): Ditto. (__LD4_LANE_FUNC): Ditto. (__ST2_LANE_FUNC): Ditto. (__ST3_LANE_FUNC): Ditto. (__ST4_LANE_FUNC): Ditto. gcc/testsuite/ChangeLog: <DATE> Charles Baylis <charles.baylis@linaro.org> * gcc.target/aarch64/simd/vld2_lane_f32_indices_1.c: New test. * gcc.target/aarch64/simd/vld2_lane_f64_indices_1.c: New test. * gcc.target/aarch64/simd/vld2_lane_p8_indices_1.c: New test. * gcc.target/aarch64/simd/vld2_lane_s16_indices_1.c: New test. * gcc.target/aarch64/simd/vld2_lane_s32_indices_1.c: New test. * gcc.target/aarch64/simd/vld2_lane_s64_indices_1.c: New test. * gcc.target/aarch64/simd/vld2_lane_s8_indices_1.c: New test. * gcc.target/aarch64/simd/vld2_lane_u16_indices_1.c: New test. * gcc.target/aarch64/simd/vld2_lane_u32_indices_1.c: New test. * gcc.target/aarch64/simd/vld2_lane_u64_indices_1.c: New test. * gcc.target/aarch64/simd/vld2_lane_u8_indices_1.c: New test. * gcc.target/aarch64/simd/vld2q_lane_f32_indices_1.c: New test. * gcc.target/aarch64/simd/vld2q_lane_f64_indices_1.c: New test. * gcc.target/aarch64/simd/vld2q_lane_p8_indices_1.c: New test. * gcc.target/aarch64/simd/vld2q_lane_s16_indices_1.c: New test. * gcc.target/aarch64/simd/vld2q_lane_s32_indices_1.c: New test. * gcc.target/aarch64/simd/vld2q_lane_s64_indices_1.c: New test. * gcc.target/aarch64/simd/vld2q_lane_s8_indices_1.c: New test. * gcc.target/aarch64/simd/vld2q_lane_u16_indices_1.c: New test. * gcc.target/aarch64/simd/vld2q_lane_u32_indices_1.c: New test. * gcc.target/aarch64/simd/vld2q_lane_u64_indices_1.c: New test. * gcc.target/aarch64/simd/vld2q_lane_u8_indices_1.c: New test. * gcc.target/aarch64/simd/vld3_lane_f32_indices_1.c: New test. * gcc.target/aarch64/simd/vld3_lane_f64_indices_1.c: New test. * gcc.target/aarch64/simd/vld3_lane_p8_indices_1.c: New test. * gcc.target/aarch64/simd/vld3_lane_s16_indices_1.c: New test. * gcc.target/aarch64/simd/vld3_lane_s32_indices_1.c: New test. * gcc.target/aarch64/simd/vld3_lane_s64_indices_1.c: New test. * gcc.target/aarch64/simd/vld3_lane_s8_indices_1.c: New test. * gcc.target/aarch64/simd/vld3_lane_u16_indices_1.c: New test. * gcc.target/aarch64/simd/vld3_lane_u32_indices_1.c: New test. * gcc.target/aarch64/simd/vld3_lane_u64_indices_1.c: New test. * gcc.target/aarch64/simd/vld3_lane_u8_indices_1.c: New test. * gcc.target/aarch64/simd/vld3q_lane_f32_indices_1.c: New test. * gcc.target/aarch64/simd/vld3q_lane_f64_indices_1.c: New test. * gcc.target/aarch64/simd/vld3q_lane_p8_indices_1.c: New test. * gcc.target/aarch64/simd/vld3q_lane_s16_indices_1.c: New test. * gcc.target/aarch64/simd/vld3q_lane_s32_indices_1.c: New test. * gcc.target/aarch64/simd/vld3q_lane_s64_indices_1.c: New test. * gcc.target/aarch64/simd/vld3q_lane_s8_indices_1.c: New test. * gcc.target/aarch64/simd/vld3q_lane_u16_indices_1.c: New test. * gcc.target/aarch64/simd/vld3q_lane_u32_indices_1.c: New test. * gcc.target/aarch64/simd/vld3q_lane_u64_indices_1.c: New test. * gcc.target/aarch64/simd/vld3q_lane_u8_indices_1.c: New test. * gcc.target/aarch64/simd/vld4_lane_f32_indices_1.c: New test. * gcc.target/aarch64/simd/vld4_lane_f64_indices_1.c: New test. * gcc.target/aarch64/simd/vld4_lane_p8_indices_1.c: New test. * gcc.target/aarch64/simd/vld4_lane_s16_indices_1.c: New test. * gcc.target/aarch64/simd/vld4_lane_s32_indices_1.c: New test. * gcc.target/aarch64/simd/vld4_lane_s64_indices_1.c: New test. * gcc.target/aarch64/simd/vld4_lane_s8_indices_1.c: New test. * gcc.target/aarch64/simd/vld4_lane_u16_indices_1.c: New test. * gcc.target/aarch64/simd/vld4_lane_u32_indices_1.c: New test. * gcc.target/aarch64/simd/vld4_lane_u64_indices_1.c: New test. * gcc.target/aarch64/simd/vld4_lane_u8_indices_1.c: New test. * gcc.target/aarch64/simd/vld4q_lane_f32_indices_1.c: New test. * gcc.target/aarch64/simd/vld4q_lane_f64_indices_1.c: New test. * gcc.target/aarch64/simd/vld4q_lane_p8_indices_1.c: New test. * gcc.target/aarch64/simd/vld4q_lane_s16_indices_1.c: New test. * gcc.target/aarch64/simd/vld4q_lane_s32_indices_1.c: New test. * gcc.target/aarch64/simd/vld4q_lane_s64_indices_1.c: New test. * gcc.target/aarch64/simd/vld4q_lane_s8_indices_1.c: New test. * gcc.target/aarch64/simd/vld4q_lane_u16_indices_1.c: New test. * gcc.target/aarch64/simd/vld4q_lane_u32_indices_1.c: New test. * gcc.target/aarch64/simd/vld4q_lane_u64_indices_1.c: New test. * gcc.target/aarch64/simd/vld4q_lane_u8_indices_1.c: New test. * gcc.target/aarch64/simd/vst2_lane_f32_indices_1.c: New test. * gcc.target/aarch64/simd/vst2_lane_f64_indices_1.c: New test. * gcc.target/aarch64/simd/vst2_lane_p8_indices_1.c: New test. * gcc.target/aarch64/simd/vst2_lane_s16_indices_1.c: New test. * gcc.target/aarch64/simd/vst2_lane_s32_indices_1.c: New test. * gcc.target/aarch64/simd/vst2_lane_s64_indices_1.c: New test. * gcc.target/aarch64/simd/vst2_lane_s8_indices_1.c: New test. * gcc.target/aarch64/simd/vst2_lane_u16_indices_1.c: New test. * gcc.target/aarch64/simd/vst2_lane_u32_indices_1.c: New test. * gcc.target/aarch64/simd/vst2_lane_u64_indices_1.c: New test. * gcc.target/aarch64/simd/vst2_lane_u8_indices_1.c: New test. * gcc.target/aarch64/simd/vst2q_lane_f32_indices_1.c: New test. * gcc.target/aarch64/simd/vst2q_lane_f64_indices_1.c: New test. * gcc.target/aarch64/simd/vst2q_lane_p8_indices_1.c: New test. * gcc.target/aarch64/simd/vst2q_lane_s16_indices_1.c: New test. * gcc.target/aarch64/simd/vst2q_lane_s32_indices_1.c: New test. * gcc.target/aarch64/simd/vst2q_lane_s64_indices_1.c: New test. * gcc.target/aarch64/simd/vst2q_lane_s8_indices_1.c: New test. * gcc.target/aarch64/simd/vst2q_lane_u16_indices_1.c: New test. * gcc.target/aarch64/simd/vst2q_lane_u32_indices_1.c: New test. * gcc.target/aarch64/simd/vst2q_lane_u64_indices_1.c: New test. * gcc.target/aarch64/simd/vst2q_lane_u8_indices_1.c: New test. * gcc.target/aarch64/simd/vst3_lane_f32_indices_1.c: New test. * gcc.target/aarch64/simd/vst3_lane_f64_indices_1.c: New test. * gcc.target/aarch64/simd/vst3_lane_p8_indices_1.c: New test. * gcc.target/aarch64/simd/vst3_lane_s16_indices_1.c: New test. * gcc.target/aarch64/simd/vst3_lane_s32_indices_1.c: New test. * gcc.target/aarch64/simd/vst3_lane_s64_indices_1.c: New test. * gcc.target/aarch64/simd/vst3_lane_s8_indices_1.c: New test. * gcc.target/aarch64/simd/vst3_lane_u16_indices_1.c: New test. * gcc.target/aarch64/simd/vst3_lane_u32_indices_1.c: New test. * gcc.target/aarch64/simd/vst3_lane_u64_indices_1.c: New test. * gcc.target/aarch64/simd/vst3_lane_u8_indices_1.c: New test. * gcc.target/aarch64/simd/vst3q_lane_f32_indices_1.c: New test. * gcc.target/aarch64/simd/vst3q_lane_f64_indices_1.c: New test. * gcc.target/aarch64/simd/vst3q_lane_p8_indices_1.c: New test. * gcc.target/aarch64/simd/vst3q_lane_s16_indices_1.c: New test. * gcc.target/aarch64/simd/vst3q_lane_s32_indices_1.c: New test. * gcc.target/aarch64/simd/vst3q_lane_s64_indices_1.c: New test. * gcc.target/aarch64/simd/vst3q_lane_s8_indices_1.c: New test. * gcc.target/aarch64/simd/vst3q_lane_u16_indices_1.c: New test. * gcc.target/aarch64/simd/vst3q_lane_u32_indices_1.c: New test. * gcc.target/aarch64/simd/vst3q_lane_u64_indices_1.c: New test. * gcc.target/aarch64/simd/vst3q_lane_u8_indices_1.c: New test. * gcc.target/aarch64/simd/vst4_lane_f32_indices_1.c: New test. * gcc.target/aarch64/simd/vst4_lane_f64_indices_1.c: New test. * gcc.target/aarch64/simd/vst4_lane_p8_indices_1.c: New test. * gcc.target/aarch64/simd/vst4_lane_s16_indices_1.c: New test. * gcc.target/aarch64/simd/vst4_lane_s32_indices_1.c: New test. * gcc.target/aarch64/simd/vst4_lane_s64_indices_1.c: New test. * gcc.target/aarch64/simd/vst4_lane_s8_indices_1.c: New test. * gcc.target/aarch64/simd/vst4_lane_u16_indices_1.c: New test. * gcc.target/aarch64/simd/vst4_lane_u32_indices_1.c: New test. * gcc.target/aarch64/simd/vst4_lane_u64_indices_1.c: New test. * gcc.target/aarch64/simd/vst4_lane_u8_indices_1.c: New test. * gcc.target/aarch64/simd/vst4q_lane_f32_indices_1.c: New test. * gcc.target/aarch64/simd/vst4q_lane_f64_indices_1.c: New test. * gcc.target/aarch64/simd/vst4q_lane_p8_indices_1.c: New test. * gcc.target/aarch64/simd/vst4q_lane_s16_indices_1.c: New test. * gcc.target/aarch64/simd/vst4q_lane_s32_indices_1.c: New test. * gcc.target/aarch64/simd/vst4q_lane_s64_indices_1.c: New test. * gcc.target/aarch64/simd/vst4q_lane_s8_indices_1.c: New test. * gcc.target/aarch64/simd/vst4q_lane_u16_indices_1.c: New test. * gcc.target/aarch64/simd/vst4q_lane_u32_indices_1.c: New test. * gcc.target/aarch64/simd/vst4q_lane_u64_indices_1.c: New test. * gcc.target/aarch64/simd/vst4q_lane_u8_indices_1.c: New test. Change-Id: Ib17adaf64e631cf8d00a1a1a6c12409d2d7f4239
Diffstat (limited to 'gcc/testsuite/gcc.target/aarch64/simd/vst3q_lane_u32_indices_1.c')
-rw-r--r--gcc/testsuite/gcc.target/aarch64/simd/vst3q_lane_u32_indices_1.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/gcc/testsuite/gcc.target/aarch64/simd/vst3q_lane_u32_indices_1.c b/gcc/testsuite/gcc.target/aarch64/simd/vst3q_lane_u32_indices_1.c
new file mode 100644
index 00000000000..34f3b379264
--- /dev/null
+++ b/gcc/testsuite/gcc.target/aarch64/simd/vst3q_lane_u32_indices_1.c
@@ -0,0 +1,10 @@
+#include <arm_neon.h>
+
+
+void
+f_vst3q_lane_u32 (uint32_t * p, uint32x4x3_t v)
+{
+ vst3q_lane_u32 (p, v, 4); /* { dg-error "lane 4 out of range 0 - 3" "" { target *-*-* } 0 } */
+ vst3q_lane_u32 (p, v, -1); /* { dg-error "lane -1 out of range 0 - 3" "" { target *-*-* } 0 } */
+ return;
+}