]> git.ipfire.org Git - thirdparty/gcc.git/blob - gcc/testsuite/gcc.dg/tree-ssa/loop-niter-2.c
Fix profile update in tree_transform_and_unroll_loop
[thirdparty/gcc.git] / gcc / testsuite / gcc.dg / tree-ssa / loop-niter-2.c
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
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
21 main (void)
22 {
23 u32 x = b (1, -0x378704, ~0xba64fc);
24 if (x != 0xd93190d0)
25 __builtin_abort ();
26 return 0;
27 }
28
29 /* Niter analyzer should be able to compute niters for the loop even though
30 IV:d wraps. */
31 /* { dg-final { scan-tree-dump "Replacing uses of: .* with: 3643904208" "sccp" { xfail *-*-* } } } */