On Thu, 3 May 2012, Adhemerval Zanella wrote: > + int m1 = (hx == 0) ? 0 : __builtin_clzl (hx); > + int m2 = (lx == 0) ? 0 : __builtin_clzl (lx); hx and lx are 64-bit numbers. To work for 32-bit platforms as well as 64-bit, try using __builtin_clzll instead of __builtin_clzl. -- Joseph S. Myers joseph@codesourcery.com