https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82618
--- Comment #2 from Uroš Bizjak <ubizjak at gmail dot com> --- Maybe a peephole2 pattern for sub<mode>_3 with: "find_regno_note (peep2_next_insn (0), REG_UNUSED, operand[0])" constraint that converts to equivalent compare would do the trick? Hopefully, later passes (cprop_hardreg) would eliminate the move.