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 */