Allow more BB vectorization
authorRichard Biener <rguenther@suse.de>
Tue, 15 Sep 2020 12:35:40 +0000 (14:35 +0200)
committerRichard Biener <rguenther@suse.de>
Tue, 15 Sep 2020 12:41:21 +0000 (14:41 +0200)
commitc9de716a59c873859df3b3e1fbb993200fce5a73
treedcf2c6218ef64c1050e9df4358fc6603de07b9a4
parent80297f897758f59071968ddff2a04a8d11481117
Allow more BB vectorization

The following allows more BB vectorization by generally building leafs
from scalars rather than giving up.  Note this is only a first step
towards this and as can be seen with the exception for node splitting
it is generally hard to get this heuristic sound.  I've added variants
of the bb-slp-48.c testcase to make sure we still try permuting for
example.

2020-09-15  Richard Biener  <rguenther@suse.de>

* tree-vect-slp.c (vect_build_slp_tree_2): Also consider
building an operand from scalars when building it did not
fail fatally but avoid messing with the upcall splitting
of groups.

* gcc.dg/vect/bb-slp-48.c: New testcase.
* gcc.dg/vect/bb-slp-7.c: Adjust.
gcc/testsuite/gcc.dg/vect/bb-slp-48.c [new file with mode: 0644]
gcc/testsuite/gcc.dg/vect/bb-slp-7.c
gcc/tree-vect-slp.c