diff options
author | Richard Sandiford <richard.sandiford@arm.com> | 2019-11-16 10:43:52 +0000 |
---|---|---|
committer | Richard Sandiford <rsandifo@gcc.gnu.org> | 2019-11-16 10:43:52 +0000 |
commit | eb23241ba81aace0c881ccee4643632809741953 (patch) | |
tree | 7eec28a84e7f30c72a362aff3439e15219dcea7e /gcc/doc | |
parent | bcc7e346bf9b5dc77797ea949d6adc740deb30ca (diff) | |
download | gcc-eb23241ba81aace0c881ccee4643632809741953.zip gcc-eb23241ba81aace0c881ccee4643632809741953.tar.gz gcc-eb23241ba81aace0c881ccee4643632809741953.tar.bz2 |
[AArch64] Enable VECT_COMPARE_COSTS by default for SVE
This patch enables VECT_COMPARE_COSTS by default for SVE, both so
that we can compare SVE against Advanced SIMD and so that (with future
patches) we can compare multiple SVE vectorisation approaches against
each other. It also adds a target-specific --param to control this.
2019-11-16 Richard Sandiford <richard.sandiford@arm.com>
gcc/
* config/aarch64/aarch64.opt (--param=aarch64-sve-compare-costs):
New option.
* doc/invoke.texi: Document it.
* config/aarch64/aarch64.c (aarch64_autovectorize_vector_modes):
By default, return VECT_COMPARE_COSTS for SVE.
gcc/testsuite/
* gcc.target/aarch64/sve/reduc_3.c: Split multi-vector cases out
into...
* gcc.target/aarch64/sve/reduc_3_costly.c: ...this new test,
passing -fno-vect-cost-model for them.
* gcc.target/aarch64/sve/slp_6.c: Add -fno-vect-cost-model.
* gcc.target/aarch64/sve/slp_7.c,
* gcc.target/aarch64/sve/slp_7_run.c: Split multi-vector cases out
into...
* gcc.target/aarch64/sve/slp_7_costly.c,
* gcc.target/aarch64/sve/slp_7_costly_run.c: ...these new tests,
passing -fno-vect-cost-model for them.
* gcc.target/aarch64/sve/while_7.c: Add -fno-vect-cost-model.
* gcc.target/aarch64/sve/while_9.c: Likewise.
From-SVN: r278337
Diffstat (limited to 'gcc/doc')
-rw-r--r-- | gcc/doc/invoke.texi | 18 |
1 files changed, 16 insertions, 2 deletions
diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi index fe79ca2..7f19d67 100644 --- a/gcc/doc/invoke.texi +++ b/gcc/doc/invoke.texi @@ -11179,8 +11179,8 @@ without notice in future releases. In order to get minimal, maximal and default value of a parameter, one can use @option{--help=param -Q} options. -In each case, the @var{value} is an integer. The allowable choices for -@var{name} are: +In each case, the @var{value} is an integer. The following choices +of @var{name} are recognized for all targets: @table @gcctabopt @item predictable-branch-outcome @@ -12396,6 +12396,20 @@ statements or when determining their validity prior to issuing diagnostics. @end table + +The following choices of @var{name} are available on AArch64 targets: + +@table @gcctabopt +@item aarch64-sve-compare-costs +When vectorizing for SVE, consider using ``unpacked'' vectors for +smaller elements and use the cost model to pick the cheapest approach. +Also use the cost model to choose between SVE and Advanced SIMD vectorization. + +Using unpacked vectors includes storing smaller elements in larger +containers and accessing elements with extending loads and truncating +stores. +@end table + @end table @node Instrumentation Options |