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

            Bug ID: 100637
           Summary: [i386] Vectorize 4-byte vectors
           Product: gcc
           Version: 12.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: target
          Assignee: unassigned at gcc dot gnu.org
          Reporter: ubizjak at gmail dot com
  Target Milestone: ---

Following testcases involving 4 byte vectors, e.g.:

typedef char __v4qi __attribute__ ((__vector_size__ (4)));

__v4qi foo (__v4qi a, __v4qi b, __v4qi c)
{
  return (a & ~b) + c;
}

char rb[4], sb[4], tb[4];

void bar_b (void)
{
  int i;

  for (i = 0; i < 4; i++)
    rb[i] = sb[i] + tb[i];
}

short rw[2], sw[2], tw[2];

void bar_w (void)
{
  int i;

  for (i = 0; i < 2; i++)
    rw[i] = sw[i] + tw[i];
}

should vectorize on SSE2 targets using partial vectors.

Reply via email to