[AArch64] Extend aarch64_simd_vec_set pattern, replace asm for vld1_lane
commit63dfb934f25616059980b35dc70f3e7fb3c9505a
authoralalaw01 <alalaw01@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 17 Nov 2014 18:29:49 +0000 (17 18:29 +0000)
committeralalaw01 <alalaw01@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 17 Nov 2014 18:29:49 +0000 (17 18:29 +0000)
tree4d3cf3fd8e60d50d3359b991be4fb2398137bcab
parent7467eea568f18846239569b45e62aa09068950c5
[AArch64] Extend aarch64_simd_vec_set pattern, replace asm for vld1_lane

gcc/:

* config/aarch64/aarch64-simd.md (aarch64_simd_vec_set<mode>): Add
variant reading from memory and assembling to ld1.

* config/aarch64/arm_neon.h (vld1_lane_f32, vld1_lane_f64, vld1_lane_p8,
vld1_lane_p16, vld1_lane_s8, vld1_lane_s16, vld1_lane_s32,
vld1_lane_s64, vld1_lane_u8, vld1_lane_u16, vld1_lane_u32,
vld1_lane_u64, vld1q_lane_f32, vld1q_lane_f64, vld1q_lane_p8,
vld1q_lane_p16, vld1q_lane_s8, vld1q_lane_s16, vld1q_lane_s32,
vld1q_lane_s64, vld1q_lane_u8, vld1q_lane_u16, vld1q_lane_u32,
vld1q_lane_u64): Replace asm with vset_lane and pointer dereference.

gcc/testsuite/:

* gcc.target/aarch64/vld1_lane.c: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@217665 138bc75d-0d04-0410-961f-82ee72b054a4
gcc/ChangeLog
gcc/config/aarch64/aarch64-simd.md
gcc/config/aarch64/arm_neon.h
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.target/aarch64/vld1_lane.c [new file with mode: 0644]