1  /* PR tree-optimization/93098 */
       2  
       3  int
       4  foo (unsigned long long x)
       5  {
       6    x -= (x >> -1) & 0x5555555555555555ULL;
       7    x = (x & 0x3333333333333333ULL) + ((x >> 2) & 0x3333333333333333ULL);
       8    x = (x + (x >> 4)) & 0x0f0f0f0f0f0f0f0fULL;
       9    return (x * 0x0101010101010101ULL) >> 56;
      10  }
      11  
      12  int
      13  bar (unsigned long long x)
      14  {
      15    x -= (x >> 1) & 0x5555555555555555ULL;
      16    x = (x & 0x3333333333333333ULL) + ((x >> -2) & 0x3333333333333333ULL);
      17    x = (x + (x >> 4)) & 0x0f0f0f0f0f0f0f0fULL;
      18    return (x * 0x0101010101010101ULL) >> 56;
      19  }
      20  
      21  int
      22  baz (unsigned long long x)
      23  {
      24    x -= (x >> 1) & 0x5555555555555555ULL;
      25    x = (x & 0x3333333333333333ULL) + ((x >> 2) & 0x3333333333333333ULL);
      26    x = (x + (x >> -4)) & 0x0f0f0f0f0f0f0f0fULL;
      27    return (x * 0x0101010101010101ULL) >> 56;
      28  }
      29  
      30  int
      31  qux (unsigned long long x)
      32  {
      33    x -= (x >> 1) & 0x5555555555555555ULL;
      34    x = (x & 0x3333333333333333ULL) + ((x >> 2) & 0x3333333333333333ULL);
      35    x = (x + (x >> 4)) & 0x0f0f0f0f0f0f0f0fULL;
      36    return (x * 0x0101010101010101ULL) >> -56;
      37  }