http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58387
--- Comment #4 from Zhendong Su <su at cs dot ucdavis.edu> --- (In reply to Jakub Jelinek from comment #3) > Not even with r202421. > Content of main with that revision for x86_64 -Os is: > .cfi_startproc > pushq %rcx > .cfi_def_cfa_offset 16 > movl a(%rip), %esi > testl %esi, %esi > je .L4 > negl %esi > testl %esi, %esi > jg .L3 > jmp .L2 > .L4: > xorl %esi, %esi > .L2: > movl $.LC0, %edi > xorl %eax, %eax > call printf > .L3: > xorl %eax, %eax > popq %rdx > .cfi_def_cfa_offset 8 > ret Here is what I have for x86_64 -Os: .cfi_startproc pushq %rax .cfi_def_cfa_offset 16 xorl %esi, %esi movl $.LC0, %edi xorl %eax, %eax call printf xorl %eax, %eax popq %rdx .cfi_def_cfa_offset 8 ret .cfi_endproc Below is what I have for x86_64 -O1: .cfi_startproc subq $8, %rsp .cfi_def_cfa_offset 16 movl a(%rip), %eax testl %eax, %eax je .L2 negl %eax testl %eax, %eax jg .L3 .L2: movl $0, %esi movl $.LC0, %edi movl $0, %eax call printf .L3: movl $0, %eax addq $8, %rsp .cfi_def_cfa_offset 8 ret .cfi_endproc