[Bug middle-end/64909] [4.8/5 regression] Missed vectorization
rguenth at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Mon Feb 9 14:50:00 GMT 2015
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64909
--- Comment #6 from Richard Biener <rguenth at gcc dot gnu.org> ---
(In reply to Jakub Jelinek from comment #5)
> E.g.
> unsigned short a[32];
> unsigned int b[32];
>
> void
> foo ()
> {
> b[0] = a[0];
> b[1] = a[1];
> b[2] = a[2];
> b[3] = a[3];
> }
>
> will do, or b[0] = a[0] + 5; b[1] = a[1] + 5; b[2] = a[2] + 5; b[3] = a[3] +
> 5;
> and similar.
So it first of all boils down to the vectorizer not handling vectors of
different
size (V4HI and V4SI) at the same time. The same thing happens when you
vectorize
double<->int conversion (for which there is already a bug somewhere). For loop
vectorization this usually causes unnecessary unrolling (though that may be
profitable in the end).
More information about the Gcc-bugs
mailing list