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