More consistently split SLP groups
authorRichard Biener <rguenther@suse.de>
Mon, 12 Oct 2020 07:31:16 +0000 (09:31 +0200)
committerRichard Biener <rguenther@suse.de>
Mon, 12 Oct 2020 08:50:09 +0000 (10:50 +0200)
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.

2020-10-12  Richard Biener  <rguenther@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

index 495fb97..dd2042a 100644 (file)
@@ -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);
        }