AArch64: Enable fast shifts on Neoverse N1
authorWilco Dijkstra <wdijkstr@arm.com>
Mon, 24 May 2021 13:31:37 +0000 (14:31 +0100)
committerWilco Dijkstra <wdijkstr@arm.com>
Mon, 24 May 2021 14:00:42 +0000 (15:00 +0100)
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

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

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

gcc/config/aarch64/aarch64.c

index e9f961d..2753c85 100644 (file)
@@ -1659,7 +1659,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
 };