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.