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.

Reply via email to