[AArch64] Give some new costs for Cortex-A53 floating-point operations
authorJames Greenhalgh <james.greenhalgh@arm.com>
Mon, 20 Jun 2016 14:01:04 +0000 (14:01 +0000)
committerJames Greenhalgh <jgreenhalgh@gcc.gnu.org>
Mon, 20 Jun 2016 14:01:04 +0000 (14:01 +0000)
gcc/

* config/arm/aarch-cost-tables.h (cortexa53_extra_costs): Make FP
costs relative to the cost of a register move.

From-SVN: r237604

gcc/ChangeLog
gcc/config/arm/aarch-cost-tables.h

index fde5823e10a5bdc179438a8b40e1314d2beb61b7..0e67896bef9b5fe516051e5ce0c7ddafa4aa0751 100644 (file)
@@ -1,3 +1,8 @@
+2016-06-20  James Greenhalgh  <james.greenhalgh@arm.com>
+
+       * config/arm/aarch-cost-tables.h (cortexa53_extra_costs): Make FP
+       costs relative to the cost of a register move.
+
 2016-06-20  James Greenhalgh  <james.greenhalgh@arm.com>
 
        * config/aarch64/arm_neon.h (vcvt_n_f64_s64): New.
index 5f42253371e7606d78eee5fb76cdb07191365235..8bcfcb4b93404d74b994f9e79613b21183c902bf 100644 (file)
@@ -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 */