| /* { dg-options "-O3 -fgraphite-identity -fdump-tree-graphite-all" } */ |
| |
| typedef struct |
| { |
| int mode,state,num,state_out; |
| unsigned char* bits; |
| char *out; |
| }test; |
| unsigned char copy( test* s ) |
| { |
| while(1) |
| { |
| if (s->mode == 0) break; |
| if (s->state_out >= s->num) break; |
| *(s->out) = s->bits[s->state_out]; |
| if (s->mode == 0) s->mode++; |
| } |
| } |
| unsigned char compress(test *in) |
| { |
| unsigned char p_in, p_out; |
| while(1) |
| { |
| if (in->state == 1) |
| { |
| p_out |= copy(in); |
| if (in->state_out < in->num) break; |
| } |
| } |
| return p_in || p_out; |
| } |
| /* { dg-final { cleanup-tree-dump "graphite" } } */ |
| |
| |