Use long long builtins of zero counting for x86-64.
authorH.J. Lu <hongjiu.lu@intel.com>
Sat, 18 Jun 2011 15:35:10 +0000 (15:35 +0000)
committerH.J. Lu <hjl@gcc.gnu.org>
Sat, 18 Jun 2011 15:35:10 +0000 (08:35 -0700)
2011-06-18  H.J. Lu  <hongjiu.lu@intel.com>

* longlong.h (count_leading_zeros): Use long long builtin for
x86-64.
(count_trailing_zeros): Likewise.

From-SVN: r175183

gcc/ChangeLog
gcc/longlong.h

index 57789e3e6b56f11e6a1482678b327fc203cd8dcd..31f23a23c12bc6b53bcc18962deeef0914a342ce 100644 (file)
@@ -1,3 +1,9 @@
+2011-06-18  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * longlong.h (count_leading_zeros): Use long long builtin for
+       x86-64.
+       (count_trailing_zeros): Likewise.
+
 2011-06-18  H.J. Lu  <hongjiu.lu@intel.com>
 
        PR other/49325
index 576247fc6361c205d6313b04ec25b63a1fe2ab96..7d11e10646e70419bdbe3ac57f3350cb89808aa6 100644 (file)
@@ -1,6 +1,6 @@
 /* longlong.h -- definitions for mixed size 32/64 bit arithmetic.
    Copyright (C) 1991, 1992, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
-   2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
+   2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011
    Free Software Foundation, Inc.
 
    This file is part of the GNU C Library.
@@ -436,8 +436,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 */