[Bug fortran/52865] GCC can't vectorize fortran loop but able to vectorize similar c-loop
rguenth at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Wed Jan 16 10:04:00 GMT 2013
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52865
Richard Biener <rguenth at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|UNCONFIRMED |NEW
Last reconfirmed| |2013-01-16
Ever Confirmed|0 |1
--- Comment #8 from Richard Biener <rguenth at gcc dot gnu.org> 2013-01-16 10:04:27 UTC ---
In another bug I stated that
while (1)
{
...
if (countm1.0 == 0) goto L.2;
countm1.0 = countm1.0 + 4294967295;
}
L.2:;
is bad for the vectorizer (the non-empty latch block). You instead
want GFortran to emit
while (1)
{
...
tem = countm1.0
countm1.0 = countm1.0 + 4294967295;
if (tem == 0) goto L.2;
}
L.2:;
where hopefully the addition does not overflow ...
That said, somewhat lessening the restriction on empty latch blocks is
certainly possible (IV increments should be fine), but it might be not
as trivial as it looks.
More information about the Gcc-bugs
mailing list