[AArch64] Extend aarch64_simd_vec_set pattern, replace asm for vld1_lane
authorAlan Lawrence <alan.lawrence@arm.com>
Mon, 17 Nov 2014 18:29:49 +0000 (18:29 +0000)
committerAlan Lawrence <alalaw01@gcc.gnu.org>
Mon, 17 Nov 2014 18:29:49 +0000 (18:29 +0000)
commit960ceebc9352b0d90cfa9b8af614a7a60cef8578
tree4d3cf3fd8e60d50d3359b991be4fb2398137bcab
parente6b021859d9ca64b8a9f1bcfda8b8f6319be7d71
[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.

From-SVN: r217665
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]