From: Anton Youdkevitch Date: Fri, 10 Jul 2020 18:13:02 +0000 (+0100) Subject: Aarch64: Change costs for TX2 to expose more vectorization opportunities X-Git-Tag: releases/gcc-10.2.0~54 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=5311690085e35659f294e1f6321df51b0d723d89;p=thirdparty%2Fgcc.git 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. --- diff --git a/gcc/config/aarch64/aarch64.c b/gcc/config/aarch64/aarch64.c index 8aeb78a4793c..cda494c4bbfb 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 */ };