https://gcc.gnu.org/bugzilla/show_bug.cgi?id=97334
--- Comment #3 from CVS Commits <cvs-commit at gcc dot gnu.org> --- The master branch has been updated by Richard Biener <rgue...@gcc.gnu.org>: https://gcc.gnu.org/g:16760e5bf7028dfa36b39af305d05cdf2c15b3a9 commit r11-3750-g16760e5bf7028dfa36b39af305d05cdf2c15b3a9 Author: Richard Biener <rguent...@suse.de> Date: Fri Oct 9 12:24:46 2020 +0200 tree-optimization/97334 - improve BB SLP discovery We're running into a multiplication with one unvectorizable operand we expect to build from scalars but SLP discovery fatally fails the build of both since one stmt is commutated: _60 = _58 * _59; _63 = _59 * _62; _66 = _59 * _65; ... where _59 is the "bad" operand. The following patch makes the case work where the first stmt has a good operand by not fatally failing the SLP build for the operand but communicating upwards how to commutate. 2020-10-09 Richard Biener <rguent...@suse.de> PR tree-optimization/97334 * tree-vect-slp.c (vect_build_slp_tree_1): Do not fatally fail lanes other than zero when BB vectorizing. * gcc.dg/vect/bb-slp-pr65935.c: Amend.