diff mbox series

[1/4,aarch64/arm] Updating the cost table for xgene1.

Message ID 20181112191458.32635-1-christoph.muellner@theobroma-systems.com
State New
Headers show
Series [1/4,aarch64/arm] Updating the cost table for xgene1. | expand

Commit Message

Christoph Muellner Nov. 12, 2018, 7:14 p.m. UTC
*** gcc/ChangeLog ***

2018-xx-xx  Christoph Muellner  <christoph.muellner@theobroma-systems.com>

	* config/arm/aarch-cost-tables.h (xgene1_extra_costs): Update the cost table
	for Xgene1.
---
 gcc/config/arm/aarch-cost-tables.h | 88 +++++++++++++++++++-------------------
 1 file changed, 44 insertions(+), 44 deletions(-)

Comments

Richard Earnshaw (lists) Nov. 13, 2018, 11:17 a.m. UTC | #1
On 12/11/2018 19:14, Christoph Muellner wrote:
> *** gcc/ChangeLog ***
> 
> 2018-xx-xx  Christoph Muellner  <christoph.muellner@theobroma-systems.com>
> 
> 	* config/arm/aarch-cost-tables.h (xgene1_extra_costs): Update the cost table
> 	for Xgene1.

OK.

R.

> ---
>  gcc/config/arm/aarch-cost-tables.h | 88 +++++++++++++++++++-------------------
>  1 file changed, 44 insertions(+), 44 deletions(-)
> 
> diff --git a/gcc/config/arm/aarch-cost-tables.h b/gcc/config/arm/aarch-cost-tables.h
> index 0bd93ba..2a28347 100644
> --- a/gcc/config/arm/aarch-cost-tables.h
> +++ b/gcc/config/arm/aarch-cost-tables.h
> @@ -440,26 +440,26 @@ const struct cpu_cost_table xgene1_extra_costs =
>    {
>      0,                 /* arith.  */
>      0,                 /* logical.  */
> -    0,                 /* shift.  */
> +    COSTS_N_INSNS (1), /* shift.  */
>      COSTS_N_INSNS (1), /* shift_reg.  */
> -    COSTS_N_INSNS (1), /* arith_shift.  */
> -    COSTS_N_INSNS (1), /* arith_shift_reg.  */
> -    COSTS_N_INSNS (1), /* log_shift.  */
> -    COSTS_N_INSNS (1), /* log_shift_reg.  */
> -    COSTS_N_INSNS (1), /* extend.  */
> -    0,                 /* extend_arithm.  */
> -    COSTS_N_INSNS (1), /* bfi.  */
> -    COSTS_N_INSNS (1), /* bfx.  */
> +    COSTS_N_INSNS (2), /* arith_shift.  */
> +    COSTS_N_INSNS (2), /* arith_shift_reg.  */
> +    COSTS_N_INSNS (2), /* log_shift.  */
> +    COSTS_N_INSNS (2), /* log_shift_reg.  */
> +    0,                 /* extend.  */
> +    COSTS_N_INSNS (1), /* extend_arithm.  */
> +    0,                 /* bfi.  */
> +    0,                 /* bfx.  */
>      0,                 /* clz.  */
> -    COSTS_N_INSNS (1), /* rev.  */
> +    0,                 /* rev.  */
>      0,                 /* non_exec.  */
>      true               /* non_exec_costs_exec.  */
>    },
>    {
>      /* MULT SImode */
>      {
> -      COSTS_N_INSNS (4),       /* simple.  */
> -      COSTS_N_INSNS (4),       /* flag_setting.  */
> +      COSTS_N_INSNS (3),       /* simple.  */
> +      COSTS_N_INSNS (3),       /* flag_setting.  */
>        COSTS_N_INSNS (4),       /* extend.  */
>        COSTS_N_INSNS (4),       /* add.  */
>        COSTS_N_INSNS (4),       /* extend_add.  */
> @@ -467,8 +467,8 @@ const struct cpu_cost_table xgene1_extra_costs =
>      },
>      /* MULT DImode */
>      {
> -      COSTS_N_INSNS (5),       /* simple.  */
> -      0,                       /* flag_setting (N/A).  */
> +      COSTS_N_INSNS (4),       /* simple.  */
> +      COSTS_N_INSNS (4),       /* flag_setting (N/A).  */
>        COSTS_N_INSNS (5),       /* extend.  */
>        COSTS_N_INSNS (5),       /* add.  */
>        COSTS_N_INSNS (5),       /* extend_add.  */
> @@ -477,55 +477,55 @@ const struct cpu_cost_table xgene1_extra_costs =
>    },
>    /* LD/ST */
>    {
> -    COSTS_N_INSNS (5),         /* load.  */
> -    COSTS_N_INSNS (6),         /* load_sign_extend.  */
> -    COSTS_N_INSNS (5),         /* ldrd.  */
> +    COSTS_N_INSNS (4),         /* load.  */
> +    COSTS_N_INSNS (5),         /* load_sign_extend.  */
> +    COSTS_N_INSNS (4),         /* ldrd.  */
>      COSTS_N_INSNS (5),         /* ldm_1st.  */
>      1,                         /* ldm_regs_per_insn_1st.  */
>      1,                         /* ldm_regs_per_insn_subsequent.  */
> -    COSTS_N_INSNS (10),        /* loadf.  */
> -    COSTS_N_INSNS (10),        /* loadd.  */
> -    COSTS_N_INSNS (5),         /* load_unaligned.  */
> +    COSTS_N_INSNS (9),         /* loadf.  */
> +    COSTS_N_INSNS (9),         /* loadd.  */
> +    0,                         /* load_unaligned.  */
>      0,                         /* store.  */
>      0,                         /* strd.  */
>      0,                         /* stm_1st.  */
>      1,                         /* stm_regs_per_insn_1st.  */
>      1,                         /* stm_regs_per_insn_subsequent.  */
> -    0,                         /* storef.  */
> -    0,                         /* stored.  */
> +    COSTS_N_INSNS (3),         /* storef.  */
> +    COSTS_N_INSNS (3),         /* stored.  */
>      0,                         /* store_unaligned.  */
> -    COSTS_N_INSNS (1),         /* loadv.  */
> -    COSTS_N_INSNS (1)          /* storev.  */
> +    COSTS_N_INSNS (9),         /* loadv.  */
> +    COSTS_N_INSNS (3)          /* storev.  */
>    },
>    {
>      /* FP SFmode */
>      {
> -      COSTS_N_INSNS (23),      /* div.  */
> -      COSTS_N_INSNS (5),       /* mult.  */
> -      COSTS_N_INSNS (5),       /* mult_addsub. */
> -      COSTS_N_INSNS (5),       /* fma.  */
> -      COSTS_N_INSNS (5),       /* addsub.  */
> -      COSTS_N_INSNS (2),       /* fpconst. */
> -      COSTS_N_INSNS (3),       /* neg.  */
> -      COSTS_N_INSNS (2),       /* compare.  */
> -      COSTS_N_INSNS (6),       /* widen.  */
> -      COSTS_N_INSNS (6),       /* narrow.  */
> +      COSTS_N_INSNS (22),      /* div.  */
> +      COSTS_N_INSNS (4),       /* mult.  */
> +      COSTS_N_INSNS (4),       /* mult_addsub. */
> +      COSTS_N_INSNS (4),       /* fma.  */
> +      COSTS_N_INSNS (4),       /* addsub.  */
> +      COSTS_N_INSNS (1),       /* fpconst. */
> +      COSTS_N_INSNS (4),       /* neg.  */
> +      COSTS_N_INSNS (9),       /* 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.  */
>      },
>      /* FP DFmode */
>      {
> -      COSTS_N_INSNS (29),      /* div.  */
> -      COSTS_N_INSNS (5),       /* mult.  */
> -      COSTS_N_INSNS (5),       /* mult_addsub.  */
> -      COSTS_N_INSNS (5),       /* fma.  */
> -      COSTS_N_INSNS (5),       /* addsub.  */
> -      COSTS_N_INSNS (3),       /* fpconst.  */
> -      COSTS_N_INSNS (3),       /* neg.  */
> -      COSTS_N_INSNS (2),       /* compare.  */
> -      COSTS_N_INSNS (6),       /* widen.  */
> -      COSTS_N_INSNS (6),       /* narrow.  */
> +      COSTS_N_INSNS (27),      /* div.  */
> +      COSTS_N_INSNS (4),       /* mult.  */
> +      COSTS_N_INSNS (4),       /* mult_addsub.  */
> +      COSTS_N_INSNS (4),       /* fma.  */
> +      COSTS_N_INSNS (4),       /* addsub.  */
> +      COSTS_N_INSNS (1),       /* fpconst.  */
> +      COSTS_N_INSNS (4),       /* neg.  */
> +      COSTS_N_INSNS (9),       /* 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.  */
>
diff mbox series

Patch

diff --git a/gcc/config/arm/aarch-cost-tables.h b/gcc/config/arm/aarch-cost-tables.h
index 0bd93ba..2a28347 100644
--- a/gcc/config/arm/aarch-cost-tables.h
+++ b/gcc/config/arm/aarch-cost-tables.h
@@ -440,26 +440,26 @@  const struct cpu_cost_table xgene1_extra_costs =
   {
     0,                 /* arith.  */
     0,                 /* logical.  */
-    0,                 /* shift.  */
+    COSTS_N_INSNS (1), /* shift.  */
     COSTS_N_INSNS (1), /* shift_reg.  */
-    COSTS_N_INSNS (1), /* arith_shift.  */
-    COSTS_N_INSNS (1), /* arith_shift_reg.  */
-    COSTS_N_INSNS (1), /* log_shift.  */
-    COSTS_N_INSNS (1), /* log_shift_reg.  */
-    COSTS_N_INSNS (1), /* extend.  */
-    0,                 /* extend_arithm.  */
-    COSTS_N_INSNS (1), /* bfi.  */
-    COSTS_N_INSNS (1), /* bfx.  */
+    COSTS_N_INSNS (2), /* arith_shift.  */
+    COSTS_N_INSNS (2), /* arith_shift_reg.  */
+    COSTS_N_INSNS (2), /* log_shift.  */
+    COSTS_N_INSNS (2), /* log_shift_reg.  */
+    0,                 /* extend.  */
+    COSTS_N_INSNS (1), /* extend_arithm.  */
+    0,                 /* bfi.  */
+    0,                 /* bfx.  */
     0,                 /* clz.  */
-    COSTS_N_INSNS (1), /* rev.  */
+    0,                 /* rev.  */
     0,                 /* non_exec.  */
     true               /* non_exec_costs_exec.  */
   },
   {
     /* MULT SImode */
     {
-      COSTS_N_INSNS (4),       /* simple.  */
-      COSTS_N_INSNS (4),       /* flag_setting.  */
+      COSTS_N_INSNS (3),       /* simple.  */
+      COSTS_N_INSNS (3),       /* flag_setting.  */
       COSTS_N_INSNS (4),       /* extend.  */
       COSTS_N_INSNS (4),       /* add.  */
       COSTS_N_INSNS (4),       /* extend_add.  */
@@ -467,8 +467,8 @@  const struct cpu_cost_table xgene1_extra_costs =
     },
     /* MULT DImode */
     {
-      COSTS_N_INSNS (5),       /* simple.  */
-      0,                       /* flag_setting (N/A).  */
+      COSTS_N_INSNS (4),       /* simple.  */
+      COSTS_N_INSNS (4),       /* flag_setting (N/A).  */
       COSTS_N_INSNS (5),       /* extend.  */
       COSTS_N_INSNS (5),       /* add.  */
       COSTS_N_INSNS (5),       /* extend_add.  */
@@ -477,55 +477,55 @@  const struct cpu_cost_table xgene1_extra_costs =
   },
   /* LD/ST */
   {
-    COSTS_N_INSNS (5),         /* load.  */
-    COSTS_N_INSNS (6),         /* load_sign_extend.  */
-    COSTS_N_INSNS (5),         /* ldrd.  */
+    COSTS_N_INSNS (4),         /* load.  */
+    COSTS_N_INSNS (5),         /* load_sign_extend.  */
+    COSTS_N_INSNS (4),         /* ldrd.  */
     COSTS_N_INSNS (5),         /* ldm_1st.  */
     1,                         /* ldm_regs_per_insn_1st.  */
     1,                         /* ldm_regs_per_insn_subsequent.  */
-    COSTS_N_INSNS (10),        /* loadf.  */
-    COSTS_N_INSNS (10),        /* loadd.  */
-    COSTS_N_INSNS (5),         /* load_unaligned.  */
+    COSTS_N_INSNS (9),         /* loadf.  */
+    COSTS_N_INSNS (9),         /* loadd.  */
+    0,                         /* load_unaligned.  */
     0,                         /* store.  */
     0,                         /* strd.  */
     0,                         /* stm_1st.  */
     1,                         /* stm_regs_per_insn_1st.  */
     1,                         /* stm_regs_per_insn_subsequent.  */
-    0,                         /* storef.  */
-    0,                         /* stored.  */
+    COSTS_N_INSNS (3),         /* storef.  */
+    COSTS_N_INSNS (3),         /* stored.  */
     0,                         /* store_unaligned.  */
-    COSTS_N_INSNS (1),         /* loadv.  */
-    COSTS_N_INSNS (1)          /* storev.  */
+    COSTS_N_INSNS (9),         /* loadv.  */
+    COSTS_N_INSNS (3)          /* storev.  */
   },
   {
     /* FP SFmode */
     {
-      COSTS_N_INSNS (23),      /* div.  */
-      COSTS_N_INSNS (5),       /* mult.  */
-      COSTS_N_INSNS (5),       /* mult_addsub. */
-      COSTS_N_INSNS (5),       /* fma.  */
-      COSTS_N_INSNS (5),       /* addsub.  */
-      COSTS_N_INSNS (2),       /* fpconst. */
-      COSTS_N_INSNS (3),       /* neg.  */
-      COSTS_N_INSNS (2),       /* compare.  */
-      COSTS_N_INSNS (6),       /* widen.  */
-      COSTS_N_INSNS (6),       /* narrow.  */
+      COSTS_N_INSNS (22),      /* div.  */
+      COSTS_N_INSNS (4),       /* mult.  */
+      COSTS_N_INSNS (4),       /* mult_addsub. */
+      COSTS_N_INSNS (4),       /* fma.  */
+      COSTS_N_INSNS (4),       /* addsub.  */
+      COSTS_N_INSNS (1),       /* fpconst. */
+      COSTS_N_INSNS (4),       /* neg.  */
+      COSTS_N_INSNS (9),       /* 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.  */
     },
     /* FP DFmode */
     {
-      COSTS_N_INSNS (29),      /* div.  */
-      COSTS_N_INSNS (5),       /* mult.  */
-      COSTS_N_INSNS (5),       /* mult_addsub.  */
-      COSTS_N_INSNS (5),       /* fma.  */
-      COSTS_N_INSNS (5),       /* addsub.  */
-      COSTS_N_INSNS (3),       /* fpconst.  */
-      COSTS_N_INSNS (3),       /* neg.  */
-      COSTS_N_INSNS (2),       /* compare.  */
-      COSTS_N_INSNS (6),       /* widen.  */
-      COSTS_N_INSNS (6),       /* narrow.  */
+      COSTS_N_INSNS (27),      /* div.  */
+      COSTS_N_INSNS (4),       /* mult.  */
+      COSTS_N_INSNS (4),       /* mult_addsub.  */
+      COSTS_N_INSNS (4),       /* fma.  */
+      COSTS_N_INSNS (4),       /* addsub.  */
+      COSTS_N_INSNS (1),       /* fpconst.  */
+      COSTS_N_INSNS (4),       /* neg.  */
+      COSTS_N_INSNS (9),       /* 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.  */