blob: 6edb3c73c6b4062439c91b4182ccb2e60e841010 [file] [log] [blame]
/* { dg-do compile } */
/* { dg-options "-O2 -fprofile-use -Wno-missing-profile" } */
static inline int CLZ(int mask) {
return mask ? __builtin_clz(mask) : 32;
}
int foo(int value)
{
if (value == 0)
return 0;
int bias = CLZ(value);
value >>= bias;
int zeros = CLZ(value << 1);
value <<= zeros;
int packed = (unsigned)(value << 9) >> 9;
return packed;
}