------- Comment #1 from uros at kss-loka dot si 2006-07-06 08:23 ------- This problem appears to be fixed in gcc version 4.2.0 20060705 (experimental). The generated asm for the loop is now:
-O2 -march=pentium4 -fno-tree-ch: jmp .L2 .L3: movl %esi, -4(%edx) addl $1, %eax .L2: addl $4, %edx cmpl %ecx, %eax jle .L3 -O2 -march=i686 -fno-tree-ch: jmp .L2 .p2align 4,,7 .L3: movl %ebx, -4(%ecx) addl $1, %edx .L2: addl $4, %ecx cmpl %eax, %edx jle .L3 Closing the bug as FIXED. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=26949