summaryrefslogtreecommitdiff
path: root/gcc/tree-vect-slp.c
diff options
context:
space:
mode:
authorjakub <jakub@138bc75d-0d04-0410-961f-82ee72b054a4>2012-05-21 14:29:11 +0000
committerjakub <jakub@138bc75d-0d04-0410-961f-82ee72b054a4>2012-05-21 14:29:11 +0000
commite694f1e75881d72f4b0968549d8a2e21e766d8e9 (patch)
tree4fad66eaca5a76ae4d23737387633a4cb659fe0f /gcc/tree-vect-slp.c
parent791e639140a398341e5e4ded99e4de52da83724f (diff)
downloadgcc-e694f1e75881d72f4b0968549d8a2e21e766d8e9.tar.gz
PR tree-optimization/53366
* tree-vect-slp.c (vect_supported_load_permutation_p): Don't shortcut tests if complex_numbers == 2, but there are non-complex number loads too. * gcc.dg/torture/pr53366-1.c: New test. * gcc.dg/torture/pr53366-2.c: New test. * gcc.target/i386/pr53366-1.c: New test. * gcc.target/i386/pr53366-2.c: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@187717 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/tree-vect-slp.c')
-rw-r--r--gcc/tree-vect-slp.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/gcc/tree-vect-slp.c b/gcc/tree-vect-slp.c
index e189c5071f0..4690a4e9211 100644
--- a/gcc/tree-vect-slp.c
+++ b/gcc/tree-vect-slp.c
@@ -1199,7 +1199,8 @@ vect_supported_load_permutation_p (slp_instance slp_instn, int group_size,
/* We checked that this case ok, so there is no need to proceed with
permutation tests. */
- if (complex_numbers == 2)
+ if (complex_numbers == 2
+ && VEC_length (slp_tree, SLP_INSTANCE_LOADS (slp_instn)) == 2)
{
VEC_free (slp_tree, heap, SLP_INSTANCE_LOADS (slp_instn));
VEC_free (int, heap, SLP_INSTANCE_LOAD_PERMUTATION (slp_instn));