https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83304
--- Comment #5 from ktkachov at gcc dot gnu.org --- (In reply to Segher Boessenkool from comment #4) > With r255384 combine manages to do many more combinations. Without it, it > can get rid of most of the loop body (which should have been optimised > away in gimple already really). > > I don't see how it would abort, but I find that "it" stuff really hard > to read, so I might be missing something. Sorry, some commentary on the code from me would have been in order... The "it" stuff can be ignored, it's just a way of prefixing a conditional instruction. So it eq moveq r1, #0 is really just a moveq r1, #0 where moveq is a conditional 'mov' with 'eq' as the condition code. One of the conditional jumps to L22 would have to have been taken in order to abort. I haven't looked at the compiler dumps yet to figure out what's going on...