------- Comment #14 from victork at gcc dot gnu dot org 2008-03-24 19:14 ------- > I tend to agree with Andrew here. If you go through a packed union the > failure > vanishes: > So, IMHO this bug is invalid.
The fact that failure vanishes is not a good argument here. The failure vanishes simply because vectorized failed to vectorize "dest->u" statement. Here is an modified example struct U { unsigned u; }; int main() { struct U buf[256]; struct U *dest; int i; dest = buf; for (i = 0; i < 32; i++) { dest->u = 0; dest += 1; } return buf[2].u; } And it is not vectorized without any good reason. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=35653