1  /* { dg-do link { target natural_alignment_32 } } */
       2  /* { dg-do compile { target { ! natural_alignment_32 } } } */
       3  /* { dg-options "-O3 -fdump-tree-cunrolli-optimized" } */
       4  
       5  extern void foo(void);
       6  static int b, f, *a = &b;
       7  int **c = &a;
       8  static void d() {
       9    int g, h;
      10    for (f = 0; f < 1; f++) {
      11      int *i = &b;
      12      {
      13        int *j[3], **k = &a;
      14        for (g = 0; g < 3; g++)
      15          for (h = 0; h < 1; h++)
      16            j[g] = &b;
      17        *k = j[0];
      18      }
      19      *c = i;
      20    }
      21  }
      22  int main() {
      23    d();
      24    *a = 0;
      25    if (**c)
      26      foo();
      27    return 0;
      28  }
      29  
      30  /* Verify that we unroll the inner loop early even with -O3.  */
      31  /* { dg-final { scan-tree-dump "loop with 1 iterations completely unrolled" "cunrolli" } }  */
      32  /* { dg-final { scan-tree-dump "loop with 3 iterations completely unrolled" "cunrolli" } }  */