1  /* { dg-do run } */
       2  /* { dg-options "-O1 -ftree-vrp" } */
       3  
       4  int a, c, d;
       5  int
       6  main()
       7  {
       8    long e = 1;
       9    int f = a = 1;
      10  L1:
      11    if (a)
      12      a = 2;
      13    int h = e = ~e;
      14    c = -1;
      15    if (e >= a)
      16      goto L2;
      17    if (-1 > a)
      18      goto L1;
      19    if (a)
      20      f = -1;
      21  L2:
      22    d = (-f + d) & h;
      23    if (d)
      24      __builtin_abort();
      25    return 0;
      26  }