blob: 05c3bbe9738e9157a7b13396cb9f038d8613456b [file] [log] [blame]
/* { dg-options "-fgimple" } */
/* PR tree-optimization/115143 */
/* This used to ICE.
minmax part of phiopt would transform,
would transform `a!=0?min(a, b) : 0` into `min(a,b)`
which was correct except b was defined by a phi in the inner
bb which was not handled. */
unsigned __GIMPLE (ssa,startwith("phiopt"))
foo (unsigned a, unsigned b)
{
unsigned j;
unsigned _23;
unsigned _12;
__BB(2):
if (a_6(D) != 0u)
goto __BB3;
else
goto __BB4;
__BB(3):
j_10 = __PHI (__BB2: b_11(D));
_23 = __MIN (a_6(D), j_10);
goto __BB4;
__BB(4):
_12 = __PHI (__BB3: _23, __BB2: 0u);
return _12;
}