https://gcc.gnu.org/bugzilla/show_bug.cgi?id=116906
Richard Biener <rguenth at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |ASSIGNED Assignee|unassigned at gcc dot gnu.org |rguenth at gcc dot gnu.org --- Comment #3 from Richard Biener <rguenth at gcc dot gnu.org> --- Found partial redundancy for expression {trunc_mod_expr,1,p_9(D)} (0008) Inserted _33 = 1 % p_9(D); in predecessor 13 (0008) Inserting expression in block 5 for code hoisting: {trunc_mod_expr,1,p_9(D)} (0008) Inserted _37 = 1 % p_9(D); in predecessor 5 (0008) Inserting expression in block 3 for code hoisting: {trunc_mod_expr,1,p_9(D)} (0008) Inserted _39 = 1 % p_9(D); in predecessor 3 (0008) with code hoisting disabled the issue is gone but the PRE insertion exposes the issue, making 1 % p_9(D) computed on all paths and making the hositing valid.