[Bug tree-optimization/67683] Missed vectorization: shifts of an induction variable
rguenth at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Wed Sep 23 08:16:00 GMT 2015
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67683
Richard Biener <rguenth at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|UNCONFIRMED |NEW
Last reconfirmed| |2015-09-23
Ever confirmed|0 |1
--- Comment #1 from Richard Biener <rguenth at gcc dot gnu.org> ---
The issue is the unsupported induction (the PHI) of val
<bb 5>:
# val_16 = PHI <52719(4), val_11(7)>
# i_17 = PHI <0(4), i_12(7)>
_6 = (sizetype) i_17;
_8 = data_7(D) + _6;
_9 = (unsigned char) val_16;
*_8 = _9;
val_11 = val_16 >> 1;
i_12 = i_17 + 1;
if (max_5(D) > i_12)
SCEV already fails to analyze the evolution of val_16 so it doesn't appear
as "induction" to the vectorizer. Reductions with shifts are not handled
either (but reduction uses inside the loop are not supported by the vectorizer
anyway).
More information about the Gcc-bugs
mailing list