https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67295
--- Comment #1 from Alexandre Oliva <aoliva at gcc dot gnu.org> --- I get exactly the same code with r226900, before the copyrename patch: cmp r1, #0 rev16ne r0, r0 uxthne r0, r0 .L2: sxth r0, r0 b foos16 Did you use any other configuration flags or compiler options or assembler version or something to get you the better-optimized code?