]> git.ipfire.org Git - thirdparty/gcc.git/commit
Add support for vector permute cost since various permutes can expand into a complex...
authorWilco Dijkstra <wdijkstr@arm.com>
Thu, 28 Jan 2016 11:52:08 +0000 (11:52 +0000)
committerWilco Dijkstra <wilco@gcc.gnu.org>
Thu, 28 Jan 2016 11:52:08 +0000 (11:52 +0000)
commitc428f91cb752d9b831df83f057b73e2815f2adad
tree01eefad07cd25439ef89e429e6aa15805e974d2b
parente2b691c4204110d08206dcc304c9fba56e88b89b
Add support for vector permute cost since various permutes can expand into a complex sequence of instructions.

Add support for vector permute cost since various permutes can expand
into a complex sequence of instructions.  This fixes major performance
regressions due to recent changes in SLP vectorizer (which now vectorizes
more aggressively and emits many complex permutes).  Set the cost to > 1
for all microarchitectures so that the number of permutes is usually zero
and regressions disappear.

2016-01-28  Wilco Dijkstra  <wdijkstr@arm.com>

* config/aarch64/aarch64.c (generic_vector_cost):
Set vec_permute_cost.
(cortexa57_vector_cost): Likewise.
(exynosm1_vector_cost): Likewise.
(xgene1_vector_cost): Likewise.
(aarch64_builtin_vectorization_cost): Use vec_permute_cost.
* config/aarch64/aarch64-protos.h (cpu_vector_cost):
Add vec_permute_cost entry.

From-SVN: r232922
gcc/ChangeLog
gcc/config/aarch64/aarch64-protos.h
gcc/config/aarch64/aarch64.c