aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree-vect-slp.c
diff options
context:
space:
mode:
authorRichard Biener <rguenther@suse.de>2018-10-29 15:43:08 +0000
committerRichard Biener <rguenth@gcc.gnu.org>2018-10-29 15:43:08 +0000
commit266ef3613ea80da937a9fc782eb5c3ae8dcabb8f (patch)
tree5dae5d1d7c505ada5cfae75128d5a932d7c036e2 /gcc/tree-vect-slp.c
parentbca81bd229115f49858380bb696b0ed193eeb5b1 (diff)
downloadgcc-266ef3613ea80da937a9fc782eb5c3ae8dcabb8f.zip
gcc-266ef3613ea80da937a9fc782eb5c3ae8dcabb8f.tar.gz
gcc-266ef3613ea80da937a9fc782eb5c3ae8dcabb8f.tar.bz2
re PR tree-optimization/87785 (ICE in dr_misalignment, at tree-vectorizer.h:1245 on 454.calculix with -Ofast and -flto)
2018-10-29 Richard Biener <rguenther@suse.de> PR tree-optimization/87785 * tree-vect-slp.c (vect_gather_slp_loads): Only gather internal defs. * gcc.dg/torture/20181029-1.c: New testcase. * gcc.dg/torture/20181029-2.c: Likewise. From-SVN: r265596
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 a1db0df..6ec7358 100644
--- a/gcc/tree-vect-slp.c
+++ b/gcc/tree-vect-slp.c
@@ -1645,7 +1645,8 @@ vect_gather_slp_loads (slp_instance inst, slp_tree node,
if (SLP_TREE_CHILDREN (node).length () == 0)
{
stmt_vec_info stmt_info = SLP_TREE_SCALAR_STMTS (node)[0];
- if (STMT_VINFO_GROUPED_ACCESS (stmt_info)
+ if (SLP_TREE_DEF_TYPE (node) == vect_internal_def
+ && STMT_VINFO_GROUPED_ACCESS (stmt_info)
&& DR_IS_READ (STMT_VINFO_DATA_REF (stmt_info)))
SLP_INSTANCE_LOADS (inst).safe_push (node);
}