aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAnton Youdkevitch <anton.youdkevitch@bell-sw.com>2020-05-26 04:23:04 -0700
committerTamar Christina <tamar.christina@arm.com>2020-07-07 16:25:37 +0100
commit2aeccecbf0d8c7e22926e0f740c46724da8a7be8 (patch)
tree73db9a9fb45d4ae6f5a3e523d0bcf7f36809faac
parentf75211822f8d84bb706421d3692e6c1cdbdfc3a8 (diff)
downloadgcc-2aeccecbf0d8c7e22926e0f740c46724da8a7be8.zip
gcc-2aeccecbf0d8c7e22926e0f740c46724da8a7be8.tar.gz
gcc-2aeccecbf0d8c7e22926e0f740c46724da8a7be8.tar.bz2
Aarch64: Change costs for TX2 to expose more vectorization opportunities
Make the costs such that they do not exaclty reflect the actual instructions costs from the manual but make the codegen emit the code we want it to. gcc/ChangeLog: * config/aarch64/aarch64.c (thunderx2t99_regmove_cost, thunderx2t99_vector_cost): Likewise.
-rw-r--r--gcc/config/aarch64/aarch64.c18
1 files changed, 9 insertions, 9 deletions
diff --git a/gcc/config/aarch64/aarch64.c b/gcc/config/aarch64/aarch64.c
index 24c31c2..2e9672c 100644
--- a/gcc/config/aarch64/aarch64.c
+++ b/gcc/config/aarch64/aarch64.c
@@ -535,9 +535,9 @@ static const struct cpu_regmove_cost thunderx2t99_regmove_cost =
{
1, /* GP2GP */
/* Avoid the use of int<->fp moves for spilling. */
- 8, /* GP2FP */
- 8, /* FP2GP */
- 4 /* FP2FP */
+ 5, /* GP2FP */
+ 6, /* FP2GP */
+ 3, /* FP2FP */
};
static const struct cpu_regmove_cost thunderx3t110_regmove_cost =
@@ -704,15 +704,15 @@ static const struct cpu_vector_cost thunderx2t99_vector_cost =
6, /* scalar_fp_stmt_cost */
4, /* scalar_load_cost */
1, /* scalar_store_cost */
- 5, /* vec_int_stmt_cost */
- 6, /* vec_fp_stmt_cost */
+ 4, /* vec_int_stmt_cost */
+ 5, /* vec_fp_stmt_cost */
10, /* vec_permute_cost */
6, /* vec_to_scalar_cost */
5, /* scalar_to_vec_cost */
- 8, /* vec_align_load_cost */
- 8, /* vec_unalign_load_cost */
- 4, /* vec_unalign_store_cost */
- 4, /* vec_store_cost */
+ 4, /* vec_align_load_cost */
+ 4, /* vec_unalign_load_cost */
+ 1, /* vec_unalign_store_cost */
+ 1, /* vec_store_cost */
2, /* cond_taken_branch_cost */
1 /* cond_not_taken_branch_cost */
};