/* { dg-do compile } */ /* { dg-options "-O3 -fno-tree-ccp -fno-tree-dce" } */ /* PHI-OPT via match_simplify_replacement used to transform: if (_25 != 0) goto ; [25.00%] else goto ; [75.00%] [local count: 11649864]: # iftmp.5_13 = PHI <2(7)> k_22 = k_11 | iftmp.5_13; [local count: 105655256]: # g_9 = PHI <1(2), 0(8), g_8(7)> # k_12 = PHI into: _15 = (int) _25; _28 = -_15; _4 = _13 & _28; _6 = _4 | k_11; [local count: 105655256]: # g_9 = PHI <1(2), g_8(7)> # k_12 = PHI Removing the phi-node/assignment of _13. */ int a, c, d, e, f; char b; int main() { int g = 1; char h[1] = {0}; while (a) { if (f) { b = 0; if (d) continue; } if (a < 1) { g = 0; goto L; } } while (c) { char *j = h; int k; L: if (e && !g) k |= 2 | (*j < 0); } return 0; }