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).