https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82853
Jakub Jelinek <jakub at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |ASSIGNED Assignee|unassigned at gcc dot gnu.org |jakub at gcc dot gnu.org --- Comment #25 from Jakub Jelinek <jakub at gcc dot gnu.org> --- Created attachment 44657 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=44657&action=edit gcc9-pr82853.patch Full untested patch. For x % C1 == C2 it handles all unsigned cases where C1 is odd, if C1 is even, just cases where C2 <= -1U % C1, if signed modulo, just x % C1 == 0 cases (where C1 is not INT_MIN).