https://gcc.gnu.org/g:cef29936c6b6773bff1939f94fb629760725bd82

commit r15-3831-gcef29936c6b6773bff1939f94fb629760725bd82
Author: Richard Biener <rguent...@suse.de>
Date:   Tue Sep 24 13:47:04 2024 +0200

    tree-optimization/116819 - SLP with !STMT_VINFO_RELEVANT representative
    
    Under some circumstances we can end up picking a not relevant stmt
    as representative of a SLP node.  Instead of skipping stmt analysis
    and declaring success we have to either ignore relevancy throughout
    the code base or fail SLP operation verification.  The following
    does the latter.
    
            PR tree-optimization/116819
            * tree-vect-stmts.cc (vect_analyze_stmt): When the SLP
            representative isn't relevant signal failure instead of
            success.

Diff:
---
 gcc/tree-vect-stmts.cc | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/gcc/tree-vect-stmts.cc b/gcc/tree-vect-stmts.cc
index c654e01a540f..1b351c5c66ec 100644
--- a/gcc/tree-vect-stmts.cc
+++ b/gcc/tree-vect-stmts.cc
@@ -13295,6 +13295,12 @@ vect_analyze_stmt (vec_info *vinfo,
           if (dump_enabled_p ())
             dump_printf_loc (MSG_NOTE, vect_location, "irrelevant.\n");
 
+         if (node)
+           return opt_result::failure_at (stmt_info->stmt,
+                                          "not vectorized:"
+                                          " irrelevant stmt as SLP node %p "
+                                          "representative.\n",
+                                          (void *)node);
           return opt_result::success ();
         }
     }

Reply via email to