1 /* { dg-do compile } */
2 /* { dg-options "-fgcse -fgcse-sm" } */
3 
4 typedef struct A {
5     int buf, left;
6 } A;
7 
flush(A * s,int n)8 static void flush(A *s, int n)
9 {
10     s->buf <<= n;
11 
12     while (s->left < 32) {
13         s->buf <<= 8;
14         s->left += 8;
15     }
16 
17     s->buf=0;
18 }
19 
oof(A * s,int n)20 void oof(A *s, int n)
21 {
22     s->buf = n;
23     s->left = n;
24 
25     flush(s, n);
26 }
27