https://gcc.gnu.org/bugzilla/show_bug.cgi?id=111294
Andrew Pinski <pinskia at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Last reconfirmed| |2023-09-05 Status|UNCONFIRMED |NEW Ever confirmed|0 |1 --- Comment #3 from Andrew Pinski <pinskia at gcc dot gnu.org> --- Confirmed.(In reply to Andrew Pinski from comment #2) > > But _32 will be 0, _4 will be 0, j_22 will be 0, _33 will be 0. > But I think jump threading does not recognize j_22 will be 0 on that edge > and considers it a copy ... I think. after: Checking profitability of path (backwards): bb:7 (4 insns) bb:5 Control statement insns: 2 Overall: 2 insns before: Checking profitability of path (backwards): bb:7 (3 insns) bb:5 Control statement insns: 2 Overall: 1 insns Actually I think it is counting an already dead statement. The statement: _32 = (charD.10) _31; is dead but is being counted.