blob: f635fcafe4f792885979fc1a157d24e62ed64be0 [file] [log] [blame]
/* { dg-do compile } */
/* { dg-options "-O2 -fno-ipa-icf -fdump-tree-vrp1" } */
extern void arf (unsigned x, unsigned y);
extern void baz (unsigned x, unsigned y);
unsigned
f1 (unsigned a, unsigned b)
{
b = a + 1;
if (b < a)
{
arf (a, b);
return 42;
}
baz (a, b);
return b;
}
unsigned
f1r (unsigned a, unsigned b)
{
b = a + 1;
if (a < b)
{
baz (a, b);
return 42;
}
arf (a, b);
return b;
}
unsigned
f1n (unsigned a, unsigned b)
{
b = a + 1;
if (!(b < a))
{
baz (a, b);
return 42;
}
arf (a, b);
return b;
}
unsigned
f1nr (unsigned a, unsigned b)
{
b = a + 1;
if (!(a < b))
{
arf (a, b);
return 42;
}
baz (a, b);
return b;
}
unsigned
f1o (unsigned a, unsigned b)
{
b = a + 1;
if (a < b)
{
baz (a, b);
return 42;
}
arf (a, b);
return b;
}
unsigned
f1ro (unsigned a, unsigned b)
{
b = a + 1;
if (b < a)
{
arf (a, b);
return 42;
}
baz (a, b);
return b;
}
unsigned
f1no (unsigned a, unsigned b)
{
b = a + 1;
if (!(a < b))
{
arf (a, b);
return 42;
}
baz (a, b);
return b;
}
unsigned
f1nro (unsigned a, unsigned b)
{
b = a + 1;
if (!(b < a))
{
baz (a, b);
return 42;
}
arf (a, b);
return b;
}
unsigned
f2 (unsigned a, unsigned b)
{
b = a + 1;
if (b <= a)
{
arf (a, b);
return 42;
}
baz (a, b);
return b;
}
unsigned
f2r (unsigned a, unsigned b)
{
b = a + 1;
if (a <= b)
{
baz (a, b);
return 42;
}
arf (a, b);
return b;
}
unsigned
f2n (unsigned a, unsigned b)
{
b = a + 1;
if (!(b <= a))
{
baz (a, b);
return 42;
}
arf (a, b);
return b;
}
unsigned
f2nr (unsigned a, unsigned b)
{
b = a + 1;
if (!(a <= b))
{
arf (a, b);
return 42;
}
baz (a, b);
return b;
}
unsigned
f2o (unsigned a, unsigned b)
{
b = a + 1;
if (a <= b)
{
baz (a, b);
return 42;
}
arf (a, b);
return b;
}
unsigned
f2ro (unsigned a, unsigned b)
{
b = a + 1;
if (b <= a)
{
arf (a, b);
return 42;
}
baz (a, b);
return b;
}
unsigned
f2no (unsigned a, unsigned b)
{
b = a + 1;
if (!(a <= b))
{
arf (a, b);
return 42;
}
baz (a, b);
return b;
}
unsigned
f2nro (unsigned a, unsigned b)
{
b = a + 1;
if (!(b <= a))
{
baz (a, b);
return 42;
}
arf (a, b);
return b;
}
unsigned
f3 (unsigned a, unsigned b)
{
b = a - 1;
if (b < a)
{
baz (a, b);
return 42;
}
arf (a, b);
return b;
}
unsigned
f3r (unsigned a, unsigned b)
{
b = a - 1;
if (a < b)
{
arf (a, b);
return 42;
}
baz (a, b);
return b;
}
unsigned
f3n (unsigned a, unsigned b)
{
b = a - 1;
if (!(b < a))
{
arf (a, b);
return 42;
}
baz (a, b);
return b;
}
unsigned
f3nr (unsigned a, unsigned b)
{
b = a - 1;
if (!(a < b))
{
baz (a, b);
return 42;
}
arf (a, b);
return b;
}
unsigned
f3o (unsigned a, unsigned b)
{
b = a - 1;
if (a < b)
{
arf (a, b);
return 42;
}
baz (a, b);
return b;
}
unsigned
f3ro (unsigned a, unsigned b)
{
b = a - 1;
if (b < a)
{
baz (a, b);
return 42;
}
arf (a, b);
return b;
}
unsigned
f3no (unsigned a, unsigned b)
{
b = a - 1;
if (!(a < b))
{
baz (a, b);
return 42;
}
arf (a, b);
return b;
}
unsigned
f3nro (unsigned a, unsigned b)
{
b = a - 1;
if (!(b < a))
{
arf (a, b);
return 42;
}
baz (a, b);
return b;
}
unsigned
f4 (unsigned a, unsigned b)
{
b = a - 1;
if (b <= a)
{
baz (a, b);
return 42;
}
arf (a, b);
return b;
}
unsigned
f4r (unsigned a, unsigned b)
{
b = a - 1;
if (a <= b)
{
arf (a, b);
return 42;
}
baz (a, b);
return b;
}
unsigned
f4n (unsigned a, unsigned b)
{
b = a - 1;
if (!(b <= a))
{
arf (a, b);
return 42;
}
baz (a, b);
return b;
}
unsigned
f4nr (unsigned a, unsigned b)
{
b = a - 1;
if (!(a <= b))
{
baz (a, b);
return 42;
}
arf (a, b);
return b;
}
unsigned
f4o (unsigned a, unsigned b)
{
b = a - 1;
if (a <= b)
{
arf (a, b);
return 42;
}
baz (a, b);
return b;
}
unsigned
f4ro (unsigned a, unsigned b)
{
b = a - 1;
if (b <= a)
{
baz (a, b);
return 42;
}
arf (a, b);
return b;
}
unsigned
f4no (unsigned a, unsigned b)
{
b = a - 1;
if (!(a <= b))
{
baz (a, b);
return 42;
}
arf (a, b);
return b;
}
unsigned
f4nro (unsigned a, unsigned b)
{
b = a - 1;
if (!(b <= a))
{
arf (a, b);
return 42;
}
baz (a, b);
return b;
}
/* All calls to baz should still reference a & b as arguments. */
/* { dg-final { scan-tree-dump-times "baz \\(a_\[0-9\]+\\(D\\), b_\[0-9\]+\\)" 32 "vrp1"} } */
/* All calls to arf should have constant arguments. */
/* { dg-final { scan-tree-dump-times "arf \\(\[0-9\]+, \[0-9\]+\\)" 32 "vrp1"} } */