1  /* { dg-options "-fmodulo-sched" } */
       2  
       3  
       4  extern long *x1, *x2, *x3;
       5  
       6  int
       7  foo ()
       8  {
       9    /* Switching the following two lines prevents the ICE.  */
      10    long *p1, *p2;
      11    long m, n, i;
      12  
      13    p1 = x1;
      14    p2 = x2;
      15    n = 0;
      16    for (i = *x3; 0 < i; i--)
      17      {
      18        m = (*p1++) ^ (*p2++);
      19        m = (m & 0x55555555) + ((m >> 1) & 0x55555555);
      20        m = (m & 0x33333333) + ((m >> 2) & 0x33333333);
      21        m = (m + (m >> 4)) & 0x0f0f0f0f;
      22        m = (m + (m >> 8));
      23        n += m;
      24      }
      25    return n;
      26  }