diff options
author | James Greenhalgh <james.greenhalgh@arm.com> | 2016-06-20 13:32:01 +0000 |
---|---|---|
committer | James Greenhalgh <jgreenhalgh@gcc.gnu.org> | 2016-06-20 13:32:01 +0000 |
commit | b2fb6b750b8de0131569bdb1b1939cf427db7ae2 (patch) | |
tree | b210648307a9bbcd81c0b1dcd19278b29f15d9e3 | |
parent | 20250fb87c79d840eb23c51bbe63467910c14fd9 (diff) | |
download | gcc-b2fb6b750b8de0131569bdb1b1939cf427db7ae2.zip gcc-b2fb6b750b8de0131569bdb1b1939cf427db7ae2.tar.gz gcc-b2fb6b750b8de0131569bdb1b1939cf427db7ae2.tar.bz2 |
[AArch64] Give some new costs for Cortex-A57 floating-point operations
gcc/
* config/arm/aarch-cost-tables.h (cortexa57_extra_costs): Make FP
costs relative to the cost of a register move.
From-SVN: r237601
-rw-r--r-- | gcc/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/config/arm/aarch-cost-tables.h | 52 |
2 files changed, 31 insertions, 26 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 505b5b0..e6f7e9e 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2016-06-20 James Greenhalgh <james.greenhalgh@arm.com> + + * config/arm/aarch-cost-tables.h (cortexa57_extra_costs): Make FP + costs relative to the cost of a register move. + 2016-06-20 Wilco Dijkstra <wdijkstr@arm.com> * config/aarch64/aarch64.c (aarch64_modes_tieable_p): diff --git a/gcc/config/arm/aarch-cost-tables.h b/gcc/config/arm/aarch-cost-tables.h index c971b30..5f42253 100644 --- a/gcc/config/arm/aarch-cost-tables.h +++ b/gcc/config/arm/aarch-cost-tables.h @@ -294,35 +294,35 @@ const struct cpu_cost_table cortexa57_extra_costs = { /* FP SFmode */ { - COSTS_N_INSNS (17), /* div. */ - COSTS_N_INSNS (5), /* mult. */ - COSTS_N_INSNS (9), /* mult_addsub. */ - COSTS_N_INSNS (9), /* fma. */ - COSTS_N_INSNS (4), /* addsub. */ - COSTS_N_INSNS (2), /* fpconst. */ - COSTS_N_INSNS (2), /* neg. */ - COSTS_N_INSNS (2), /* compare. */ - COSTS_N_INSNS (4), /* widen. */ - COSTS_N_INSNS (4), /* narrow. */ - COSTS_N_INSNS (4), /* toint. */ - COSTS_N_INSNS (4), /* fromint. */ - COSTS_N_INSNS (4) /* roundint. */ + COSTS_N_INSNS (6), /* div. */ + COSTS_N_INSNS (1), /* mult. */ + COSTS_N_INSNS (2), /* mult_addsub. */ + COSTS_N_INSNS (2), /* fma. */ + COSTS_N_INSNS (1), /* addsub. */ + 0, /* fpconst. */ + 0, /* neg. */ + 0, /* compare. */ + COSTS_N_INSNS (1), /* widen. */ + COSTS_N_INSNS (1), /* narrow. */ + COSTS_N_INSNS (1), /* toint. */ + COSTS_N_INSNS (1), /* fromint. */ + COSTS_N_INSNS (1) /* roundint. */ }, /* FP DFmode */ { - COSTS_N_INSNS (31), /* div. */ - COSTS_N_INSNS (5), /* mult. */ - COSTS_N_INSNS (9), /* mult_addsub. */ - COSTS_N_INSNS (9), /* fma. */ - COSTS_N_INSNS (4), /* addsub. */ - COSTS_N_INSNS (2), /* fpconst. */ - COSTS_N_INSNS (2), /* neg. */ - COSTS_N_INSNS (2), /* compare. */ - COSTS_N_INSNS (4), /* widen. */ - COSTS_N_INSNS (4), /* narrow. */ - COSTS_N_INSNS (4), /* toint. */ - COSTS_N_INSNS (4), /* fromint. */ - COSTS_N_INSNS (4) /* roundint. */ + COSTS_N_INSNS (11), /* div. */ + COSTS_N_INSNS (1), /* mult. */ + COSTS_N_INSNS (2), /* mult_addsub. */ + COSTS_N_INSNS (2), /* fma. */ + COSTS_N_INSNS (1), /* addsub. */ + 0, /* fpconst. */ + 0, /* neg. */ + 0, /* compare. */ + COSTS_N_INSNS (1), /* widen. */ + COSTS_N_INSNS (1), /* narrow. */ + COSTS_N_INSNS (1), /* toint. */ + COSTS_N_INSNS (1), /* fromint. */ + COSTS_N_INSNS (1) /* roundint. */ } }, /* Vector */ |