[Bug tree-optimization/68327] [6 Regression] ICE on valid code at -O3 on x86_64-linux-gnu in vect_is_simple_use, at tree-vect-stmts.c:8562

ienkovich at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Tue Nov 17 12:49:00 GMT 2015


https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68327

--- Comment #3 from Ilya Enkovich <ienkovich at gcc dot gnu.org> ---
We compute vectype for phi when it's relevant.  For other statements we compute
it when it's relevant or alive.  For non-relevant but alive boolean statement
we try to examine operand definition which is non-relevant phi and doesn't have
vectype.

Do we need vectype for non-relevant statements?  This patch works for the test:

diff --git a/gcc/tree-vect-loop.c b/gcc/tree-vect-loop.c
index 80937ec..592372d 100644
--- a/gcc/tree-vect-loop.c
+++ b/gcc/tree-vect-loop.c
@@ -439,7 +439,8 @@ vect_determine_vectorization_factor (loop_vec_info
loop_vinfo)
                 compute a factor.  */
              if (TREE_CODE (scalar_type) == BOOLEAN_TYPE)
                {
-                 mask_producers.safe_push (stmt_info);
+                 if (STMT_VINFO_RELEVANT_P (stmt_info))
+                   mask_producers.safe_push (stmt_info);
                  bool_result = true;

                  if (gimple_code (stmt) == GIMPLE_ASSIGN


More information about the Gcc-bugs mailing list