将方法'__popcnt'移植到明武

porting the method '__popcnt' to mingw

本文关键字:方法 popcnt      更新时间:2023-10-16

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

wfx->Channels = __popcnt(type);

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

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

__builtin_popcount
__builtin_popcountl
__builtin_popcountll

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

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