From: Andrew Pinski <apin...@marvell.com> Hi, In some places in the aarch64 backend, neon_logic is used for mov v0.16b, v1.16b mov v0.<Vbtype>, v1.<Vbtype>
This patch moves them over to use neon_move<q> instead. For most cores, this does not matter but for OcteonTX2 core it does matter. OK? Bootstrapped and tested on aarch64-linux-gnu with no regressions. Thanks, Andrew Pinski ChangeLog: * config/aarch64/aarch64.md (*movti_aarch64): Fix type attribute for neon move. * config/aarch64/aarch64-simd.md (*aarch64_simd_mov<VD:mode>): Likewise. (*aarch64_simd_mov<VQ:mode>): Likewise. --- gcc/config/aarch64/aarch64-simd.md | 4 ++-- gcc/config/aarch64/aarch64.md | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/gcc/config/aarch64/aarch64-simd.md b/gcc/config/aarch64/aarch64-simd.md index e3852c5..24fbb3d 100644 --- a/gcc/config/aarch64/aarch64-simd.md +++ b/gcc/config/aarch64/aarch64-simd.md @@ -125,7 +125,7 @@ } } [(set_attr "type" "neon_load1_1reg<q>, store_8, neon_store1_1reg<q>,\ - neon_logic<q>, neon_to_gp<q>, f_mcr,\ + neon_move<q>, neon_to_gp<q>, f_mcr,\ mov_reg, neon_move<q>")] ) @@ -159,7 +159,7 @@ } } [(set_attr "type" "neon_load1_1reg<q>, store_16, neon_store1_1reg<q>,\ - neon_logic<q>, multiple, multiple,\ + neon_move<q>, multiple, multiple,\ multiple, neon_move<q>") (set_attr "length" "4,4,4,4,8,8,8,4")] ) diff --git a/gcc/config/aarch64/aarch64.md b/gcc/config/aarch64/aarch64.md index 70f0418..350ae11 100644 --- a/gcc/config/aarch64/aarch64.md +++ b/gcc/config/aarch64/aarch64.md @@ -1195,7 +1195,7 @@ stp\\txzr, xzr, %0 ldr\\t%q0, %1 str\\t%q1, %0" - [(set_attr "type" "multiple,f_mcr,f_mrc,neon_logic_q, \ + [(set_attr "type" "multiple,f_mcr,f_mrc,neon_move_q, \ load_16,store_16,store_16,\ load_16,store_16") (set_attr "length" "8,8,8,4,4,4,4,4,4") -- 1.8.3.1