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

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

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Assignee|unassigned at gcc dot gnu.org      |rguenth at gcc dot 
gnu.org
             Status|NEW                         |ASSIGNED

--- Comment #4 from Richard Biener <rguenth at gcc dot gnu.org> ---
A reproducer needs to trigger masked NARROW case in
vect_build_gather_load_calls.
I wasn't able to build a reproducer sofar.  The following vectorizes with
a masked store & masked gather load, side-stepping alias issues:

unsigned long long * __attribute__((noipa))
maskgatherdisi (int n, unsigned int *indices, unsigned long long *data)
{
  unsigned long long *out
    = __builtin_malloc (sizeof (unsigned long long) * n);
  for (int i = 0; i < n; ++i)
    {
      unsigned int d = indices[i];
      if (d > 1)
        out[i] = data[d];
    }
  return out;
}

testing a fix.

Reply via email to