https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83541
Richard Biener <rguenth at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Keywords| |missed-optimization Status|UNCONFIRMED |NEW Last reconfirmed| |2018-01-02 Version|tree-ssa |8.0 Ever confirmed|0 |1 --- Comment #3 from Richard Biener <rguenth at gcc dot gnu.org> --- I've deliberately avoided doing this ... (turning SSA propagator UNDEFINED into a random value rather than keeping it effectively VARYING during propagation/simplification stage). CCP is the only pass that even tries to handle arithmetic with UNDEF somehow. The case in question could be teached to both EVRP and DOM (you need those conditional equivalences). Note that our constant folding machinery simply computes stuff in twos complement as it lacks a way to say "undefined". How useful would this be in practice? Apart from breaking some invalid code in unexpected ways?