https://gcc.gnu.org/bugzilla/show_bug.cgi?id=84780

--- Comment #5 from Segher Boessenkool <segher at gcc dot gnu.org> ---
Insn 55 is a parallel, and that is split into two insns i1 and i2, both
numbered as 55.  The i1 will never become part of the insn stream.  It is
this insn that is deleted.

Later on insn 55 is combined into insn 100:

   55:
cc:CC_C=zero_extend(r165:DI)+zero_extend(x2:DI)!=zero_extend(r165:DI+x2:DI)
  100:
{cc:CC_C=zero_extend(r178:DI)+zero_extend(r198:DI)!=zero_extend(r178:DI+r198:DI);r200:DI=r178:DI+r198:DI;}
      REG_DEAD r198:DI
      REG_DEAD r178:DI

becomes

100:
{cc:CC_C=zero_extend(r178:DI)+zero_extend(r198:DI)!=zero_extend(r178:DI+r198:DI);r200:DI=r178:DI+r198:DI;}
      REG_DEAD r178:DI
      REG_DEAD r198:DI

and that seems fine, too?  Or does something in between use cc?  Ah yes, insn
71
does.  Somehow insn 100 has a LOG_LINK to 55 though (for cc).  This happens at
the 55 -> 70 combination.

Reply via email to