https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63986
Richard Biener <rguenth at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |ASSIGNED Last reconfirmed| |2014-11-20 Assignee|unassigned at gcc dot gnu.org |rguenth at gcc dot gnu.org Target Milestone|--- |5.0 Ever confirmed|0 |1 --- Comment #1 from Richard Biener <rguenth at gcc dot gnu.org> --- I think you were mostly lucky -- 4.9 expands from <bb 2>: _3 = a_2(D) == 0; _13 = ~_3; _7 = (int) _13; MEM[(int *)d_5(D) + 8B] = _7; if (_3 != 0) which it reaches in a very weird way through several optimization passes while trunk now has <bb 2>: _7 = a_2(D) != 0; _8 = (int) _7; MEM[(int *)d_5(D) + 8B] = _8; if (a_2(D) == 0) which has un-CSEd the a_2 == 0 comparison due to a bug I introduced.