https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80817
--- Comment #3 from Joost VandeVondele <Joost.VandeVondele at mat dot ethz.ch> --- If I compile with -m32 gcc -std=c++11 -m32 -S -O3 test.cpp I get .cfi_startproc subl $12, %esp .cfi_def_cfa_offset 16 movl 16(%esp), %ecx fildq (%ecx) fistpq (%esp) movl (%esp), %eax movl 4(%esp), %edx addl $1, %eax adcl $0, %edx movl %eax, (%esp) movl %edx, 4(%esp) fildq (%esp) fistpq (%ecx) addl $12, %esp .cfi_def_cfa_offset 4 ret .cfi_endproc Is the above expected ? This causes a measurable slowdown in the piece of code I'm looking at.