re PR target/53877 (__lzcnt_u16/__lzcnt_u32/__lzcnt_u64 aren't implemented)

2012-07-20  Kirill Yukhin  <kirill.yukhin@intel.com>

        PR target/53877
        * config/i386/lzcntintrin.h (_lzcnt_u32): New.
        (_lzcnt_u64): Ditto.

From-SVN: r189706
This commit is contained in:
Kirill Yukhin 2012-07-20 08:57:04 +00:00 committed by Kirill Yukhin
parent c9a658c43d
commit 6ff07822f1
2 changed files with 18 additions and 0 deletions

View File

@ -1,3 +1,9 @@
2012-07-20 Kirill Yukhin <kirill.yukhin@intel.com>
PR target/53877
* config/i386/lzcntintrin.h (_lzcnt_u32): New.
(_lzcnt_u64): Ditto.
2012-07-20 Andrey Belevantsev <abel@ispras.ru>
Backport from mainline

View File

@ -44,12 +44,24 @@ __lzcnt32 (unsigned int __X)
return __builtin_clz (__X);
}
extern __inline unsigned int __attribute__((__gnu_inline__, __always_inline__, __artificial__))
_lzcnt_u32 (unsigned int __X)
{
return __builtin_clz (__X);
}
#ifdef __x86_64__
extern __inline unsigned long long __attribute__((__gnu_inline__, __always_inline__, __artificial__))
__lzcnt64 (unsigned long long __X)
{
return __builtin_clzll (__X);
}
extern __inline unsigned long long __attribute__((__gnu_inline__, __always_inline__, __artificial__))
_lzcnt_u64 (unsigned long long __X)
{
return __builtin_clzll (__X);
}
#endif
#endif /* _LZCNTINTRIN_H_INCLUDED */