aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJames Greenhalgh <james.greenhalgh@arm.com>2016-06-20 13:32:01 +0000
committerJames Greenhalgh <jgreenhalgh@gcc.gnu.org>2016-06-20 13:32:01 +0000
commitb2fb6b750b8de0131569bdb1b1939cf427db7ae2 (patch)
treeb210648307a9bbcd81c0b1dcd19278b29f15d9e3
parent20250fb87c79d840eb23c51bbe63467910c14fd9 (diff)
downloadgcc-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/ChangeLog5
-rw-r--r--gcc/config/arm/aarch-cost-tables.h52
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 */