diff options
Diffstat (limited to 'contrib/llvm/tools/clang/lib/Headers/popcntintrin.h')
-rw-r--r-- | contrib/llvm/tools/clang/lib/Headers/popcntintrin.h | 18 |
1 files changed, 13 insertions, 5 deletions
diff --git a/contrib/llvm/tools/clang/lib/Headers/popcntintrin.h b/contrib/llvm/tools/clang/lib/Headers/popcntintrin.h index 1a4e900..6fcda65 100644 --- a/contrib/llvm/tools/clang/lib/Headers/popcntintrin.h +++ b/contrib/llvm/tools/clang/lib/Headers/popcntintrin.h @@ -21,15 +21,11 @@ *===-----------------------------------------------------------------------=== */ -#ifndef __POPCNT__ -#error "POPCNT instruction set not enabled" -#endif - #ifndef _POPCNTINTRIN_H #define _POPCNTINTRIN_H /* Define the default attributes for the functions in this file. */ -#define __DEFAULT_FN_ATTRS __attribute__((__always_inline__, __nodebug__)) +#define __DEFAULT_FN_ATTRS __attribute__((__always_inline__, __nodebug__, __target__("popcnt"))) static __inline__ int __DEFAULT_FN_ATTRS _mm_popcnt_u32(unsigned int __A) @@ -37,12 +33,24 @@ _mm_popcnt_u32(unsigned int __A) return __builtin_popcount(__A); } +static __inline__ int __DEFAULT_FN_ATTRS +_popcnt32(int __A) +{ + return __builtin_popcount(__A); +} + #ifdef __x86_64__ static __inline__ long long __DEFAULT_FN_ATTRS _mm_popcnt_u64(unsigned long long __A) { return __builtin_popcountll(__A); } + +static __inline__ long long __DEFAULT_FN_ATTRS +_popcnt64(long long __A) +{ + return __builtin_popcountll(__A); +} #endif /* __x86_64__ */ #undef __DEFAULT_FN_ATTRS |