1  /* { dg-require-effective-target int32plus } */
       2  /* { dg-options "-O1 -ffast-math -floop-nest-optimize" } */
       3  
       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  }