unsigned int foo(unsigned long int x) { if (x == 0) return 8; else return __builtin_clzl((int)x << x); }