https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104728

Richard Biener <rguenth at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |ASSIGNED
     Ever confirmed|0                           |1
   Last reconfirmed|                            |2022-03-01
           Assignee|unassigned at gcc dot gnu.org      |rguenth at gcc dot 
gnu.org

--- Comment #1 from Richard Biener <rguenth at gcc dot gnu.org> ---
Hmm, I've done

void b (int *p)
{
  p = (int *)__builtin_assume_aligned(p, __BIGGEST_ALIGNMENT__);
  int *q = p + 255;
  for(; p < q; ++p, --q)
    {
      int t = *p;
      *p = *q;
      *q = t;
    }
}

and on x86_64 the accesses are all vectorized as aligned.  So what's not
supported is aligned load + permuting elements as { 3, 2, 1, 0 } (reversing
them).  I can't seem to find a suitable target for dg-require-effective-target
here.  There's the kitchen-sink vect_perm that sparc doesn't have so I
could use that I guess.

Reply via email to