https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61559
--- Comment #2 from Uroš Bizjak <ubizjak at gmail dot com> --- On a related note, -march=i386 generates long sequences of rol insns, e.g.: foo5: movl 4(%esp), %eax rolw $8, %ax roll $16, %eax rolw $8, %ax movl 8(%esp), %edx rolw $8, %dx roll $16, %edx rolw $8, %dx andl %edx, %eax rolw $8, %ax roll $16, %eax rolw $8, %ax ret Please note that this arch doesn't have bswap insn, but this insn isn't generated for optimized code anyway.