Use long long builtins of zero counting for x86-64.

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
This commit is contained in:
H.J. Lu 2011-06-18 15:35:10 +00:00 committed by H.J. Lu
parent ffe5104599
commit 10937b0c3a
2 changed files with 9 additions and 3 deletions

View 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> 2011-06-18 H.J. Lu <hongjiu.lu@intel.com>
PR other/49325 PR other/49325

View File

@ -1,6 +1,6 @@
/* longlong.h -- definitions for mixed size 32/64 bit arithmetic. /* longlong.h -- definitions for mixed size 32/64 bit arithmetic.
Copyright (C) 1991, 1992, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 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. Free Software Foundation, Inc.
This file is part of the GNU C Library. This file is part of the GNU C Library.
@ -436,8 +436,8 @@ UDItype __umulsidi3 (USItype, USItype);
: "0" ((UDItype) (n0)), \ : "0" ((UDItype) (n0)), \
"1" ((UDItype) (n1)), \ "1" ((UDItype) (n1)), \
"rm" ((UDItype) (dv))) "rm" ((UDItype) (dv)))
#define count_leading_zeros(count, x) ((count) = __builtin_clzl (x)) #define count_leading_zeros(count, x) ((count) = __builtin_clzll (x))
#define count_trailing_zeros(count, x) ((count) = __builtin_ctzl (x)) #define count_trailing_zeros(count, x) ((count) = __builtin_ctzll (x))
#define UMUL_TIME 40 #define UMUL_TIME 40
#define UDIV_TIME 40 #define UDIV_TIME 40
#endif /* x86_64 */ #endif /* x86_64 */