https://gcc.gnu.org/bugzilla/show_bug.cgi?id=116514
Richard Biener <rguenth at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |ASSIGNED Ever confirmed|0 |1 Assignee|unassigned at gcc dot gnu.org |rguenth at gcc dot gnu.org Last reconfirmed| |2024-08-28 --- Comment #1 from Richard Biener <rguenth at gcc dot gnu.org> --- CCP fails to handle Visiting statement: delta_7 = _3 /[ex] 4; which is likely CONSTANT Lattice value changed to VARYING. Adding SSA edges to worklist. so we get Visiting statement: x_8 = delta_7 % 8; which is likely CONSTANT Lattice value changed to VARYING. Adding SSA edges to worklist. despite Visiting statement: _3 = _1 - _2; which is likely CONSTANT Lattice value changed to CONSTANT 0x0 (0xffff...<1000s?!>...fffe0). bit_value_binop supports TRUNC_DIV_EXPR but not EXACT_DIV_EXPR. That's trivial to add.