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

Reply via email to