]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
aarch64: Assume zero gather/scatter set-up cost for -mtune=generic
authorRichard Sandiford <richard.sandiford@arm.com>
Wed, 28 Aug 2024 15:41:09 +0000 (16:41 +0100)
committerRichard Sandiford <richard.sandiford@arm.com>
Wed, 28 Aug 2024 15:41:09 +0000 (16:41 +0100)
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.

gcc/config/aarch64/tuning_models/generic.h

index 101969bdbb9ccf7eafbd9a1cd6e25f0b584fb261..ee2f3ff42663bc8cae9d1d5f9ef3047519a0441f 100644 (file)
@@ -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  */
 };