From 10928002eecd77682311a6ee9b3ceb7e8bbec642 Mon Sep 17 00:00:00 2001 From: rguenth Date: Wed, 23 Oct 2019 06:45:03 +0000 Subject: [PATCH] 2019-10-23 Richard Biener * tree-vect-slp.c (vect_build_slp_tree_2): Do not build op from scalars in case there's a constant operand in its definition. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@277308 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/ChangeLog | 6 ++++++ gcc/tree-vect-slp.c | 4 ++-- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 8ec312d7470c..2445523f274f 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2019-10-23 Richard Biener + + * tree-vect-slp.c (vect_build_slp_tree_2): Do not build + op from scalars in case there's a constant operand in its + definition. + 2019-10-23 Iain Sandoe * config/rs6000/darwin.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Guard diff --git a/gcc/tree-vect-slp.c b/gcc/tree-vect-slp.c index 864db64d2002..e1061ede0617 100644 --- a/gcc/tree-vect-slp.c +++ b/gcc/tree-vect-slp.c @@ -1291,7 +1291,7 @@ vect_build_slp_tree_2 (vec_info *vinfo, slp_tree grandchild; FOR_EACH_VEC_ELT (SLP_TREE_CHILDREN (child), j, grandchild) - if (SLP_TREE_DEF_TYPE (grandchild) == vect_internal_def) + if (SLP_TREE_DEF_TYPE (grandchild) != vect_external_def) break; if (!grandchild) { @@ -1450,7 +1450,7 @@ vect_build_slp_tree_2 (vec_info *vinfo, slp_tree grandchild; FOR_EACH_VEC_ELT (SLP_TREE_CHILDREN (child), j, grandchild) - if (SLP_TREE_DEF_TYPE (grandchild) == vect_internal_def) + if (SLP_TREE_DEF_TYPE (grandchild) != vect_external_def) break; if (!grandchild) { -- 2.47.2