https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82858
--- Comment #5 from Uroš Bizjak <ubizjak at gmail dot com> --- Actually, -m32 -march=i386 -mtune=generic generates expected code: movl 8(%esp), %eax addl 4(%esp), %eax sbbl %edx, %edx orl %edx, %eax ret -march=i386 does not have cmove.