Hi All, This adds the dissolve code to undo the patterns created by the pattern matcher in case SLP is to be aborted. As mentioned in the cover letter this has one issue in that the number of copies can needed can change depending on whether TWO_OPERATORS is needed or not. Because of this I don't analyze the original statement when it's replaced by a pattern and attempt to correct it here by analyzing it after dissolve. This however seems too late and I would need to change the unroll factor, which seems a bit odd. Any advice would be appreciated. Bootstrapped Regtested on aarch64-none-linux-gnu and no issues. Thanks, Tamar gcc/ChangeLog: * tree-vect-loop.c (vect_dissolve_slp_only_patterns): New (vect_dissolve_slp_only_groups): Call vect_dissolve_slp_only_patterns. --