http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50136
Bug #: 50136 Summary: Loop inc/dec optimization. Classification: Unclassified Product: gcc Version: 4.6.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c AssignedTo: unassig...@gcc.gnu.org ReportedBy: bratsi...@gmail.com Maybe shoud use inc and dec, than sub $1, %ebx? GCC translate this C code: unsigned int i; scanf("%u", &i); for(unsigned int qwe=i; qwe>0; qwe--) printf("fg"); Into this Assembler code: leaq 12(%rsp), %rsi xorl %eax, %eax movl $.LC0, %edi call __isoc99_scanf movl 12(%rsp), %ebx testl %ebx, %ebx je .L2 .p2align 4,,10 .p2align 3 .L4: xorl %eax, %eax movl $.LC1, %edi call printf subl $1, %ebx ;This not good, dec %ebx is better jne .L4