This patch fixes the shift costs for Cortex-A53 so they are more accurate - 
immediate shifts use
SBFM/UBFM which takes 2 cycles, register controlled shifts take 1 cycle. 
Bootstrap and regression
OK.

ChangeLog: 
2015-03-05  Wilco Dijkstra  <wdijk...@arm.com>

        * gcc/config/arm/aarch-cost-tables.h (cortexa53_extra_costs):
        Make Cortex-A53 shift costs more accurate.

---
 gcc/config/arm/aarch-cost-tables.h | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/gcc/config/arm/aarch-cost-tables.h 
b/gcc/config/arm/aarch-cost-tables.h
index 05e96a9..6bb8ede 100644
--- a/gcc/config/arm/aarch-cost-tables.h
+++ b/gcc/config/arm/aarch-cost-tables.h
@@ -130,12 +130,12 @@ const struct cpu_cost_table cortexa53_extra_costs =
     0,                 /* arith.  */
     0,                 /* logical.  */
     COSTS_N_INSNS (1), /* shift.  */
-    COSTS_N_INSNS (2), /* shift_reg.  */
+    0,                 /* shift_reg.  */
     COSTS_N_INSNS (1), /* arith_shift.  */
-    COSTS_N_INSNS (2), /* arith_shift_reg.  */
+    COSTS_N_INSNS (1), /* arith_shift_reg.  */
     COSTS_N_INSNS (1), /* log_shift.  */
-    COSTS_N_INSNS (2), /* log_shift_reg.  */
-    0,                 /* extend.  */
+    COSTS_N_INSNS (1), /* log_shift_reg.  */
+    COSTS_N_INSNS (1), /* extend.  */
     COSTS_N_INSNS (1), /* extend_arith.  */
     COSTS_N_INSNS (1), /* bfi.  */
     COSTS_N_INSNS (1), /* bfx.  */
-- 
1.9.1



Reply via email to