blob: 764563662bb030069659404fe6bf7ebe136eb72a [file] [log] [blame]
/* { dg-do run } */
/* { dg-options "-O2 -fdump-tree-sccp-details" } */
typedef unsigned char u8;
typedef __UINT32_TYPE__ u32;
static u32
b (u8 d, u32 e, u32 g)
{
do
{
e += g + 1;
d--;
}
while (d >= (u8) e);
return e;
}
int
main (void)
{
u32 x = b (1, -0x378704, ~0xba64fc);
if (x != 0xd93190d0)
__builtin_abort ();
return 0;
}
/* Niter analyzer should be able to compute niters for the loop even though
IV:d wraps. */
/* { dg-final { scan-tree-dump "Replacing uses of: .* with: 3643904208" "sccp" { xfail *-*-* } } } */