aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree-vect-loop.c
diff options
context:
space:
mode:
authorIra Rosen <irar@il.ibm.com>2010-02-16 11:35:03 +0000
committerIra Rosen <irar@gcc.gnu.org>2010-02-16 11:35:03 +0000
commit99f51320d47ba6565b21dbf9a1ec999b193fde0a (patch)
treee9f104bb7db8c23a9f89870f72aee6f61efe9bce /gcc/tree-vect-loop.c
parentf47e08d97a42b58e87bb4edaaa7889743c064b54 (diff)
downloadgcc-99f51320d47ba6565b21dbf9a1ec999b193fde0a.zip
gcc-99f51320d47ba6565b21dbf9a1ec999b193fde0a.tar.gz
gcc-99f51320d47ba6565b21dbf9a1ec999b193fde0a.tar.bz2
re PR tree-optimization/43074 (ICE in vectorizable_reduction, at tree-vect-loop.c:3491)
PR tree-optimization/43074 * tree-vectorizer.h (VECTORIZABLE_CYCLE_DEF): New. * tree-vect-loop.c (vect_analyze_loop_operations): Add vectorizable cycles in hybrid SLP check. * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Likewise. From-SVN: r156800
Diffstat (limited to 'gcc/tree-vect-loop.c')
-rw-r--r--gcc/tree-vect-loop.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/gcc/tree-vect-loop.c b/gcc/tree-vect-loop.c
index 9e17eb3..16aa242 100644
--- a/gcc/tree-vect-loop.c
+++ b/gcc/tree-vect-loop.c
@@ -1184,7 +1184,10 @@ vect_analyze_loop_operations (loop_vec_info loop_vinfo)
if (!vect_analyze_stmt (stmt, &need_to_vectorize, NULL))
return false;
- if (STMT_VINFO_RELEVANT_P (stmt_info) && !PURE_SLP_STMT (stmt_info))
+ if ((STMT_VINFO_RELEVANT_P (stmt_info)
+ || VECTORIZABLE_CYCLE_DEF (STMT_VINFO_DEF_TYPE (stmt_info)))
+ && !PURE_SLP_STMT (stmt_info))
+
/* STMT needs both SLP and loop-based vectorization. */
only_slp_in_loop = false;
}