diff options
author | Dorit Nuzman <dorit@il.ibm.com> | 2007-06-08 08:57:54 +0000 |
---|---|---|
committer | Dorit Nuzman <dorit@gcc.gnu.org> | 2007-06-08 08:57:54 +0000 |
commit | 0d2665809fd15fe7c5ee73a7adee1ae64a002ffd (patch) | |
tree | 756ce738929bc178e9949ba8d8f19c9c72248f0a /gcc/tree-vect-analyze.c | |
parent | 2dbc83d953662e61db936cac2ac25f907895205e (diff) | |
download | gcc-0d2665809fd15fe7c5ee73a7adee1ae64a002ffd.zip gcc-0d2665809fd15fe7c5ee73a7adee1ae64a002ffd.tar.gz gcc-0d2665809fd15fe7c5ee73a7adee1ae64a002ffd.tar.bz2 |
re PR tree-optimization/32224 (ICE in vect_analyze_operations, at tree-vect-analyze.c:374)
PR tree-optimization/32224
* tree-vect-analyze.c (vect_determine_vectorization_factor): Fail
vectorization upon a non GIMPLE_MODIFY_STMT.
From-SVN: r125566
Diffstat (limited to 'gcc/tree-vect-analyze.c')
-rw-r--r-- | gcc/tree-vect-analyze.c | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/gcc/tree-vect-analyze.c b/gcc/tree-vect-analyze.c index 647d98f..454cae6 100644 --- a/gcc/tree-vect-analyze.c +++ b/gcc/tree-vect-analyze.c @@ -173,9 +173,6 @@ vect_determine_vectorization_factor (loop_vec_info loop_vinfo) print_generic_expr (vect_dump, stmt, TDF_SLIM); } - if (TREE_CODE (stmt) != GIMPLE_MODIFY_STMT) - continue; - gcc_assert (stmt_info); /* skip stmts which do not need to be vectorized. */ @@ -187,6 +184,16 @@ vect_determine_vectorization_factor (loop_vec_info loop_vinfo) continue; } + if (TREE_CODE (stmt) != GIMPLE_MODIFY_STMT) + { + if (vect_print_dump_info (REPORT_UNVECTORIZED_LOOPS)) + { + fprintf (vect_dump, "not vectorized: irregular stmt."); + print_generic_expr (vect_dump, stmt, TDF_SLIM); + } + return false; + } + if (!GIMPLE_STMT_P (stmt) && VECTOR_MODE_P (TYPE_MODE (TREE_TYPE (stmt)))) { |