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