http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57536
--- Comment #1 from H.J. Lu <hjl.tools at gmail dot com> --- Also -Os generates larger code: [hjl@gnu-6 gcc]$ gcc -S -Os -m32 x.i [hjl@gnu-6 gcc]$ cat x.s .file "x.i" .text .globl foo .type foo, @function foo: .LFB0: .cfi_startproc pushl %ebp .cfi_def_cfa_offset 8 .cfi_offset 5, -8 xorl %eax, %eax movl %esp, %ebp .cfi_def_cfa_register 5 orl $-1, %ecx pushl %edi .cfi_offset 7, -12 movl 8(%ebp), %edi repnz scasb popl %edi .cfi_restore 7 popl %ebp .cfi_restore 5 .cfi_def_cfa 4, 4 notl %ecx leal -1(%ecx), %eax ret