https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110089
Alexander Monakov <amonakov at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |amonakov at gcc dot gnu.org --- Comment #4 from Alexander Monakov <amonakov at gcc dot gnu.org> --- If 'min' is needed anyway you can use it in subtraction: void bar (); void foo (unsigned int n, unsigned s) { do { np = MIN (n, s); bar (np); } while (n -= np); } but getting the sub-jcc trick to work should yield more efficient code.