Kyrylo Tkachov <ktkac...@nvidia.com> writes: >> On 20 Aug 2024, at 19:11, Richard Sandiford <richard.sandif...@arm.com> >> wrot>> 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. > > I recommended to Jennifer to keep the old names as aliases because I had seem > some internal scripts that did some specialist analysis use them and I got > the impression there may be more such users. > But those scripts can easily be updated and indeed this is a param that we > don’t promise to keep it backwards—compatible. > I’ve been in two minds over whether to keep the old options, I’m okay with > switching to just the enum values. > I wouldn’t want to make this an -m* option as I don’t want to see this used > in production code to override what the compiler should be getting right on > its own.
Ah, ok, thanks. In that case I agree we should just keep it as a --param. I've a slight preference for dropping the numeric arguments, but definitely no objection to keeping them if that's more convenient. Richard > > Thanks, > Kyrill > > >> >>> >>> 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) {