https://gcc.gnu.org/g:7b64f757a8df8efd989000baa667279f8957442e

commit r15-7063-g7b64f757a8df8efd989000baa667279f8957442e
Author: Richard Biener <rguent...@suse.de>
Date:   Mon Jan 20 14:25:31 2025 +0100

    tree-optimization/117875 - missed SLP vectorization
    
    There's a discrepancy in SLP vs non-SLP vectorization that SLP build
    does not handle plain SSA copies (which should have been elimiated
    earlier).  But this now bites back since non-SLP happily handles them,
    causing a regression with --param vect-force-slp=1 which is now default,
    resulting in a big performance regression in 456.hmmer.
    
    So the following restores parity between SLP and non-SLP here, defering
    the missed copy elimination to later (PR118565).
    
            PR tree-optimization/117875
            * tree-vect-slp.cc (vect_build_slp_tree_1): Handle SSA copies.

Diff:
---
 gcc/tree-vect-slp.cc | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/gcc/tree-vect-slp.cc b/gcc/tree-vect-slp.cc
index 1d8e62e2fc19..5d9a206f8f58 100644
--- a/gcc/tree-vect-slp.cc
+++ b/gcc/tree-vect-slp.cc
@@ -1522,7 +1522,8 @@ vect_build_slp_tree_1 (vec_info *vinfo, unsigned char 
*swap,
              && TREE_CODE_CLASS (tree_code (rhs_code)) != tcc_comparison
              && rhs_code != VIEW_CONVERT_EXPR
              && rhs_code != CALL_EXPR
-             && rhs_code != BIT_FIELD_REF)
+             && rhs_code != BIT_FIELD_REF
+             && rhs_code != SSA_NAME)
            {
              if (dump_enabled_p ())
                dump_printf_loc (MSG_MISSED_OPTIMIZATION, vect_location,

Reply via email to