diff options
author | Kirill Yukhin <kirill.yukhin@intel.com> | 2012-07-20 08:24:24 +0000 |
---|---|---|
committer | Kirill Yukhin <kyukhin@gcc.gnu.org> | 2012-07-20 08:24:24 +0000 |
commit | 83c8cdd7eccd811725200dd04f697362a160debd (patch) | |
tree | 238081dc8441c31b1807181633eb15a8ba65ad1d /gcc | |
parent | 6d876e0b31aab2bf03e93b1d4705330f20f2c656 (diff) | |
download | gcc-83c8cdd7eccd811725200dd04f697362a160debd.zip gcc-83c8cdd7eccd811725200dd04f697362a160debd.tar.gz gcc-83c8cdd7eccd811725200dd04f697362a160debd.tar.bz2 |
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: r189703
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/config/i386/lzcntintrin.h | 12 |
2 files changed, 18 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index f900f08..16cb34d 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -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-19 Eric Botcazou <ebotcazou@adacore.com> * config/sparc/sparc.md (adddi3_insn_sp32): Add earlyclobber. diff --git a/gcc/config/i386/lzcntintrin.h b/gcc/config/i386/lzcntintrin.h index 31db7dc..31a7163 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 */ |