http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56365
Richard Biener <rguenth at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |NEW Last reconfirmed| |2013-02-18 Ever Confirmed|0 |1 --- Comment #1 from Richard Biener <rguenth at gcc dot gnu.org> 2013-02-18 10:58:13 UTC --- I see, at -O2, on x86_64 in 070t.phiopt: test_04 (int a, int b) { int D.1744; int D.1741; int _3; int _4; <bb 2>: _3 = MIN_EXPR <a_1(D), 127>; _4 = MAX_EXPR <_3, -128>; return _4; } for the other cases you run into the issue that the tree-level phiopt can be confused by phi-merging: test_05 (int a) { <bb 2>: if (a_2(D) > 126) goto <bb 5>; else goto <bb 3>; <bb 3>: if (a_2(D) < -127) goto <bb 5>; else goto <bb 4>; <bb 4>: <bb 5>: # a_1 = PHI <127(2), a_2(D)(4), -128(3)> return a_1;