From 561d011953965a425463900548c29187c2898179 Mon Sep 17 00:00:00 2001 From: Siddhesh Poyarekar Date: Fri, 3 Aug 2018 01:51:42 +0000 Subject: [PATCH] [aarch64] Fix falkor pipeline description for dup There was a typo in the pipeline description where DUP was assigned to the vector pipes for quad mode ops when it really only uses the VTOG pipes. Fixing this does not show any noticeable difference in performance (there's a very small bump of 1.7% in x264 but that's about it) in my tests but is the more precise description of operations for falkor. * config/aarch64/falkor.md (falkor_am_1_vxvy_vxvy): Move neon_dup_q to... (falkor_am_1_gtov_gtov): ... a new insn reservation. From-SVN: r263285 --- gcc/ChangeLog | 6 ++++++ gcc/config/aarch64/falkor.md | 8 +++++++- 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 80685cdd84d..77d110d3c73 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2018-08-03 Siddhesh Poyarekar + + * config/aarch64/falkor.md (falkor_am_1_vxvy_vxvy): Move + neon_dup_q to... + (falkor_am_1_gtov_gtov): ... a new insn reservation. + 2018-07-19 Ilya Leoshkevich * config/nds32/nds32.c (nds32_hard_regno_mode_ok): Replace > with >=. diff --git a/gcc/config/aarch64/falkor.md b/gcc/config/aarch64/falkor.md index 5cbc5150ef3..45cbff93b24 100644 --- a/gcc/config/aarch64/falkor.md +++ b/gcc/config/aarch64/falkor.md @@ -322,6 +322,12 @@ (eq_attr "type" "neon_from_gp_q")) "falkor_gtov,falkor_gtov") +;; DUP does not use vector pipes in Q mode, only gtov+gtov. +(define_insn_reservation "falkor_am_1_gtov_gtov" 1 + (and (eq_attr "tune" "falkor") + (eq_attr "type" "neon_dup_q")) + "falkor_gtov*2") + ;; neon_to_gp_q is used for 32-bit ARM instructions that move 64-bits of data ;; so no use needed here. @@ -337,7 +343,7 @@ (define_insn_reservation "falkor_am_1_vxvy_vxvy" 1 (and (eq_attr "tune" "falkor") - (eq_attr "type" "neon_bsl_q,neon_dup_q,neon_ext_q,neon_move_q,neon_rev_q,neon_tbl1_q,neon_permute_q")) + (eq_attr "type" "neon_bsl_q,neon_ext_q,neon_move_q,neon_rev_q,neon_tbl1_q,neon_permute_q")) "falkor_vxvy+falkor_vxvy") (define_insn_reservation "falkor_am_2_vxvy" 2 -- 2.30.2