gpt4 book ai didi

c - 如何使用 x86intrin.h

转载 作者:太空狗 更新时间:2023-10-29 17:24:06 29 4
gpt4 key购买 nike

在我的一个应用程序中,我需要高效地对长数据流中的位进行去交错处理。理想情况下,我想在可用时使用 BMI2 pext_u32() 和/或 pext_u64() x86_64 内部指令。我在互联网上搜索了关于 x86intrin.h (GCC) 的文档,但找不到太多关于这个主题的内容;所以,我请求 StackOverflow 上的专家帮助我。

  1. 在哪里可以找到有关如何使用 x86intrin.h 中的函数的文档?
  2. gccpext_*() 实现是否已经有代码可以回退,或者我是否需要自己编写回退代码(对于条件编译)?
  3. 是否可以编写一个二进制文件,在目标不支持内在代码时自动回退到备用实现?如果是这样,如何做到这一点?
  4. 是否有一种已知的编程模式可以被 GCC 识别并在启用优化和使用 -mbmi2< 进行编译时自动转换为 pext_*()/?

最佳答案

英特尔发布 Intrinsics Guide ,这也适用于 GCC。如果您使用这些内部函数,您将不得不编写自己的后备代码。

使用IFUNC resolvers可以实现实现的自动切换, 但对于非库代码,使用条件或函数指针可能更简单。

查看 gcc/config/i386/i386.mdgcc/config/i386/i386.c 文件,我在 GCC 8 中没有看到任何内容这将自动选择源代码中没有内在函数的 pext 指令。

关于c - 如何使用 x86intrin.h,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49602761/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com