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 *-*-* } } } */