------- Comment #6 from steven at gcc dot gnu dot org 2008-02-03 11:39 ------- According to comment #5, the loop2 pass creates the RTL that exposes the problem in combine. I don't believe that this is really true. There is no loop in the test case, so the loop2 pass should be a NOP. At least, on the trunk it should be.
Unfortunately it is not clear what compiler Dave used when he identified loop2 as the problem-maker. GCC 4.2 and GCC 4.3 are very different here. What might be happening, is that going into and out of cfglayout mode in loop2 in GCC 4.2 makes it look like loop2 messes up things. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34627