PR/67682, break SLP groups up if only some elements match
authoralalaw01 <alalaw01@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 13 Nov 2015 16:12:52 +0000 (16:12 +0000)
committeralalaw01 <alalaw01@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 13 Nov 2015 16:12:52 +0000 (16:12 +0000)
commit2cabe7927004ea182f411a587f5bef2279ddc40e
tree6ea06f2a6842cc5405852cc266757b80eeddbc2f
parentbe803e413cfac85239aa2b9b12c1e2d4f8a408e9
PR/67682, break SLP groups up if only some elements match

gcc/:

* tree-vect-slp.c (vect_split_slp_store_group): New.
(vect_analyze_slp_instance): During basic block SLP, recurse on
subgroups if vect_build_slp_tree fails after 1st vector.

gcc/testsuite/:

* gcc.dg/vect/bb-slp-7.c (main1): Make subgroups non-isomorphic.
* gcc.dg/vect/bb-slp-subgroups-1.c: New.
* gcc.dg/vect/bb-slp-subgroups-2.c: New.
* gcc.dg/vect/bb-slp-subgroups-3.c: New.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@230330 138bc75d-0d04-0410-961f-82ee72b054a4
gcc/ChangeLog
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.dg/vect/bb-slp-7.c
gcc/testsuite/gcc.dg/vect/bb-slp-subgroups-1.c [new file with mode: 0644]
gcc/testsuite/gcc.dg/vect/bb-slp-subgroups-2.c [new file with mode: 0644]
gcc/testsuite/gcc.dg/vect/bb-slp-subgroups-3.c [new file with mode: 0644]
gcc/tree-vect-slp.c