| /* PR tree-optimization/93098 */ |
| |
| int |
| foo (unsigned long long x) |
| { |
| x -= (x >> -1) & 0x5555555555555555ULL; |
| x = (x & 0x3333333333333333ULL) + ((x >> 2) & 0x3333333333333333ULL); |
| x = (x + (x >> 4)) & 0x0f0f0f0f0f0f0f0fULL; |
| return (x * 0x0101010101010101ULL) >> 56; |
| } |
| |
| int |
| bar (unsigned long long x) |
| { |
| x -= (x >> 1) & 0x5555555555555555ULL; |
| x = (x & 0x3333333333333333ULL) + ((x >> -2) & 0x3333333333333333ULL); |
| x = (x + (x >> 4)) & 0x0f0f0f0f0f0f0f0fULL; |
| return (x * 0x0101010101010101ULL) >> 56; |
| } |
| |
| int |
| baz (unsigned long long x) |
| { |
| x -= (x >> 1) & 0x5555555555555555ULL; |
| x = (x & 0x3333333333333333ULL) + ((x >> 2) & 0x3333333333333333ULL); |
| x = (x + (x >> -4)) & 0x0f0f0f0f0f0f0f0fULL; |
| return (x * 0x0101010101010101ULL) >> 56; |
| } |
| |
| int |
| qux (unsigned long long x) |
| { |
| x -= (x >> 1) & 0x5555555555555555ULL; |
| x = (x & 0x3333333333333333ULL) + ((x >> 2) & 0x3333333333333333ULL); |
| x = (x + (x >> 4)) & 0x0f0f0f0f0f0f0f0fULL; |
| return (x * 0x0101010101010101ULL) >> -56; |
| } |