diff options
author | Andreas Krebbel <krebbel@linux.ibm.com> | 2018-04-24 12:18:26 +0000 |
---|---|---|
committer | Andreas Krebbel <krebbel@gcc.gnu.org> | 2018-04-24 12:18:26 +0000 |
commit | 062c0a7b2f8dc58f8bb7c6d3448866812bfc75c1 (patch) | |
tree | b116ed1346fa4438cf90a3e37d1bd17de2f8163d /gcc/tree-vect-loop.c | |
parent | 4149dd37d914325fd275675b29d39049612b0a76 (diff) | |
download | gcc-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.c | 5 |
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]); |