intrin-impl.h: Added __popcnt16, __popcnt, and __popcnt64.
diff --git a/mingw-w64-headers/include/psdk_inc/intrin-impl.h b/mingw-w64-headers/include/psdk_inc/intrin-impl.h index f8dc78f..fc781ff 100644 --- a/mingw-w64-headers/include/psdk_inc/intrin-impl.h +++ b/mingw-w64-headers/include/psdk_inc/intrin-impl.h
@@ -971,6 +971,40 @@ #if defined(__x86_64__) || defined(_AMD64_) || defined(__i386__) || defined(_X86_) || defined(__arm__) || defined(_ARM_) +#if !defined(__clang__) + +#if __INTRINSIC_PROLOG(__popcnt16) +unsigned short __popcnt16(unsigned short); +__INTRINSICS_USEINLINE +unsigned short __popcnt16(unsigned short value) +{ + return __builtin_popcount(value); +} +#define __INTRINSIC_DEFINED___popcnt16 +#endif /* __INTRINSIC_PROLOG */ + +#if __INTRINSIC_PROLOG(__popcnt) +unsigned int __popcnt(unsigned int); +__INTRINSICS_USEINLINE +unsigned int __popcnt(unsigned int value) +{ + return __builtin_popcount(value); +} +#define __INTRINSIC_DEFINED___popcnt +#endif /* __INTRINSIC_PROLOG */ + +#if __INTRINSIC_PROLOG(__popcnt64) +unsigned __int64 __popcnt64(unsigned __int64); +__INTRINSICS_USEINLINE +unsigned __int64 __popcnt64(unsigned __int64 value) +{ + return __builtin_popcountll(value); +} +#define __INTRINSIC_DEFINED___popcnt64 +#endif /* __INTRINSIC_PROLOG */ + +#endif /* !defined(__clang__) */ + #if __INTRINSIC_PROLOG(_InterlockedAnd) __LONG32 _InterlockedAnd(__LONG32 volatile *, __LONG32); __INTRINSICS_USEINLINE