[Bug middle-end/87203] New: Optimize x % constant ==/!= 0
jakub at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Mon Sep 3 11:06:00 GMT 2018
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87203
Bug ID: 87203
Summary: Optimize x % constant ==/!= 0
Product: gcc
Version: 9.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: middle-end
Assignee: unassigned at gcc dot gnu.org
Reporter: jakub at gcc dot gnu.org
Target Milestone: ---
As mentioned in
http://duriansoftware.com/joe/Optimizing-is-multiple-checks-with-modular-arithmetic.html
, we could optimize unsigned
x % const == 0
or
x % const != 0
into a single (non-highpart) multiplication plus comparison (at least for odd
const, for even const we can rotate before comparison if target has cheap
rotates, or could test low bits and compare).
Obviously, for power of two const we already emit the best code.
More information about the Gcc-bugs
mailing list