https://gcc.gnu.org/g:abeeccef92892fe519cc417b30ae22ce9da2d5e6
commit r15-3261-gabeeccef92892fe519cc417b30ae22ce9da2d5e6 Author: Richard Sandiford <richard.sandif...@arm.com> Date: Wed Aug 28 16:41:09 2024 +0100 aarch64: Assume zero gather/scatter set-up cost for -mtune=generic generic_vector_cost is not currently used by any SVE target by default; it has to be specifically selected by -mtune=generic. Its SVE costing has historically been somewhat idealised, since it predated any actual SVE cores. This seems like a useful tradition to continue, at least for testing purposes. The ideal case is that gathers and scatters do not induce a specific one-off overhead. This patch therefore sets the gather/scatter init costs to zero. This patch is necessary to switch -mtune=generic over to the "new" vector costs. gcc/ * config/aarch64/tuning_models/generic.h (generic_sve_vector_cost): Set gather_load_x32_init_cost and gather_load_x64_init_cost to 0. Diff: --- gcc/config/aarch64/tuning_models/generic.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gcc/config/aarch64/tuning_models/generic.h b/gcc/config/aarch64/tuning_models/generic.h index 101969bdbb9c..ee2f3ff42663 100644 --- a/gcc/config/aarch64/tuning_models/generic.h +++ b/gcc/config/aarch64/tuning_models/generic.h @@ -105,8 +105,8 @@ static const sve_vec_cost generic_sve_vector_cost = 2, /* fadda_f64_cost */ 4, /* gather_load_x32_cost */ 2, /* gather_load_x64_cost */ - 12, /* gather_load_x32_init_cost */ - 4, /* gather_load_x64_init_cost */ + 0, /* gather_load_x32_init_cost */ + 0, /* gather_load_x64_init_cost */ 1 /* scatter_store_elt_cost */ };