https://gcc.gnu.org/bugzilla/show_bug.cgi?id=92819
--- Comment #6 from rguenther at suse dot de <rguenther at suse dot de> --- On Thu, 5 Dec 2019, rsandifo at gcc dot gnu.org wrote: > https://gcc.gnu.org/bugzilla/show_bug.cgi?id=92819 > > --- Comment #5 from rsandifo at gcc dot gnu.org <rsandifo at gcc dot gnu.org> > --- > Sorry for the dribble of messages, but how about just > changing the "else" in: > > if (sel.series_p (1, 1, nelts + 1, 1)) > { > /* After canonicalizing the first elt to come from the > first vector we only can insert the first elt from > the first vector. */ > at = 0; > if ((ins = fold_read_from_vector (cop0, sel[0]))) > op0 = op1; > } > else > > to "if (!ins)"? Works for me, too. I wonder how to make it clear that all this can only happen for two-element vectors though while the later fix applies to all inserts-at-last-lane. Maybe it's all clearer to single that out very explicitely. I'll at least write a comment...