This appropriately makes matches all true after successful SLP discovery
to reliably succeed splitting.  We were picking up an eventual all
false built-up from scalars state in some cases.

Bootstrap / regtest in progress on x86_64-unknown-linux-gnu.

2020-10-12  Richard Biener  <rguent...@suse.de>

        * tree-vect-slp.c (vect_analyze_slp_instance): Set matches to true
        after successful discovery but forced split.
---
 gcc/tree-vect-slp.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/gcc/tree-vect-slp.c b/gcc/tree-vect-slp.c
index 495fb970e24..dd2042a4db5 100644
--- a/gcc/tree-vect-slp.c
+++ b/gcc/tree-vect-slp.c
@@ -2283,7 +2283,7 @@ vect_analyze_slp_instance (vec_info *vinfo,
            dump_printf_loc (MSG_NOTE, vect_location,
                             "SLP discovery succeeded but node needs "
                             "splitting\n");
-         matches[0] = true;
+         memset (matches, true, group_size);
          matches[group_size / const_max_nunits * const_max_nunits] = false;
          vect_free_slp_tree (node);
        }
-- 
2.26.2

Reply via email to