(root)/
gcc-13.2.0/
gcc/
testsuite/
gcc.dg/
torture/
pr23821.c
       1  /* { dg-do compile } */
       2  /* { dg-skip-if "" { *-*-* } { "-O0" "-fno-fat-lto-objects" } { "" } } */
       3  /* At -O1 DOM threads a jump in a non-optimal way which leads to
       4     the bogus propagation.  */
       5  /* { dg-skip-if "" { *-*-* } { "-O1" } { "" } } */
       6  /* { dg-options "-fdump-tree-ivcanon-details" } */
       7  
       8  int a[199];
       9  
      10  extern void abort (void);
      11  
      12  int
      13  main ()
      14  {
      15    int i, x;
      16    for (i = 0; i < 199; i++)
      17      {
      18        x = a[i];
      19        if (x != i)
      20  	abort ();
      21      }
      22    return 0;
      23  }
      24  
      25  /* Verify that we do not propagate the equivalence x == i into the
      26     induction variable increment.  */
      27  
      28  /* { dg-final { scan-tree-dump "Added canonical iv" "ivcanon" } } */