aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree-vect-loop.c
diff options
context:
space:
mode:
authorAndreas Krebbel <krebbel@linux.ibm.com>2018-04-24 12:18:26 +0000
committerAndreas Krebbel <krebbel@gcc.gnu.org>2018-04-24 12:18:26 +0000
commit062c0a7b2f8dc58f8bb7c6d3448866812bfc75c1 (patch)
treeb116ed1346fa4438cf90a3e37d1bd17de2f8163d /gcc/tree-vect-loop.c
parent4149dd37d914325fd275675b29d39049612b0a76 (diff)
downloadgcc-062c0a7b2f8dc58f8bb7c6d3448866812bfc75c1.zip
gcc-062c0a7b2f8dc58f8bb7c6d3448866812bfc75c1.tar.gz
gcc-062c0a7b2f8dc58f8bb7c6d3448866812bfc75c1.tar.bz2
re PR tree-optimization/85478 (ICE with single element vector)
Fix PR85478 gcc/ChangeLog: 2018-04-24 Andreas Krebbel <krebbel@linux.ibm.com> PR tree-optimization/85478 * tree-vect-loop.c (vect_analyze_loop_2): Do not call vect_grouped_store_supported for single element vectors. gcc/testsuite/ChangeLog: 2018-04-24 Andreas Krebbel <krebbel@linux.ibm.com> PR tree-optimization/85478 * g++.dg/pr85478.C: New test. From-SVN: r259593
Diffstat (limited to 'gcc/tree-vect-loop.c')
-rw-r--r--gcc/tree-vect-loop.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/gcc/tree-vect-loop.c b/gcc/tree-vect-loop.c
index 7b3009a..4ce721e 100644
--- a/gcc/tree-vect-loop.c
+++ b/gcc/tree-vect-loop.c
@@ -2492,8 +2492,9 @@ again:
unsigned int size = STMT_VINFO_GROUP_SIZE (vinfo);
tree vectype = STMT_VINFO_VECTYPE (vinfo);
if (! vect_store_lanes_supported (vectype, size, false)
- && ! vect_grouped_store_supported (vectype, size))
- return false;
+ && ! known_eq (TYPE_VECTOR_SUBPARTS (vectype), 1U)
+ && ! vect_grouped_store_supported (vectype, size))
+ return false;
FOR_EACH_VEC_ELT (SLP_INSTANCE_LOADS (instance), j, node)
{
vinfo = vinfo_for_stmt (SLP_TREE_SCALAR_STMTS (node)[0]);