https://gcc.gnu.org/bugzilla/show_bug.cgi?id=116215
Richard Biener <rguenth at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Ever confirmed|0 |1 Status|UNCONFIRMED |NEW Last reconfirmed| |2025-01-24 --- Comment #5 from Richard Biener <rguenth at gcc dot gnu.org> --- Confirmed. It feels a unroll issue, expand_vec_perm_punpckldq_pshuf which reads unsigned nelt = (mode_to_nunits (widen_vmode).coeffs[0]); dperm.nelt = nelt; dperm.one_operand_p = true; dperm.testing_p = false; for (unsigned i = 0; i != nelt / 2; i++) { dperm.perm[i] = d->perm[i]; dperm.perm[i + nelt / 2] = d->perm[i]; } so we likely have an upper bound on niter from the array-refs and can completely peel this, exposing constant indices guarded by conditions we cannot optimize because nelts is not statically known. So yet another of those cases.