PR/67682, break SLP groups up if only some elements match
authorAlan Lawrence <alan.lawrence@arm.com>
Fri, 13 Nov 2015 16:12:52 +0000 (16:12 +0000)
committerAlan Lawrence <alalaw01@gcc.gnu.org>
Fri, 13 Nov 2015 16:12:52 +0000 (16:12 +0000)
commit1ba91a49a97955057bb8a07b42feb901ee9cee4e
tree6ea06f2a6842cc5405852cc266757b80eeddbc2f
parent4216708a0073b10ffca943dc05c861d4d16f9c33
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.

From-SVN: r230330
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