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).