------- Additional Comments From pinskia at gcc dot gnu dot org  2005-01-30 
05:25 -------
Confirmed (sorry about that I was thinking of something different at the time).
Here is a better example for normal targets (PPC and x86 too):
extern void foo6(int);
void testloop6 (void)
{
  int i;
  i = 100;
  do {
      foo6 ( i);
    i-=10;
  } while (i != 0);
}

The tree dump for the loop on x86:
<L0>:;
  foo6 (i);
  D.1592 = (unsigned int) i + 0fffffff6;
  i = (int) D.1592;
  if (D.1592 != 0) goto <L0>; else goto <L1>;

Note this is not IV-OPTS messing up but DOM changing the if statement.

-- 
           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |NEW
     Ever Confirmed|                            |1
 GCC target triplet|avr                         |
   Last reconfirmed|0000-00-00 00:00:00         |2005-01-30 05:25:46
               date|                            |
            Summary|Poor optimisation of loop   |[4.0 Regression] Poor
                   |test                        |optimisation of loop test,
                   |                            |DOM causing unsigned to int
                   |                            |and missing combine compares
   Target Milestone|---                         |4.0.0


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

Reply via email to