This bug bears some striking similarities to the previous one... Sample code: std r0 # these three instructions get deleted movl 4(r12),r2 # here too, but shouldn't ldd r0 # here too test jump use of r2 label: instruction that kills r0 If the movl is reordered above the std, it won't be deleted; if reordered below the ldd, it's still zapped. If the test is 'tstl r12', it can get deleted too... It doesn't seem to matter very much what the jump or use of r2 are, provided the jump is a relational one, of course.