]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
tree-optimization/115493 - fix wrong code with SLP induction cond reduction
authorRichard Biener <rguenther@suse.de>
Mon, 17 Jun 2024 14:01:15 +0000 (16:01 +0200)
committerRichard Biener <rguenther@suse.de>
Tue, 18 Jun 2024 05:46:13 +0000 (07:46 +0200)
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.

gcc/tree-vect-loop.cc

index d9a2ad694843bc12a5459a65cf24e253a7247a70..7c79e9da1060fe6c01687b872fc88a6e5c26cc3b 100644 (file)
@@ -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);