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

Richard Biener <rguenth at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |ASSIGNED
           Assignee|unassigned at gcc dot gnu.org      |rguenth at gcc dot 
gnu.org

--- Comment #3 from Richard Biener <rguenth at gcc dot gnu.org> ---
The issue here is that we have a load group with one stmt feeding a condition. 
For some reason we think that we can support vectorizing

_7 = _4 != 0

with _4 being defined by a pure-SLP def.  Which looks odd - the this is clearly
not a pure SLP node!

Fix:

Index: tree-vect-slp.c
===================================================================
--- tree-vect-slp.c     (revision 213809)
+++ tree-vect-slp.c     (working copy)
@@ -1793,7 +1793,8 @@ vect_detect_hybrid_slp_stmts (slp_tree n
            && (stmt_vinfo = vinfo_for_stmt (use_stmt))
            && !STMT_SLP_TYPE (stmt_vinfo)
             && (STMT_VINFO_RELEVANT (stmt_vinfo)
-                || VECTORIZABLE_CYCLE_DEF (STMT_VINFO_DEF_TYPE (stmt_vinfo)))
+                || VECTORIZABLE_CYCLE_DEF (STMT_VINFO_DEF_TYPE (stmt_vinfo))
+               || STMT_VINFO_IN_PATTERN_P (stmt_vinfo))
            && !(gimple_code (use_stmt) == GIMPLE_PHI
                  && STMT_VINFO_DEF_TYPE (stmt_vinfo)
                   == vect_reduction_def))

Reply via email to