【问题标题】:Where can I find an official reference listing the operation of SSE intrinsic functions?SSE 内在函数参考
【发布时间】:2011-11-01 16:23:59
【问题描述】:

有谁知道列出 gcc 的 SSE 内在函数操作的参考资料,即 头文件中的函数?

谢谢。

【问题讨论】:

  • 英特尔“内在手册”可以在here 找到。 This 也可能感兴趣。
  • 我看不出为什么这个问题已作为“离题”关闭 - 投票重新打开。
  • 可能由于以下原因而关闭:“要求我们推荐或查找工具、库或最喜欢的场外资源的问题对于 Stack Overflow 来说是题外话,因为它们往往会吸引固执己见的答案和垃圾邮件。”
  • 为什么过分热心的模组必须遵守“规则”并关闭它,我不知道......接受的答案与我一直在寻找的那种东西有一个链接直到现在都找不到!

标签: c++ c gcc sse simd


【解决方案1】:

除了已经提到的所有在线 PDF 文档,还有一个online intrinsics guide

【讨论】:

  • 我不知道在线版本。谢谢!这比在本地安装到多台机器然后让 Java 更新破坏其中的一些(最近发生的)要好得多。
  • @Zboson:正在逐步淘汰的本地版本的唯一缺点是我曾经能够从中提取数据库,这是一个有用的资源。我还没有尝试查看网络版本是否可以抓取。
  • FWIW 我在这里上传了一份供离线使用的副本:devpspctclr.s3.amazonaws.com/intrinsics/… - 但是,由于数据库是通过 XHR 加载的,因此必须从 localhost 提供服务...
【解决方案2】:

GCC 内在函数是英特尔编译器内在函数的实现。它们记录在 Intel® 64 and IA-32 Architectures Developer's Manual: Vol. 2C - 附录 C 中。

【讨论】:

    【解决方案3】:

    我发现从 GCC 调用不同版本的 SSE 需要这些标头:

    • 对于 SSE2:
    extern "C"
    {
    #include <emmintrin.h>
    #include <mmintrin.h>
    }
    
    • 对于 SSE3:
    extern "C" 
    {
    #include <pmmintrin.h>
    #include <immintrin.h>   // (Meta-header)
    }
    
    • 对于 SSE4:
    extern "C" 
    {
    #include <smmintrin.h>
    }
    

    在现代版本的编译器中,所有头文件似乎对 Visual Studio 和 GCC 都是通用的。

    【讨论】:

    • 使用 VS2012 (VC++ 11.0),所有上述头文件都包含得很好(所以 immintrin.h 不再只是 GCC 了),并且 smmintrin.h 可以包含在 extern "C" 中,而无需问题。
    • 谢谢,我已经更新了答案。
    【解决方案4】:

    内部函数上的SSEPlus table 在大多数情况下非常容易使用。

    【讨论】:

      【解决方案5】:

      这些最初来自英特尔。英特尔 C++ 编译器在其 manual 中描述了这些内容。 AMD 可能有自己的手册,其中包含 3Dnow 的手册!您必须将它们的可用性与您的 GCC 版本随附的 *mmintrin.h 进行比较。

      【讨论】:

        猜你喜欢
        • 2019-01-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-03-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多