Mic*_*ack 6 c gcc x86-64 intrinsics bmi
在我的一个应用程序中,我需要有效地对长数据流中的位进行解交织。理想情况下,我想使用BMI2 pext_u32()和/或pext_u64()x86_64内部指令(如果可用)。我在x86intrin.h(GCC)上搜索了互联网上的文档,但在该主题上找不到太多东西;因此,我要求StackOverflow上的专家帮助我。
x86intrin.h?pext_*()背后是否已经有代码可以使用,还是我需要自己编写后备代码(用于条件编译)?pext_*()-mbmi2Intel 发布了Intrinsics Guide,该指南也适用于 GCC。如果使用这些内在函数,则必须编写自己的回退代码。
您可以通过使用IFUNC resolvers实现实现的自动切换,但对于非库代码,使用条件或函数指针可能更简单。
查看gcc/config/i386/i386.md和gcc/config/i386/i386.c文件,我在 GCC 8 中看不到任何会自动选择pext源代码中没有内在函数的指令的内容。
| 归档时间: |
|
| 查看次数: |
2479 次 |
| 最近记录: |