aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Biener <rguenther@suse.de>2024-09-06 13:24:38 +0200
committerRichard Biener <rguenth@gcc.gnu.org>2024-09-06 14:15:04 +0200
commitea9d4bf45ef906b990abdb101297e34366059f1c (patch)
tree100d47f58e756e4cc1ab5d02f22512d85c9319d3
parent964577c31df206d780d5cc7bc07189d44de2719e (diff)
downloadgcc-ea9d4bf45ef906b990abdb101297e34366059f1c.zip
gcc-ea9d4bf45ef906b990abdb101297e34366059f1c.tar.gz
gcc-ea9d4bf45ef906b990abdb101297e34366059f1c.tar.bz2
Fix SLP double-reduction support
When doing SLP discovery I forgot to handle double reductions even though they are already queued in LOOP_VINFO_REDUCTIONS. * tree-vect-slp.cc (vect_analyze_slp): Also handle discovery for double reductions.
-rw-r--r--gcc/tree-vect-slp.cc4
1 files changed, 3 insertions, 1 deletions
diff --git a/gcc/tree-vect-slp.cc b/gcc/tree-vect-slp.cc
index 3d29736..0fb1734 100644
--- a/gcc/tree-vect-slp.cc
+++ b/gcc/tree-vect-slp.cc
@@ -4652,7 +4652,9 @@ vect_analyze_slp (vec_info *vinfo, unsigned max_tree_size)
reduction path. In that case we'd have to reverse
engineer that conversion stmt following the chain using
reduc_idx and from the PHI using reduc_def. */
- && STMT_VINFO_DEF_TYPE (next_info) == vect_reduction_def)
+ && (STMT_VINFO_DEF_TYPE (next_info) == vect_reduction_def
+ || (STMT_VINFO_DEF_TYPE (next_info)
+ == vect_double_reduction_def)))
{
/* Do not discover SLP reductions combining lane-reducing
ops, that will fail later. */