Hi,
This patch adds to the thunderx model, the vector cost model. I
benchmarked this on SPEC CPU INT 2006 and got a small speed up. I
have a few more cost model patches that I am going upstream but they
are going to be split up.
OK? Bootstrapped and tested on aarch64-linux-gnu with no regressions.
Thanks,
Andrew Pinski
ChangeLog:
* config/aarch64/aarch64.c (thunderx_vector_cost): New variable.
(thunderx_tunings): Use thunderx_vector_cost instead of generic_vector_cost.
Index: config/aarch64/aarch64.c
===================================================================
--- config/aarch64/aarch64.c (revision 239098)
+++ config/aarch64/aarch64.c (working copy)
@@ -376,6 +376,24 @@ static const struct cpu_vector_cost gene
1 /* cond_not_taken_branch_cost */
};
+/* ThunderX costs for vector insn classes. */
+static const struct cpu_vector_cost thunderx_vector_cost =
+{
+ 1, /* scalar_stmt_cost */
+ 3, /* scalar_load_cost */
+ 1, /* scalar_store_cost */
+ 4, /* vec_stmt_cost */
+ 4, /* vec_permute_cost */
+ 2, /* vec_to_scalar_cost */
+ 2, /* scalar_to_vec_cost */
+ 3, /* vec_align_load_cost */
+ 10, /* vec_unalign_load_cost */
+ 10, /* vec_unalign_store_cost */
+ 1, /* vec_store_cost */
+ 3, /* cond_taken_branch_cost */
+ 3 /* cond_not_taken_branch_cost */
+};
+
/* Generic costs for vector insn classes. */
static const struct cpu_vector_cost cortexa57_vector_cost =
{
@@ -677,7 +695,7 @@ static const struct tune_params thunderx
&thunderx_extra_costs,
&generic_addrcost_table,
&thunderx_regmove_cost,
- &generic_vector_cost,
+ &thunderx_vector_cost,
&generic_branch_cost,
&generic_approx_modes,
6, /* memmov_cost */