aboutsummaryrefslogtreecommitdiff
path: root/gcc/config/arm
diff options
context:
space:
mode:
authorJames Greenhalgh <james.greenhalgh@arm.com>2016-06-20 14:01:04 +0000
committerJames Greenhalgh <jgreenhalgh@gcc.gnu.org>2016-06-20 14:01:04 +0000
commitf6dbc402e18a4d8e4f4941c4e7b2f9ec4e3c9ed4 (patch)
tree05997385745005b09d6158a648210056d4172481 /gcc/config/arm
parent636929b8d68c11f92ed3fa47614a38915d9476f4 (diff)
downloadgcc-f6dbc402e18a4d8e4f4941c4e7b2f9ec4e3c9ed4.zip
gcc-f6dbc402e18a4d8e4f4941c4e7b2f9ec4e3c9ed4.tar.gz
gcc-f6dbc402e18a4d8e4f4941c4e7b2f9ec4e3c9ed4.tar.bz2
[AArch64] Give some new costs for Cortex-A53 floating-point operations
gcc/ * config/arm/aarch-cost-tables.h (cortexa53_extra_costs): Make FP costs relative to the cost of a register move. From-SVN: r237604
Diffstat (limited to 'gcc/config/arm')
-rw-r--r--gcc/config/arm/aarch-cost-tables.h52
1 files changed, 26 insertions, 26 deletions
diff --git a/gcc/config/arm/aarch-cost-tables.h b/gcc/config/arm/aarch-cost-tables.h
index 5f42253..8bcfcb4 100644
--- a/gcc/config/arm/aarch-cost-tables.h
+++ b/gcc/config/arm/aarch-cost-tables.h
@@ -191,35 +191,35 @@ const struct cpu_cost_table cortexa53_extra_costs =
{
/* FP SFmode */
{
- COSTS_N_INSNS (15), /* div. */
- COSTS_N_INSNS (3), /* mult. */
- COSTS_N_INSNS (7), /* mult_addsub. */
- COSTS_N_INSNS (7), /* fma. */
- COSTS_N_INSNS (3), /* addsub. */
- COSTS_N_INSNS (1), /* fpconst. */
- COSTS_N_INSNS (2), /* neg. */
- COSTS_N_INSNS (1), /* compare. */
- COSTS_N_INSNS (3), /* widen. */
- COSTS_N_INSNS (3), /* narrow. */
- COSTS_N_INSNS (3), /* toint. */
- COSTS_N_INSNS (3), /* fromint. */
- COSTS_N_INSNS (3) /* roundint. */
+ COSTS_N_INSNS (5), /* div. */
+ COSTS_N_INSNS (1), /* mult. */
+ COSTS_N_INSNS (2), /* mult_addsub. */
+ COSTS_N_INSNS (2), /* fma. */
+ COSTS_N_INSNS (1), /* addsub. */
+ 0, /* fpconst. */
+ COSTS_N_INSNS (1), /* 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 (30), /* div. */
- COSTS_N_INSNS (3), /* mult. */
- COSTS_N_INSNS (7), /* mult_addsub. */
- COSTS_N_INSNS (7), /* fma. */
- COSTS_N_INSNS (3), /* addsub. */
- COSTS_N_INSNS (1), /* fpconst. */
- COSTS_N_INSNS (2), /* neg. */
- COSTS_N_INSNS (1), /* compare. */
- COSTS_N_INSNS (3), /* widen. */
- COSTS_N_INSNS (3), /* narrow. */
- COSTS_N_INSNS (3), /* toint. */
- COSTS_N_INSNS (3), /* fromint. */
- COSTS_N_INSNS (3) /* roundint. */
+ COSTS_N_INSNS (10), /* div. */
+ COSTS_N_INSNS (1), /* mult. */
+ COSTS_N_INSNS (2), /* mult_addsub. */
+ COSTS_N_INSNS (2), /* fma. */
+ COSTS_N_INSNS (1), /* addsub. */
+ 0, /* fpconst. */
+ COSTS_N_INSNS (1), /* 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 */