https://gcc.gnu.org/g:19258ca1b85bc15e3a49054eff209f4f0d1c5bee

commit r15-1392-g19258ca1b85bc15e3a49054eff209f4f0d1c5bee
Author: Richard Biener <rguent...@suse.de>
Date:   Mon Jun 17 16:01:15 2024 +0200

    tree-optimization/115493 - fix wrong code with SLP induction cond reduction
    
    The following fixes a bad final value being used when doing single-lane
    SLP integer induction cond reduction vectorization.
    
            PR tree-optimization/115493
            * tree-vect-loop.cc (vect_create_epilog_for_reduction): Use
            the first scalar result.

Diff:
---
 gcc/tree-vect-loop.cc | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/gcc/tree-vect-loop.cc b/gcc/tree-vect-loop.cc
index d9a2ad694843..7c79e9da1060 100644
--- a/gcc/tree-vect-loop.cc
+++ b/gcc/tree-vect-loop.cc
@@ -6843,8 +6843,8 @@ vect_create_epilog_for_reduction (loop_vec_info 
loop_vinfo,
             with the original initial value, unless induc_val is
             the same as initial_def already.  */
          tree zcompare = make_ssa_name (boolean_type_node);
-         epilog_stmt = gimple_build_assign (zcompare, EQ_EXPR, new_temp,
-                                            induc_val);
+         epilog_stmt = gimple_build_assign (zcompare, EQ_EXPR,
+                                            scalar_results[0], induc_val);
          gsi_insert_before (&exit_gsi, epilog_stmt, GSI_SAME_STMT);
          tree initial_def = reduc_info->reduc_initial_values[0];
          tree tmp = make_ssa_name (new_scalar_dest);

Reply via email to