From: Kirill Yukhin Date: Fri, 20 Jul 2012 08:24:24 +0000 (+0000) Subject: re PR target/53877 (__lzcnt_u16/__lzcnt_u32/__lzcnt_u64 aren't implemented) X-Git-Tag: releases/gcc-4.8.0~4376 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=83c8cdd7eccd811725200dd04f697362a160debd;p=thirdparty%2Fgcc.git re PR target/53877 (__lzcnt_u16/__lzcnt_u32/__lzcnt_u64 aren't implemented) 2012-07-20 Kirill Yukhin PR target/53877 * config/i386/lzcntintrin.h (_lzcnt_u32): New. (_lzcnt_u64): Ditto. From-SVN: r189703 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index f900f08db104..16cb34dcdff4 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2012-07-20 Kirill Yukhin + + PR target/53877 + * config/i386/lzcntintrin.h (_lzcnt_u32): New. + (_lzcnt_u64): Ditto. + 2012-07-19 Eric Botcazou * config/sparc/sparc.md (adddi3_insn_sp32): Add earlyclobber. diff --git a/gcc/config/i386/lzcntintrin.h b/gcc/config/i386/lzcntintrin.h index 31db7dc086cb..31a7163838e1 100644 --- a/gcc/config/i386/lzcntintrin.h +++ b/gcc/config/i386/lzcntintrin.h @@ -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 */