1  /* { dg-do compile } */
       2  /* { dg-options "-O2 -fgimple -fdump-tree-ivopts" } */
       3  
       4  typedef struct {
       5      int x;
       6      int y;
       7  } S;
       8  
       9  int *a_p;
      10  S a[1000];
      11  
      12  void __GIMPLE (ssa, startwith ("loop"))
      13  f (int k)
      14  {
      15    int i;
      16    int * _1;
      17  
      18  __BB(2):
      19    i_5 = k_4(D);
      20    if (i_5 <= 999)
      21      goto __BB4;
      22    else
      23      goto __BB3;
      24  
      25  __BB(3):
      26    return;
      27  
      28  __BB(4):
      29    goto __BB5;
      30  
      31  __BB(5):
      32    i_12 = __PHI (__BB6: i_9, __BB4: i_5);
      33    _1 = &a[i_12].y;
      34    a_p = _1;
      35    __MEM <S[1000]> ((int *)&a)[i_12].y = 100;
      36    i_9 = i_5 + i_12;
      37    if (i_9 <= 999)
      38      goto __BB6;
      39    else
      40      goto __BB3;
      41  
      42  __BB(6):
      43    ;
      44    goto __BB5;
      45  
      46  }
      47  
      48  /* { dg-final { scan-tree-dump-times "&a" 1 "ivopts" } } */