Hi, long may be 32bit for x86-64. But long long is always 64bit. This patch uses long long builtin for 64bit. OK for trunk?
Thanks. H.J. --- 2011-06-14 H.J. Lu <hongjiu...@intel.com> * longlong.h (count_leading_zeros): Use long long builtin for x86-64. (count_trailing_zeros): Likewise. diff --git a/gcc/longlong.h b/gcc/longlong.h index 1bab76d..d5c0cd9 100644 --- a/gcc/longlong.h +++ b/gcc/longlong.h @@ -430,8 +430,8 @@ UDItype __umulsidi3 (USItype, USItype); : "0" ((UDItype) (n0)), \ "1" ((UDItype) (n1)), \ "rm" ((UDItype) (dv))) -#define count_leading_zeros(count, x) ((count) = __builtin_clzl (x)) -#define count_trailing_zeros(count, x) ((count) = __builtin_ctzl (x)) +#define count_leading_zeros(count, x) ((count) = __builtin_clzll (x)) +#define count_trailing_zeros(count, x) ((count) = __builtin_ctzll (x)) #define UMUL_TIME 40 #define UDIV_TIME 40 #endif /* x86_64 */