diff options
author | Richard Biener <rguenther@suse.de> | 2018-10-29 15:43:08 +0000 |
---|---|---|
committer | Richard Biener <rguenth@gcc.gnu.org> | 2018-10-29 15:43:08 +0000 |
commit | 266ef3613ea80da937a9fc782eb5c3ae8dcabb8f (patch) | |
tree | 5dae5d1d7c505ada5cfae75128d5a932d7c036e2 /gcc/tree-vect-slp.c | |
parent | bca81bd229115f49858380bb696b0ed193eeb5b1 (diff) | |
download | gcc-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.c | 3 |
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); } |