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