在我的一个应用程序中,我需要有效地对长数据流中的位进行解交织。理想情况下,我想在可用时使用 BMI2pext_u32()
和/或pext_u64()
x86_64 内在指令。我在互联网上搜索有关x86intrin.h
( GCC ) 的文档,但找不到太多关于该主题的内容;所以,我要求 StackOverflow 上的专家帮助我。
- 在哪里可以找到有关如何使用函数的文档
x86intrin.h
? - gcc的实现是否
pext_*()
已经有代码可以依赖,还是我需要自己编写后备代码(用于条件编译)? - 如果目标不支持内在函数,是否可以编写一个自动回退到替代实现的二进制文件?如果是这样,如何做到这一点?
- 是否有已知的编程模式可以被GCC
pext_*()
识别并在启用优化和使用 编译时自动转换为-mbmi2
?