Jennifer Schmitz <jschm...@nvidia.com> writes:
> The param aarch64-autovec-preference=N is a useful tool for testing
> auto-vectorisation in GCC as it allows the user to force a particular
> strategy. So far, N could be an numerical value between 0 and 4.
> This patch adds more user-friendly names to distinguish the options.
> For backwards compatibility, the numerical values are retained, but are made
> aliases of the new user-readable strings.
>
> The patch was bootstrapped and regtested on aarch64-linux-gnu, no regression.
> Ok for mainline?

User-readable names are good, but just to check: who is the intended
user here?  Is it just to save developers/experimenters the effort of
having to look up the magic numbers (and yes, I have to do that each
time I use it :) )?  Or is it for more general users?

If this is something that is being recommended for general use,
then we should probably promote it from a --param to a full -m option.

The difference is that --params are intended to be developer options,
so they can be removed or changed without warning.  For this reason,
if we keep it as a --param, I think we should remove the old numeric
values and just go with the symbolic ones.

Instead, -m options are intended as user options and are more stable.
If an -m option becomes redundant later, we'd probably just turn it into
a no-op rather than remove it.

>
> Signed-off-by: Jennifer Schmitz <jschm...@nvidia.com>
>
> gcc/
>       PR target/116365
>       * config/aarch64/aarch64-opts.h
>       (enum aarch64_autovec_preference_enum): New enum.
>       * config/aarch64/aarch64.cc (aarch64_cmp_autovec_modes):
>       Change numerical to enum values.
>       (aarch64_autovectorize_vector_modes): Change numerical to enum
>       values.
>       (aarch64_vector_costs::record_potential_advsimd_unrolling):
>       Change numerical to enum values.
>       * config/aarch64/aarch64.opt: Change param type to enum.
>       * doc/invoke.texi: Update documentation.
>
> gcc/testsuite/
>       PR target/116365
>       * gcc.target/aarch64/autovec_param_0.c: New test.
>       * gcc.target/aarch64/autovec_param_1.c: Likewise.
>       * gcc.target/aarch64/autovec_param_2.c: Likewise.
>       * gcc.target/aarch64/autovec_param_3.c: Likewise.
>       * gcc.target/aarch64/autovec_param_4.c: Likewise.
>       * gcc.target/aarch64/autovec_param_asimd-only.c: Likewise.
>       * gcc.target/aarch64/autovec_param_default.c: Likewise.
>       * gcc.target/aarch64/autovec_param_prefer-asimd.c: Likewise.
>       * gcc.target/aarch64/autovec_param_prefer-sve.c: Likewise.
>       * gcc.target/aarch64/autovec_param_sve-only.c: Likewise.
>       * gcc.target/aarch64/neoverse_v1_2.c: Update parameter value.
>       * gcc.target/aarch64/neoverse_v1_3.c: Likewise.
>       * gcc.target/aarch64/sve/cond_asrd_1.c: Likewise.
>       * gcc.target/aarch64/sve/cond_cnot_4.c: Likewise.
>       * gcc.target/aarch64/sve/cond_unary_5.c: Likewise.
>       * gcc.target/aarch64/sve/cond_uxt_5.c: Likewise.
>       * gcc.target/aarch64/sve/cond_xorsign_2.c: Likewise.
>       * gcc.target/aarch64/sve/pr98268-1.c: Likewise.
>       * gcc.target/aarch64/sve/pr98268-2.c: Likewise.
>
> From 2e8693143f1c9c0668dea7bad77b3eadac6a4835 Mon Sep 17 00:00:00 2001
> From: Jennifer Schmitz <jschm...@nvidia.com>
> Date: Mon, 19 Aug 2024 08:42:55 -0700
> Subject: [PATCH] PR target/116365: Add user-friendly arguments to --param
>  aarch64-autovec-preference=N
>
> The param aarch64-autovec-preference=N is a useful tool for testing
> auto-vectorisation in GCC as it allows the user to force a particular
> strategy. So far, N could be a numerical value between 0 and 4.
> This patch adds more user-friendly names to distinguish the options.
> For backwards compatibility, the numerical values are retained, but are made
> aliases of the new user-readable strings.
>
> The patch was bootstrapped and regtested on aarch64-linux-gnu, no regression.
> Ok for mainline?
>
> Signed-off-by: Jennifer Schmitz <jschm...@nvidia.com>
>
> gcc/
>       PR target/116365
>       * config/aarch64/aarch64-opts.h
>       (enum aarch64_autovec_preference_enum): New enum.
>       * config/aarch64/aarch64.cc (aarch64_cmp_autovec_modes):
>       Change numerical to enum values.
>       (aarch64_autovectorize_vector_modes): Change numerical to enum
>       values.
>       (aarch64_vector_costs::record_potential_advsimd_unrolling):
>       Change numerical to enum values.
>       * config/aarch64/aarch64.opt: Change param type to enum.
>       * doc/invoke.texi: Update documentation.
>
> gcc/testsuite/
>       PR target/116365
>       * gcc.target/aarch64/autovec_param_0.c: New test.
>       * gcc.target/aarch64/autovec_param_1.c: Likewise.
>       * gcc.target/aarch64/autovec_param_2.c: Likewise.
>       * gcc.target/aarch64/autovec_param_3.c: Likewise.
>       * gcc.target/aarch64/autovec_param_4.c: Likewise.
>       * gcc.target/aarch64/autovec_param_asimd-only.c: Likewise.
>       * gcc.target/aarch64/autovec_param_default.c: Likewise.
>       * gcc.target/aarch64/autovec_param_prefer-asimd.c: Likewise.
>       * gcc.target/aarch64/autovec_param_prefer-sve.c: Likewise.
>       * gcc.target/aarch64/autovec_param_sve-only.c: Likewise.
>       * gcc.target/aarch64/neoverse_v1_2.c: Update parameter value.
>       * gcc.target/aarch64/neoverse_v1_3.c: Likewise.
>       * gcc.target/aarch64/sve/cond_asrd_1.c: Likewise.
>       * gcc.target/aarch64/sve/cond_cnot_4.c: Likewise.
>       * gcc.target/aarch64/sve/cond_unary_5.c: Likewise.
>       * gcc.target/aarch64/sve/cond_uxt_5.c: Likewise.
>       * gcc.target/aarch64/sve/cond_xorsign_2.c: Likewise.
>       * gcc.target/aarch64/sve/pr98268-1.c: Likewise.
>       * gcc.target/aarch64/sve/pr98268-2.c: Likewise.
> ---
>  gcc/config/aarch64/aarch64-opts.h             | 17 +++++++++
>  gcc/config/aarch64/aarch64.cc                 | 14 +++----
>  gcc/config/aarch64/aarch64.opt                | 37 ++++++++++++++++++-
>  gcc/doc/invoke.texi                           | 27 ++++++--------
>  .../gcc.target/aarch64/autovec_param_0.c      |  4 ++
>  .../gcc.target/aarch64/autovec_param_1.c      |  4 ++
>  .../gcc.target/aarch64/autovec_param_2.c      |  4 ++
>  .../gcc.target/aarch64/autovec_param_3.c      |  4 ++
>  .../gcc.target/aarch64/autovec_param_4.c      |  4 ++
>  .../aarch64/autovec_param_asimd-only.c        |  4 ++
>  .../aarch64/autovec_param_default.c           |  4 ++
>  .../aarch64/autovec_param_prefer-asimd.c      |  4 ++
>  .../aarch64/autovec_param_prefer-sve.c        |  4 ++
>  .../aarch64/autovec_param_sve-only.c          |  4 ++
>  .../gcc.target/aarch64/neoverse_v1_2.c        |  2 +-
>  .../gcc.target/aarch64/neoverse_v1_3.c        |  2 +-
>  .../gcc.target/aarch64/sve/cond_asrd_1.c      |  2 +-
>  .../gcc.target/aarch64/sve/cond_cnot_4.c      |  2 +-
>  .../gcc.target/aarch64/sve/cond_unary_5.c     |  2 +-
>  .../gcc.target/aarch64/sve/cond_uxt_5.c       |  2 +-
>  .../gcc.target/aarch64/sve/cond_xorsign_2.c   |  2 +-
>  .../gcc.target/aarch64/sve/pr98268-1.c        |  2 +-
>  .../gcc.target/aarch64/sve/pr98268-2.c        |  2 +-
>  23 files changed, 120 insertions(+), 33 deletions(-)
>  create mode 100644 gcc/testsuite/gcc.target/aarch64/autovec_param_0.c
>  create mode 100644 gcc/testsuite/gcc.target/aarch64/autovec_param_1.c
>  create mode 100644 gcc/testsuite/gcc.target/aarch64/autovec_param_2.c
>  create mode 100644 gcc/testsuite/gcc.target/aarch64/autovec_param_3.c
>  create mode 100644 gcc/testsuite/gcc.target/aarch64/autovec_param_4.c
>  create mode 100644 
> gcc/testsuite/gcc.target/aarch64/autovec_param_asimd-only.c
>  create mode 100644 gcc/testsuite/gcc.target/aarch64/autovec_param_default.c
>  create mode 100644 
> gcc/testsuite/gcc.target/aarch64/autovec_param_prefer-asimd.c
>  create mode 100644 
> gcc/testsuite/gcc.target/aarch64/autovec_param_prefer-sve.c
>  create mode 100644 gcc/testsuite/gcc.target/aarch64/autovec_param_sve-only.c
>
> diff --git a/gcc/config/aarch64/aarch64-opts.h 
> b/gcc/config/aarch64/aarch64-opts.h
> index 80ec1a05253..1567c4baffa 100644
> --- a/gcc/config/aarch64/aarch64-opts.h
> +++ b/gcc/config/aarch64/aarch64-opts.h
> @@ -115,6 +115,23 @@ enum aarch64_key_type {
>    AARCH64_KEY_B
>  };
>  
> +/* An enum for setting the auto-vectorization preference:
> +   - AARCH64_AUTOVEC_PREFERENCE_DEFAULT: Use default heuristics
> +   - AARCH64_AUTOVEC_PREFERENCE_ASIMD_ONLY: Use only Advanced SIMD (Neon)
> +   for auto-vectorisation
> +   - AARCH64_AUTOVEC_PREFERENCE_SVE_ONLY: Use only SVE for auto-vectorisation
> +   - AARCH64_AUTOVEC_PREFERENCE_PREFER_ASIMD: Use both Neon and SVE,
> +   but prefer Neon when the costs are equal
> +   - AARCH64_AUTOVEC_PREFERENCE_PREFER_SVE: Use both Neon and SVE,
> +   but prefer SVE when the costs are equal.  */
> +enum aarch64_autovec_preference_enum {
> +  AARCH64_AUTOVEC_PREFERENCE_DEFAULT,
> +  AARCH64_AUTOVEC_PREFERENCE_ASIMD_ONLY,
> +  AARCH64_AUTOVEC_PREFERENCE_SVE_ONLY,
> +  AARCH64_AUTOVEC_PREFERENCE_PREFER_ASIMD,
> +  AARCH64_AUTOVEC_PREFERENCE_PREFER_SVE
> +};
> +
>  /* An enum specifying how to handle load and store pairs using
>     a fine-grained policy:
>     - LDP_STP_POLICY_DEFAULT: Use the policy defined in the tuning structure.
> diff --git a/gcc/config/aarch64/aarch64.cc b/gcc/config/aarch64/aarch64.cc
> index bfd7bcdef7c..fba3abe9856 100644
> --- a/gcc/config/aarch64/aarch64.cc
> +++ b/gcc/config/aarch64/aarch64.cc
> @@ -16404,7 +16404,7 @@ record_potential_advsimd_unrolling (loop_vec_info 
> loop_vinfo)
>  
>    /* Check whether it is possible in principle to use Advanced SIMD
>       instead.  */
> -  if (aarch64_autovec_preference == 2)
> +  if (aarch64_autovec_preference == AARCH64_AUTOVEC_PREFERENCE_SVE_ONLY)
>      return;
>  
>    /* We don't want to apply the heuristic to outer loops, since it's
> @@ -22310,8 +22310,8 @@ static bool
>  aarch64_cmp_autovec_modes (machine_mode sve_m, machine_mode asimd_m)
>  {
>    /* Take into account the aarch64-autovec-preference param if non-zero.  */
> -  bool only_asimd_p = aarch64_autovec_preference == 1;
> -  bool only_sve_p = aarch64_autovec_preference == 2;
> +  bool only_asimd_p = aarch64_autovec_preference == 
> AARCH64_AUTOVEC_PREFERENCE_ASIMD_ONLY;
> +  bool only_sve_p = aarch64_autovec_preference == 
> AARCH64_AUTOVEC_PREFERENCE_SVE_ONLY;
>  
>    if (only_asimd_p)
>      return false;
> @@ -22319,8 +22319,8 @@ aarch64_cmp_autovec_modes (machine_mode sve_m, 
> machine_mode asimd_m)
>      return true;
>  
>    /* The preference in case of a tie in costs.  */
> -  bool prefer_asimd = aarch64_autovec_preference == 3;
> -  bool prefer_sve = aarch64_autovec_preference == 4;
> +  bool prefer_asimd = aarch64_autovec_preference == 
> AARCH64_AUTOVEC_PREFERENCE_PREFER_ASIMD;
> +  bool prefer_sve = aarch64_autovec_preference == 
> AARCH64_AUTOVEC_PREFERENCE_PREFER_SVE;
>  
>    poly_int64 nunits_sve = GET_MODE_NUNITS (sve_m);
>    poly_int64 nunits_asimd = GET_MODE_NUNITS (asimd_m);
> @@ -22421,8 +22421,8 @@ aarch64_autovectorize_vector_modes (vector_modes 
> *modes, bool)
>         than an SVE main loop with N bytes then by default we'll try to
>         use the SVE loop to vectorize the epilogue instead.  */
>  
> -  bool only_asimd_p = aarch64_autovec_preference == 1;
> -  bool only_sve_p = aarch64_autovec_preference == 2;
> +  bool only_asimd_p = aarch64_autovec_preference == 
> AARCH64_AUTOVEC_PREFERENCE_ASIMD_ONLY;
> +  bool only_sve_p = aarch64_autovec_preference == 
> AARCH64_AUTOVEC_PREFERENCE_SVE_ONLY;

Formatting nit, sorry, but: long lines in the three hunks above.
(Alternatively, we could drop "PREFERENCE_" from the enum name,
in which case the lines all fit.)
>  
>    unsigned int sve_i = (TARGET_SVE && !only_asimd_p) ? 0 : ARRAY_SIZE 
> (sve_modes);
>    unsigned int advsimd_i = 0;
> diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi
> index 32b772d2a8a..a5c60e6a309 100644
> --- a/gcc/doc/invoke.texi
> +++ b/gcc/doc/invoke.texi
> @@ -17175,22 +17175,17 @@ The precision of division is propotional to this 
> param when division
>  approximation is enabled.  The default value is 2.
>  
>  @item aarch64-autovec-preference
> -Force an ISA selection strategy for auto-vectorization.  Accepts values from
> -0 to 4, inclusive.
> -@table @samp
> -@item 0
> -Use the default heuristics.
> -@item 1
> -Use only Advanced SIMD for auto-vectorization.
> -@item 2
> -Use only SVE for auto-vectorization.
> -@item 3
> -Use both Advanced SIMD and SVE.  Prefer Advanced SIMD when the costs are
> -deemed equal.
> -@item 4
> -Use both Advanced SIMD and SVE.  Prefer SVE when the costs are deemed equal.
> -@end table
> -The default value is 0.
> +Force an ISA selection strategy for auto-vectorization.
> +With @option{--param=aarch64-autovec-preference=default}, use the default
> +heuristics.
> +With @option{--param=aarch64-autovec-preference=asimd-only}, use only
> +Advanced SIMD for auto-vectorization.
> +With @option{--param=aarch64-autovec-preference=sve-only}, use only SVE
> +for auto-vectorization.
> +With @option{--param=aarch64-autovec-preference=prefer-asimd}, use both
> +Advanced SIMD and SVE.  Prefer Advanced SIMD when the costs are deemed equal.
> +With @option{--param=aarch64-autovec-preference=prefer-sve}, use both
> +Advanced SIMD and SVE.  Prefer SVE when the costs are deemed equal.

The table presentation seems more natural to me.

Thanks,
Richard

>  
>  @item aarch64-ldp-policy
>  Fine-grained policy for load pairs.
> diff --git a/gcc/testsuite/gcc.target/aarch64/autovec_param_0.c 
> b/gcc/testsuite/gcc.target/aarch64/autovec_param_0.c
> new file mode 100644
> index 00000000000..45a2a4c5a6b
> --- /dev/null
> +++ b/gcc/testsuite/gcc.target/aarch64/autovec_param_0.c
> @@ -0,0 +1,4 @@
> +/* { dg-options "--param aarch64-autovec-preference=0" } */
> +
> +void
> +foo (void) {}
> diff --git a/gcc/testsuite/gcc.target/aarch64/autovec_param_1.c 
> b/gcc/testsuite/gcc.target/aarch64/autovec_param_1.c
> new file mode 100644
> index 00000000000..bf7f7b402a9
> --- /dev/null
> +++ b/gcc/testsuite/gcc.target/aarch64/autovec_param_1.c
> @@ -0,0 +1,4 @@
> +/* { dg-options "--param aarch64-autovec-preference=1" } */
> +
> +void
> +foo (void) {}
> diff --git a/gcc/testsuite/gcc.target/aarch64/autovec_param_2.c 
> b/gcc/testsuite/gcc.target/aarch64/autovec_param_2.c
> new file mode 100644
> index 00000000000..81d6c19ea9c
> --- /dev/null
> +++ b/gcc/testsuite/gcc.target/aarch64/autovec_param_2.c
> @@ -0,0 +1,4 @@
> +/* { dg-options "--param aarch64-autovec-preference=2" } */
> +
> +void
> +foo (void) {}
> diff --git a/gcc/testsuite/gcc.target/aarch64/autovec_param_3.c 
> b/gcc/testsuite/gcc.target/aarch64/autovec_param_3.c
> new file mode 100644
> index 00000000000..875eb1ea0d6
> --- /dev/null
> +++ b/gcc/testsuite/gcc.target/aarch64/autovec_param_3.c
> @@ -0,0 +1,4 @@
> +/* { dg-options "--param aarch64-autovec-preference=3" } */
> +
> +void
> +foo (void) {}
> diff --git a/gcc/testsuite/gcc.target/aarch64/autovec_param_4.c 
> b/gcc/testsuite/gcc.target/aarch64/autovec_param_4.c
> new file mode 100644
> index 00000000000..55ad25fecc4
> --- /dev/null
> +++ b/gcc/testsuite/gcc.target/aarch64/autovec_param_4.c
> @@ -0,0 +1,4 @@
> +/* { dg-options "--param aarch64-autovec-preference=4" } */
> +
> +void
> +foo (void) {}
> diff --git a/gcc/testsuite/gcc.target/aarch64/autovec_param_asimd-only.c 
> b/gcc/testsuite/gcc.target/aarch64/autovec_param_asimd-only.c
> new file mode 100644
> index 00000000000..c983b26604d
> --- /dev/null
> +++ b/gcc/testsuite/gcc.target/aarch64/autovec_param_asimd-only.c
> @@ -0,0 +1,4 @@
> +/* { dg-options "--param aarch64-autovec-preference=asimd-only" } */
> +
> +void
> +foo (void) {}
> diff --git a/gcc/testsuite/gcc.target/aarch64/autovec_param_default.c 
> b/gcc/testsuite/gcc.target/aarch64/autovec_param_default.c
> new file mode 100644
> index 00000000000..d02acf17df2
> --- /dev/null
> +++ b/gcc/testsuite/gcc.target/aarch64/autovec_param_default.c
> @@ -0,0 +1,4 @@
> +/* { dg-options "--param aarch64-autovec-preference=default" } */
> +
> +void
> +foo (void) {}
> diff --git a/gcc/testsuite/gcc.target/aarch64/autovec_param_prefer-asimd.c 
> b/gcc/testsuite/gcc.target/aarch64/autovec_param_prefer-asimd.c
> new file mode 100644
> index 00000000000..a40d7bdc0d9
> --- /dev/null
> +++ b/gcc/testsuite/gcc.target/aarch64/autovec_param_prefer-asimd.c
> @@ -0,0 +1,4 @@
> +/* { dg-options "--param aarch64-autovec-preference=prefer-asimd" } */
> +
> +void
> +foo (void) {}
> diff --git a/gcc/testsuite/gcc.target/aarch64/autovec_param_prefer-sve.c 
> b/gcc/testsuite/gcc.target/aarch64/autovec_param_prefer-sve.c
> new file mode 100644
> index 00000000000..b8b995fe969
> --- /dev/null
> +++ b/gcc/testsuite/gcc.target/aarch64/autovec_param_prefer-sve.c
> @@ -0,0 +1,4 @@
> +/* { dg-options "--param aarch64-autovec-preference=prefer-sve" } */
> +
> +void
> +foo (void) {}
> diff --git a/gcc/testsuite/gcc.target/aarch64/autovec_param_sve-only.c 
> b/gcc/testsuite/gcc.target/aarch64/autovec_param_sve-only.c
> new file mode 100644
> index 00000000000..f9c567fa6a5
> --- /dev/null
> +++ b/gcc/testsuite/gcc.target/aarch64/autovec_param_sve-only.c
> @@ -0,0 +1,4 @@
> +/* { dg-options "--param aarch64-autovec-preference=sve-only" } */
> +
> +void
> +foo (void) {}
> diff --git a/gcc/testsuite/gcc.target/aarch64/neoverse_v1_2.c 
> b/gcc/testsuite/gcc.target/aarch64/neoverse_v1_2.c
> index 45d7e81c78e..c95fd463ebf 100644
> --- a/gcc/testsuite/gcc.target/aarch64/neoverse_v1_2.c
> +++ b/gcc/testsuite/gcc.target/aarch64/neoverse_v1_2.c
> @@ -1,4 +1,4 @@
> -/* { dg-options "-O2 -mcpu=neoverse-v1 --param aarch64-autovec-preference=1 
> -fdump-tree-vect-details" } */
> +/* { dg-options "-O2 -mcpu=neoverse-v1 --param 
> aarch64-autovec-preference=asimd-only -fdump-tree-vect-details" } */
>  
>  void
>  f (float x[restrict][100], float y[restrict][100])
> diff --git a/gcc/testsuite/gcc.target/aarch64/neoverse_v1_3.c 
> b/gcc/testsuite/gcc.target/aarch64/neoverse_v1_3.c
> index de31fc13b28..f5c94969bf3 100644
> --- a/gcc/testsuite/gcc.target/aarch64/neoverse_v1_3.c
> +++ b/gcc/testsuite/gcc.target/aarch64/neoverse_v1_3.c
> @@ -1,4 +1,4 @@
> -/* { dg-options "-O2 -mcpu=neoverse-v1 --param aarch64-autovec-preference=2 
> -fdump-tree-vect-details" } */
> +/* { dg-options "-O2 -mcpu=neoverse-v1 --param 
> aarch64-autovec-preference=sve-only -fdump-tree-vect-details" } */
>  
>  void
>  f (float x[restrict][100], float y[restrict][100])
> diff --git a/gcc/testsuite/gcc.target/aarch64/sve/cond_asrd_1.c 
> b/gcc/testsuite/gcc.target/aarch64/sve/cond_asrd_1.c
> index 96e99353601..9e14bc68e05 100644
> --- a/gcc/testsuite/gcc.target/aarch64/sve/cond_asrd_1.c
> +++ b/gcc/testsuite/gcc.target/aarch64/sve/cond_asrd_1.c
> @@ -1,5 +1,5 @@
>  /* { dg-do compile } */
> -/* { dg-options "-O2 -ftree-vectorize -moverride=sve_width=256 
> --param=aarch64-autovec-preference=2" } */
> +/* { dg-options "-O2 -ftree-vectorize -moverride=sve_width=256 
> --param=aarch64-autovec-preference=sve-only" } */
>  
>  #include <stdint.h>
>  
> diff --git a/gcc/testsuite/gcc.target/aarch64/sve/cond_cnot_4.c 
> b/gcc/testsuite/gcc.target/aarch64/sve/cond_cnot_4.c
> index 6f969a82942..cc2363cad29 100644
> --- a/gcc/testsuite/gcc.target/aarch64/sve/cond_cnot_4.c
> +++ b/gcc/testsuite/gcc.target/aarch64/sve/cond_cnot_4.c
> @@ -1,5 +1,5 @@
>  /* { dg-do compile } */
> -/* { dg-options "-O2 -ftree-vectorize -moverride=sve_width=256 
> --param=aarch64-autovec-preference=2" } */
> +/* { dg-options "-O2 -ftree-vectorize -moverride=sve_width=256 
> --param=aarch64-autovec-preference=sve-only" } */
>  
>  #include <stdint.h>
>  
> diff --git a/gcc/testsuite/gcc.target/aarch64/sve/cond_unary_5.c 
> b/gcc/testsuite/gcc.target/aarch64/sve/cond_unary_5.c
> index e6ec5157cd6..078318e8d26 100644
> --- a/gcc/testsuite/gcc.target/aarch64/sve/cond_unary_5.c
> +++ b/gcc/testsuite/gcc.target/aarch64/sve/cond_unary_5.c
> @@ -1,5 +1,5 @@
>  /* { dg-do compile } */
> -/* { dg-options "-O2 -ftree-vectorize -moverride=sve_width=256 
> --param=aarch64-autovec-preference=2" } */
> +/* { dg-options "-O2 -ftree-vectorize -moverride=sve_width=256 
> --param=aarch64-autovec-preference=sve-only" } */
>  
>  #include <stdint.h>
>  
> diff --git a/gcc/testsuite/gcc.target/aarch64/sve/cond_uxt_5.c 
> b/gcc/testsuite/gcc.target/aarch64/sve/cond_uxt_5.c
> index 7ed35921b6f..0b0984743c8 100644
> --- a/gcc/testsuite/gcc.target/aarch64/sve/cond_uxt_5.c
> +++ b/gcc/testsuite/gcc.target/aarch64/sve/cond_uxt_5.c
> @@ -1,5 +1,5 @@
>  /* { dg-do compile } */
> -/* { dg-options "-O2 -ftree-vectorize -moverride=sve_width=256 
> --param=aarch64-autovec-preference=2" } */
> +/* { dg-options "-O2 -ftree-vectorize -moverride=sve_width=256 
> --param=aarch64-autovec-preference=sve-only" } */
>  
>  #include <stdint.h>
>  
> diff --git a/gcc/testsuite/gcc.target/aarch64/sve/cond_xorsign_2.c 
> b/gcc/testsuite/gcc.target/aarch64/sve/cond_xorsign_2.c
> index 274dd0ede59..20ec97040bd 100644
> --- a/gcc/testsuite/gcc.target/aarch64/sve/cond_xorsign_2.c
> +++ b/gcc/testsuite/gcc.target/aarch64/sve/cond_xorsign_2.c
> @@ -1,5 +1,5 @@
>  /* { dg-do compile } */
> -/* { dg-options "-O2 -msve-vector-bits=128 --param 
> aarch64-autovec-preference=2" } */
> +/* { dg-options "-O2 -msve-vector-bits=128 --param 
> aarch64-autovec-preference=sve-only" } */
>  
>  #include "cond_xorsign_1.c"
>  
> diff --git a/gcc/testsuite/gcc.target/aarch64/sve/pr98268-1.c 
> b/gcc/testsuite/gcc.target/aarch64/sve/pr98268-1.c
> index fdbe55e0b4e..9b160990ddb 100644
> --- a/gcc/testsuite/gcc.target/aarch64/sve/pr98268-1.c
> +++ b/gcc/testsuite/gcc.target/aarch64/sve/pr98268-1.c
> @@ -1,5 +1,5 @@
>  /* { dg-do link } */
> -/* { dg-options "-flto -O -ftree-vectorize 
> --param=aarch64-autovec-preference=3" } */
> +/* { dg-options "-flto -O -ftree-vectorize 
> --param=aarch64-autovec-preference=prefer-asimd" } */
>  /* { dg-additional-sources "pr98268-2.c" } */
>  
>  short d, e;
> diff --git a/gcc/testsuite/gcc.target/aarch64/sve/pr98268-2.c 
> b/gcc/testsuite/gcc.target/aarch64/sve/pr98268-2.c
> index de3b05d5e15..59cea967bbd 100644
> --- a/gcc/testsuite/gcc.target/aarch64/sve/pr98268-2.c
> +++ b/gcc/testsuite/gcc.target/aarch64/sve/pr98268-2.c
> @@ -1,5 +1,5 @@
>  /* { dg-do compile } */
> -/* { dg-options "-O -ftree-vectorize --param=aarch64-autovec-preference=3" } 
> */
> +/* { dg-options "-O -ftree-vectorize 
> --param=aarch64-autovec-preference=prefer-asimd" } */
>  
>  extern short d[], e[];
>  void f(char a, long *b) {

Reply via email to