(root)/
gcc-13.2.0/
gcc/
testsuite/
gcc.dg/
vect/
vect-126.c
       1  /* PR tree-optimization/66718 */
       2  /* { dg-do compile } */
       3  
       4  int *a[1024], b[1024];
       5  struct S { int u, v, w, x; };
       6  struct S c[1024];
       7  int d[1024][10];
       8  
       9  void
      10  f0 (void)
      11  {
      12    for (int i = 0; i < 1024; i++)
      13      a[i] = &b[0];
      14  }
      15  
      16  void
      17  f1 (void)
      18  {
      19    for (int i = 0; i < 1024; i++)
      20      {
      21        int *p = &b[0];
      22        a[i] = p + i;
      23      }
      24  }
      25  
      26  void
      27  f2 (int *p)
      28  {
      29    for (int i = 0; i < 1024; i++)
      30      a[i] = &p[i];
      31  }
      32  
      33  void
      34  f3 (void)
      35  {
      36    for (int i = 0; i < 1024; i++)
      37      a[i] = &b[i];
      38  }
      39  
      40  void
      41  f4 (void)
      42  {
      43    int *p = &c[0].v;
      44    for (int i = 0; i < 1024; i++)
      45      a[i] = &p[4 * i];
      46  }
      47  
      48  void
      49  f5 (void)
      50  {
      51    for (int i = 0; i < 1024; i++)
      52      a[i] = &c[i].v;
      53  }
      54  
      55  void
      56  f6 (void)
      57  {
      58    for (int i = 0; i < 1024; i++)
      59      for (unsigned int j = 0; j < 10; j++)
      60        a[i] = &d[i][j];
      61  }
      62  
      63  /* { dg-final { scan-tree-dump-times "vectorized 1 loops in function" 7 "vect" { target { i?86-*-* x86_64-*-* } } } } */