1 /* { dg-do run } */
2 /* { dg-options "-O2 -fdump-tree-sccp-details" } */
3 
4 typedef unsigned char u8;
5 typedef __UINT32_TYPE__ u32;
6 
7 static u32
b(u8 d,u32 e,u32 g)8 b (u8 d, u32 e, u32 g)
9 {
10   do
11     {
12       e += g + 1;
13       d--;
14     }
15   while (d >= (u8) e);
16 
17   return e;
18 }
19 
20 int
main(void)21 main (void)
22 {
23   u32 x = b (200, -0x378704, ~0xba64fc);
24   if (x != 0xe1ee4ca0)
25     __builtin_abort ();
26 
27   return 0;
28 }
29 
30 /* Niter analyzer should be able to compute niters for the loop.  */
31 /* { dg-final { scan-tree-dump "Replacing uses of: .* with: 3790490784" "sccp" { xfail *-*-* } } } */
32