diff options
author | Jonathan Wright <jonathan.wright@arm.com> | 2021-07-30 11:29:45 +0100 |
---|---|---|
committer | Jonathan Wright <jonathan.wright@arm.com> | 2021-08-06 11:04:13 +0100 |
commit | 1deb0818f4bca408994f666c1bd43289753507f5 (patch) | |
tree | efc7d01ba7426212996ec28c2b76ff1a08525e8f /libgcc/libgcov-driver.c | |
parent | 344f879c66d308226ad2621dc208586cb8856c51 (diff) | |
download | gcc-1deb0818f4bca408994f666c1bd43289753507f5.zip gcc-1deb0818f4bca408994f666c1bd43289753507f5.tar.gz gcc-1deb0818f4bca408994f666c1bd43289753507f5.tar.bz2 |
aarch64: Use memcpy to copy structures in vst2[q]_lane intrinsics
Use __builtin_memcpy to copy vector structures instead of using a
union - or constructing a new opaque structure one vector at a time -
in each of the vst2[q]_lane Neon intrinsics in arm_neon.h.
Add new code generation tests to verify that superfluous move
instructions are not generated for the vst2q_lane intrinsics.
gcc/ChangeLog:
2021-07-30 Jonathan Wright <jonathan.wright@arm.com>
* config/aarch64/arm_neon.h (__ST2_LANE_FUNC): Delete.
(__ST2Q_LANE_FUNC): Delete.
(vst2_lane_f16): Use __builtin_memcpy to copy vector
structure instead of constructing __builtin_aarch64_simd_oi
one vector at a time.
(vst2_lane_f32): Likewise.
(vst2_lane_f64): Likewise.
(vst2_lane_p8): Likewise.
(vst2_lane_p16): Likewise.
(vst2_lane_p64): Likewise.
(vst2_lane_s8): Likewise.
(vst2_lane_s16): Likewise.
(vst2_lane_s32): Likewise.
(vst2_lane_s64): Likewise.
(vst2_lane_u8): Likewise.
(vst2_lane_u16): Likewise.
(vst2_lane_u32): Likewise.
(vst2_lane_u64): Likewise.
(vst2_lane_bf16): Likewise.
(vst2q_lane_f16): Use __builtin_memcpy to copy vector
structure instead of using a union.
(vst2q_lane_f32): Likewise.
(vst2q_lane_f64): Likewise.
(vst2q_lane_p8): Likewise.
(vst2q_lane_p16): Likewise.
(vst2q_lane_p64): Likewise.
(vst2q_lane_s8): Likewise.
(vst2q_lane_s16): Likewise.
(vst2q_lane_s32): Likewise.
(vst2q_lane_s64): Likewise.
(vst2q_lane_u8): Likewise.
(vst2q_lane_u16): Likewise.
(vst2q_lane_u32): Likewise.
(vst2q_lane_u64): Likewise.
(vst2q_lane_bf16): Likewise.
gcc/testsuite/ChangeLog:
* gcc.target/aarch64/vector_structure_intrinsics.c: Add new
tests.
Diffstat (limited to 'libgcc/libgcov-driver.c')
0 files changed, 0 insertions, 0 deletions