------- Comment #10 from bonzini at gcc dot gnu dot org 2005-10-18 09:55 ------- There is also a (minor) register allocation problem in both outputs:
8048392: 0f be 01 movsbl (%ecx),%eax ! | 8048395: 0f be 13 movsbl (%ebx),%edx ! | 8048398: 29 c2 sub %eax,%edx ! | 804839a: 89 d0 mov %edx,%eax ! | 804839c: 74 e2 je 8048380 ! --+ This could obviously become 8048392: 0f be 11 movsbl (%ecx),%edx 8048395: 0f be 03 movsbl (%ebx),%eax 8048398: 2b c2 sub %edx,%eax 804839c: 74 e2 je 8048380 -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=19672