1/* { dg-options "-O1 -ffast-math -floop-interchange" } */
2
3int adler32(int adler, char *buf, int n)
4{
5  int sum = 0;
6  do {
7     adler += buf[0];
8     sum += adler;
9     adler += buf[1];
10     sum += adler;
11     adler += buf[2];
12     sum += adler;
13     adler += buf[3];
14     sum += adler;
15  } while (--n);
16  return adler | (sum << 16);
17}
18