------- Comment #2 from rguenth at gcc dot gnu dot org  2006-07-15 11:40 -------
This is going wrong in RTL land.  Tree optimization looks ok - we're merging
the
two IVs and using a wrapping unsigned IV going from 0xffffff81 to 127:

<bb 0>:
  ivtmp.33D.1833 = 0ffffff81;
  jD.1769 = 0;

<L0>:;
  if (ivtmp.33D.1833 <= 127) goto <L1>; else goto <L2>;

<L1>:;
  D.1775 = (intD.0) ivtmp.33D.1833;
  D.1776 = sD.1765[D.1775][0];
  printf (&"%d "[0], (intD.0) D.1776);
  jD.1769 = jD.1769 + 1;

<L2>:;
  ivtmp.33D.1833 = ivtmp.33D.1833 + 1;
  if (ivtmp.33D.1833 != 128) goto <L0>; else goto <L4>;

<L4>:;
  printf (&"\nj = %d\n"[0], jD.1769);
  return 0;

of course, it's the particular choice of IVs that triggers the bug later on.


-- 

rguenth at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |rguenth at gcc dot gnu dot
                   |                            |org
          Component|tree-optimization           |rtl-optimization


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28386

Reply via email to