]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
Adjust reduction with conversion SLP build
authorRichard Biener <rguenther@suse.de>
Thu, 10 Jul 2025 09:23:59 +0000 (11:23 +0200)
committerRichard Biener <rguenth@gcc.gnu.org>
Thu, 10 Jul 2025 11:11:30 +0000 (13:11 +0200)
The following adjusts how we set SLP_TREE_VECTYPE for the conversion
node we build when fixing up the reduction with conversion SLP instance.
This should probably see more TLC, but the following avoids relying
on STMT_VINFO_VECTYPE for this.

* tree-vect-slp.cc (vect_build_slp_instance): Do not use
SLP_TREE_VECTYPE to determine the conversion back to the
reduction IV.

gcc/tree-vect-slp.cc

index 68ef1ddda77abf655bdc867221246c111b007bd5..5ef45fd60f5788bed1d4a3a0aec45dcf5b3f1f65 100644 (file)
@@ -4067,7 +4067,12 @@ vect_build_slp_instance (vec_info *vinfo,
                  for (unsigned i = 0; i < group_size; ++i)
                    scalar_stmts.quick_push (next_info);
                  slp_tree conv = vect_create_new_slp_node (scalar_stmts, 1);
-                 SLP_TREE_VECTYPE (conv) = STMT_VINFO_VECTYPE (next_info);
+                 SLP_TREE_VECTYPE (conv)
+                   = get_vectype_for_scalar_type (vinfo,
+                                                  TREE_TYPE
+                                                    (gimple_assign_lhs
+                                                      (scalar_def)),
+                                                  group_size);
                  SLP_TREE_CHILDREN (conv).quick_push (node);
                  SLP_INSTANCE_TREE (new_instance) = conv;
                  /* We also have to fake this conversion stmt as SLP reduction