From: Richard Biener Date: Mon, 17 Jun 2024 14:01:15 +0000 (+0200) Subject: tree-optimization/115493 - fix wrong code with SLP induction cond reduction X-Git-Tag: basepoints/gcc-16~8161 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=19258ca1b85bc15e3a49054eff209f4f0d1c5bee;p=thirdparty%2Fgcc.git 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 --git a/gcc/tree-vect-loop.cc b/gcc/tree-vect-loop.cc index d9a2ad69484..7c79e9da106 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);