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

Reply via email to