https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81664
--- Comment #2 from Daniel Fruzynski <bugzi...@poradnik-webmastera.com> --- So there is another problem here: for some reason both mentioned gcc versions accepts -mmovbe and -mno-movbe options. If movbe is not supported, gcc should complain that these options are unrecognized. I also checked generated assembly code and there are no movbe instruction there. However I noticed that gcc 4.8.5 on Redhat 7 generates different code when -mmovbe is used - it adds extra instruction marked below with ***. _Z11ntohl_movbel: .LFB6: .cfi_startproc movl %edi, %eax bswap %eax movl %eax, %eax *** ret .cfi_endproc