https://gcc.gnu.org/bugzilla/show_bug.cgi?id=77499

--- Comment #4 from Richard Biener <rguenth at gcc dot gnu.org> ---
Oh, and with -fno-code-hoisting I see

        movw    r6, #45345
.L5:
        smull   lr, r4, r5, r1
        sub     r4, r4, r1, asr #31
        add     r4, r4, r4, lsl #1
        cmp     r1, r4
        sub     r1, r1, r3
        ite     ne
        eorne   r0, r6, r0, lsr #1
        lsreq   r0, r0, #1
        cmp     r2, r1
        blt     .L5

while with code hoisting

        movw    r6, #45345
.L4:
        smull   r5, r4, r7, r1
        lsrs    r0, r0, #1
        sub     r4, r4, r1, asr #31
        eor     r5, r0, r6
        add     r4, r4, r4, lsl #1
        cmp     r1, r4
        sub     r1, r1, r3
        it      ne
        uxthne  r0, r5
        cmp     r2, r1
        blt     .L4

so we are talking about the uxthne insn (I don't know arm / thumb very well).

Reply via email to