Change the way we split stores in BB vectorization
authorRichard Biener <rguenther@suse.de>
Wed, 28 Oct 2020 11:56:16 +0000 (12:56 +0100)
committerRichard Biener <rguenther@suse.de>
Wed, 28 Oct 2020 13:15:37 +0000 (14:15 +0100)
commit2acb33103c4cbc6766d8707ad58aa5cc9a804719
tree2ae9a8c3f1965c9c023d7cda958797c0027e62e9
parentac1724ccfdb9056d59fc21500c57c4edc963e653
Change the way we split stores in BB vectorization

The following fixes missed optimizations due to the strange way we
split stores in BB vectorization.  The solution is to split at
the failure boundary and not re-align that to the initial piece
chosen vector size.  Also re-analyze any larger matching rest.

2020-10-28  Richard Biener  <rguenther@suse.de>

* tree-vect-slp.c (vect_build_slp_instance): Split the store
group at the failure boundary and also re-analyze a large enough
matching rest.

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