http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53176
--- Comment #15 from Uros Bizjak <ubizjak at gmail dot com> 2012-05-03 16:19:04 UTC --- 32bit x86 regressed (-O2 -mmovbe) with following testcase: void foo (long long i) { x = __builtin_bswap64 (i); } from: foo: movbe 4(%esp), %eax movbe 8(%esp), %edx movl %eax, x+4 movl %edx, x ret to: foo: pushl %ebx movl 8(%esp), %eax movl 12(%esp), %edx movl %eax, %ebx movl %edx, %ecx bswap %ebx bswap %ecx movl %ebx, x+4 movl %ecx, x popl %ebx