https://gcc.gnu.org/bugzilla/show_bug.cgi?id=112600
--- Comment #1 from Jonathan Wakely <redi at gcc dot gnu.org> --- Similar results for aarch64 with GCC: add_sat(unsigned int, unsigned int): adds w0, w0, w1 bcs .L7 ret .L7: mov w0, -1 ret add_sat2(unsigned int, unsigned int): adds w0, w0, w1 csinv w0, w0, wzr, cc ret