/* This failed -fcompare-debug because register pressure computation
   took debug insns into account.  */
/* { dg-do compile } */
/* { dg-options "-O1 -fsched-pressure -fschedule-insns -fcompare-debug" { target scheduling } } */
/* { dg-options "-O1 -fcompare-debug" { target { ! scheduling } } } */
/* { dg-require-effective-target int32plus } */

int lzo_adler32(int adler, char *buf)
{
  int s1 = adler;
  int s2 = adler;
  s1 += buf[0];
  s2 += s1;
  s1 += buf[1];
  s2 += s1;
  s1 += buf[2];
  s2 += s1;
  s1 += buf[3];
  s2 += s1;
  s1 += buf[4];
  s2 += s1;
  s1 += buf[5];
  s2 += s1;
  s1 += buf[6];
  s2 += s1;
  s1 += buf[7];
  s2 += s1;
  return (s2 << 16) + s1;
}
