diff mbox series

AArch64: Enable fast shifts on Neoverse N1

Message ID VE1PR08MB5599A6118679171B09F635F483230@VE1PR08MB5599.eurprd08.prod.outlook.com
State New
Headers show
Series AArch64: Enable fast shifts on Neoverse N1 | expand

Commit Message

Wilco Dijkstra Sept. 14, 2020, 12:01 p.m. UTC
Enable the fast shift feature in Neoverse N1 tuning - this means additions with
a shift left by 1-4 are as fast as addition. This improves multiply by constant
expansions, eg. x * 25 is now emitted using shifts rather than a multiply:

add w0, w0, w0, lsl 2
add w0, w0, w0, lsl 2

Bootstrap OK, regress pass, OK for commit?

ChangeLog:
2020-09-11  Wilco Dijkstra  <wdijkstr@arm.com>

        * config/aarch64/aarch64.c (neoversen1_tunings):
        Enable AARCH64_EXTRA_TUNE_CHEAP_SHIFT_EXTEND.

---

Comments

Richard Earnshaw (lists) Sept. 14, 2020, 3 p.m. UTC | #1
On 14/09/2020 13:01, Wilco Dijkstra wrote:
> Enable the fast shift feature in Neoverse N1 tuning - this means additions with
> a shift left by 1-4 are as fast as addition. This improves multiply by constant
> expansions, eg. x * 25 is now emitted using shifts rather than a multiply:
> 
> add w0, w0, w0, lsl 2
> add w0, w0, w0, lsl 2
> 
> Bootstrap OK, regress pass, OK for commit?
> 
> ChangeLog:
> 2020-09-11  Wilco Dijkstra  <wdijkstr@arm.com>
> 
>         * config/aarch64/aarch64.c (neoversen1_tunings):
>         Enable AARCH64_EXTRA_TUNE_CHEAP_SHIFT_EXTEND.
> 
> ---
> 
> diff --git a/gcc/config/aarch64/aarch64.c b/gcc/config/aarch64/aarch64.c
> index 803562df25751f2eb6dbe18b67cae46ea7c478dd..cbbdefa436bf11e9631c90631fb621e90e60754a 100644
> --- a/gcc/config/aarch64/aarch64.c
> +++ b/gcc/config/aarch64/aarch64.c
> @@ -1332,7 +1332,7 @@ static const struct tune_params neoversen1_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
>  };
>  
> 

OK.

R.
diff mbox series

Patch

diff --git a/gcc/config/aarch64/aarch64.c b/gcc/config/aarch64/aarch64.c
index 803562df25751f2eb6dbe18b67cae46ea7c478dd..cbbdefa436bf11e9631c90631fb621e90e60754a 100644
--- a/gcc/config/aarch64/aarch64.c
+++ b/gcc/config/aarch64/aarch64.c
@@ -1332,7 +1332,7 @@  static const struct tune_params neoversen1_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
 };