https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100087
Tom Niget <niget.tom at gmail dot com> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |niget.tom at gmail dot com --- Comment #1 from Tom Niget <niget.tom at gmail dot com> --- Also happens for regular bool conversion: (on GCC 14.3.0 -03 -march=ARMv6 -mthumb) bool f(int x) { return (bool)x; } f: subs r3, r0, #1 sbcs r0, r0, r3 uxtb r0, r0 bx lr ARMv7-A Clang (-O3 -mthumb) gets it right: f: subs r1, r0, #1 sbcs r0, r1 bx lr