1  /* { dg-options "-O3 -fgraphite-identity -fdump-tree-graphite-all" } */
       2  
       3  typedef struct
       4  {
       5        int mode,state,num,state_out;
       6        unsigned char* bits;
       7        char *out;
       8  }test;
       9  unsigned char copy( test* s )
      10  {
      11     while(1)
      12       {
      13        if (s->mode == 0) break;
      14        if (s->state_out >= s->num) break;
      15        *(s->out) = s->bits[s->state_out];
      16        if (s->mode == 0) s->mode++;
      17       }
      18  }
      19  unsigned char compress(test *in)
      20  {
      21     unsigned char p_in, p_out;
      22     while(1)
      23     {
      24        if (in->state == 1) 
      25        {
      26           p_out |= copy(in);
      27           if (in->state_out < in->num) break;
      28        }
      29     }
      30     return p_in || p_out;
      31  }
      32