https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94595
--- Comment #1 from Christophe Lyon <clyon at gcc dot gnu.org> --- For thumb2-cond-cmp-4.c (if ( (i >= '+') ? (j <= '-') : 1) ) we generate: * cortex-m0: f: cmp r0, #42 ble .L3 movs r3, #45 movs r2, #0 lsrs r0, r1, #31 cmp r3, r1 adcs r0, r0, r2 .L1: bx lr .L3: movs r0, #1 b .L1 * cortex-m3: f: cmp r0, #42 ble .L3 cmp r1, #45 ite gt movgt r0, #0 movle r0, #1 bx lr .L3: movs r0, #1 bx lr * cortex-m7: f: cmp r1, #45 it gt cmpgt r0, #42 ite le movle r0, #1 movgt r0, #0 bx lr * cortex-a9: f: cmp r1, #45 it gt cmpgt r0, #42 ite le movle r0, #1 movgt r0, #0 bx lr