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