[aarch64] Fix falkor pipeline description for dup<q>
authorSiddhesh Poyarekar <siddhesh@sourceware.org>
Fri, 3 Aug 2018 01:51:42 +0000 (01:51 +0000)
committerSiddhesh Poyarekar <siddhesh@gcc.gnu.org>
Fri, 3 Aug 2018 01:51:42 +0000 (01:51 +0000)
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
gcc/config/aarch64/falkor.md

index 80685cdd84d09f248d8b70ab335002bd5bc5145d..77d110d3c73d26f73c9abb01e74495d7ba0bf73a 100644 (file)
@@ -1,3 +1,9 @@
+2018-08-03  Siddhesh Poyarekar  <siddhesh@sourceware.org>
+
+       * 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  <iii@linux.ibm.com>
 
        * config/nds32/nds32.c (nds32_hard_regno_mode_ok): Replace > with >=.
index 5cbc5150ef3c9095ba2290e98d73cd584374ce21..45cbff93b24fc516806662dfeb63e4286b0e95cd 100644 (file)
        (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.
 
 
 (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