https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67167
Richard Biener <rguenth at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Keywords| |missed-optimization Status|UNCONFIRMED |NEW Last reconfirmed| |2015-08-11 CC| |kyukhin at gcc dot gnu.org Depends on| |66502 Ever confirmed|0 |1 --- Comment #1 from Richard Biener <rguenth at gcc dot gnu.org> --- t.c:28:13: note: === get_loop_niters === t.c:28:13: note: not vectorized: number of iterations cannot be computed. t.c:28:13: note: bad loop form. t.c:22:6: note: vectorized 0 loops in function. Which is probably because the loop has two IVs and a combined exit test: <bb 5>: # _32 = PHI <0(4), _21(6)> # _33 = PHI <0(4), _22(6)> ... _21 = _32 + 1; _22 = _33 + 1; _25 = size_9(D) > _22; _23 = size_9(D) > _21; _24 = _23 & _25; if (_24 != 0) goto <bb 6>; else goto <bb 7>; related to PR66502 (proposed patch helps and makes the testcase vectorized, but as noted in the PR regresses another case). Not sure if this can be reasonably addressed in Cilk+ lowering as well? (generate a single IV) Referenced Bugs: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66502 [Bug 66502] SCCVN can't handle PHIs optimistically optimally