blob: 6ac8d55600d21ac359d13524999b38551dccd280 [file] [log] [blame]
/* { dg-do compile } */
/* { dg-options "-O2 -fno-tree-forwprop -fdump-tree-evrp-details" } */
void aa (void);
void aos (void);
void aob (void);
void
blah (int code1, int code2)
{
int i;
int n_sets;
n_sets = (int) (code1 == 32);
if (code2 == 64) goto L2; else goto L3;
L2:
aa ();
L3:
if (n_sets > 1) goto L4; else goto L10;
L4:
aos ();
i = 0;
goto L24;
L10:
if (n_sets > 0) goto L25; else goto L8;
L25:
i = 0;
L24:
aob ();
i = i + 1;
if (i < n_sets) goto L24; else goto L8;
L8:
return;
}
/* The n_sets > 0 test can be simplified into n_sets == 1 since the
only way to reach the test is when n_sets <= 1, and the only value
which satisfies both conditions is n_sets == 1. */
/* { dg-final { scan-tree-dump-times "Simplified relational" 1 "evrp" } } */