将方法“__popcnt”移植到 mingw

porting the method '__popcnt' to mingw

在我的 Microsoft 特定代码中,我有这样的东西(可以正常工作和构建)

wfx->Channels = __popcnt(type);

Mingw 无法识别 __popcnt 关于我可以使用什么代替它的任何建议?这个 page 说它在 #include <intrin.h> 中声明但是添加它没有帮助。关于我可以用什么代替它的任何建议?我无法访问 Microsoft 编译器,也无法深入研究该方法。

GCC 也有专用处理器指令的内在函数,匹配的是

__builtin_popcount
__builtin_popcountl
__builtin_popcountll

看起来不需要任何头文件。

它们在针对 Nehalem 或更高版本的处理器时效率最高,否则编译器将不得不生成软件实现。