AArch64: Enable fast shifts on Neoverse V1/N2

Message ID VE1PR08MB55991BE80B8FC2FD681F741483BC9@VE1PR08MB5599.eurprd08.prod.outlook.com
State Committed
Commit c437d3340d21c0c47537aca91e3546d2d6f1ae02
Headers
Series AArch64: Enable fast shifts on Neoverse V1/N2 |

Commit Message

Wilco Dijkstra Oct. 18, 2021, 4:21 p.m. UTC
  Enable the fast shift feature in Neoverse V1 and N2 tunings as well.

ChangeLog:
2021-10-18  Wilco Dijkstra  <wdijkstr@arm.com>

        * config/aarch64/aarch64.c (neoversev1_tunings):
        Enable AARCH64_EXTRA_TUNE_CHEAP_SHIFT_EXTEND.
        (neoversen2_tunings): Likewise.

---
  

Comments

Richard Sandiford Oct. 18, 2021, 4:24 p.m. UTC | #1
Wilco Dijkstra <Wilco.Dijkstra@arm.com> writes:
> Enable the fast shift feature in Neoverse V1 and N2 tunings as well.
>
> ChangeLog:
> 2021-10-18  Wilco Dijkstra  <wdijkstr@arm.com>
>
>         * config/aarch64/aarch64.c (neoversev1_tunings):
>         Enable AARCH64_EXTRA_TUNE_CHEAP_SHIFT_EXTEND.
>         (neoversen2_tunings): Likewise.

OK, thanks.

Richard

>
> ---
>
> diff --git a/gcc/config/aarch64/aarch64.c b/gcc/config/aarch64/aarch64.c
> index c7b76a7cdeea0539cd73f7987d1a4354d0a40624..e65afe39047359a3279ae6b2047a3e9a04e6c2a9 100644
> --- a/gcc/config/aarch64/aarch64.c
> +++ b/gcc/config/aarch64/aarch64.c
> @@ -1832,7 +1832,8 @@ static const struct tune_params neoversev1_tunings =
>    tune_params::AUTOPREFETCHER_WEAK,    /* autoprefetcher_model.  */
>    (AARCH64_EXTRA_TUNE_CSE_SVE_VL_CONSTANTS
>     | AARCH64_EXTRA_TUNE_USE_NEW_VECTOR_COSTS
> -   | AARCH64_EXTRA_TUNE_MATCHED_VECTOR_THROUGHPUT),    /* tune_flags.  */
> +   | AARCH64_EXTRA_TUNE_MATCHED_VECTOR_THROUGHPUT
> +   | AARCH64_EXTRA_TUNE_CHEAP_SHIFT_EXTEND),   /* tune_flags.  */
>    &generic_prefetch_tune
>  };
>
> @@ -1858,7 +1859,7 @@ static const struct tune_params neoversen2_tunings =
>    2,   /* min_div_recip_mul_df.  */
>    0,   /* max_case_values.  */
>    tune_params::AUTOPREFETCHER_WEAK,    /* autoprefetcher_model.  */
> -  (AARCH64_EXTRA_TUNE_NONE),   /* tune_flags.  */
> +  (AARCH64_EXTRA_TUNE_CHEAP_SHIFT_EXTEND),     /* tune_flags.  */
>    &generic_prefetch_tune
>  };
  

Patch

diff --git a/gcc/config/aarch64/aarch64.c b/gcc/config/aarch64/aarch64.c
index c7b76a7cdeea0539cd73f7987d1a4354d0a40624..e65afe39047359a3279ae6b2047a3e9a04e6c2a9 100644
--- a/gcc/config/aarch64/aarch64.c
+++ b/gcc/config/aarch64/aarch64.c
@@ -1832,7 +1832,8 @@  static const struct tune_params neoversev1_tunings =
   tune_params::AUTOPREFETCHER_WEAK,	/* autoprefetcher_model.  */
   (AARCH64_EXTRA_TUNE_CSE_SVE_VL_CONSTANTS
    | AARCH64_EXTRA_TUNE_USE_NEW_VECTOR_COSTS
-   | AARCH64_EXTRA_TUNE_MATCHED_VECTOR_THROUGHPUT),	/* tune_flags.  */
+   | AARCH64_EXTRA_TUNE_MATCHED_VECTOR_THROUGHPUT
+   | AARCH64_EXTRA_TUNE_CHEAP_SHIFT_EXTEND),	/* tune_flags.  */
   &generic_prefetch_tune
 };
 
@@ -1858,7 +1859,7 @@  static const struct tune_params neoversen2_tunings =
   2,	/* min_div_recip_mul_df.  */
   0,	/* max_case_values.  */
   tune_params::AUTOPREFETCHER_WEAK,	/* autoprefetcher_model.  */
-  (AARCH64_EXTRA_TUNE_NONE),	/* tune_flags.  */
+  (AARCH64_EXTRA_TUNE_CHEAP_SHIFT_EXTEND),	/* tune_flags.  */
   &generic_prefetch_tune
 };