diff options
author | Sebastian Pop <sebastian.pop@amd.com> | 2009-12-02 05:48:18 +0000 |
---|---|---|
committer | Sebastian Pop <spop@gcc.gnu.org> | 2009-12-02 05:48:18 +0000 |
commit | 6a72cb46b22baf7fbb3f5c2eff0b44b37da1487c (patch) | |
tree | 646a88cd9f58037518ca2e63da3b65f92dcb01a4 /gcc/config/i386/abmintrin.h | |
parent | 13c0eb433cca19bb71e0c3591f487a4696d449c0 (diff) | |
download | gcc-6a72cb46b22baf7fbb3f5c2eff0b44b37da1487c.zip gcc-6a72cb46b22baf7fbb3f5c2eff0b44b37da1487c.tar.gz gcc-6a72cb46b22baf7fbb3f5c2eff0b44b37da1487c.tar.bz2 |
ABM popcount intrinsics.
* config/i386/abmintrin.h (_mm_popcnt_u32): New.
(_mm_popcnt_u64): New.
From-SVN: r154894
Diffstat (limited to 'gcc/config/i386/abmintrin.h')
-rw-r--r-- | gcc/config/i386/abmintrin.h | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/gcc/config/i386/abmintrin.h b/gcc/config/i386/abmintrin.h index 6c77b3c..317bb98 100644 --- a/gcc/config/i386/abmintrin.h +++ b/gcc/config/i386/abmintrin.h @@ -33,4 +33,19 @@ #define _ABMINTRIN_H_INCLUDED +/* Calculate a number of bits set to 1. */ +extern __inline int __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_popcnt_u32 (unsigned int __X) +{ + return __builtin_popcount (__X); +} + +#ifdef __x86_64__ +extern __inline long long __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_popcnt_u64 (unsigned long long __X) +{ + return __builtin_popcountll (__X); +} +#endif + #endif /* _ABMINTRIN_H_INCLUDED */ |