【问题标题】:clang/llvm ARM instrinicsclang/llvm ARM 内在函数
【发布时间】:2015-05-13 15:51:54
【问题描述】:

在哪里可以找到针对 ARM 的 clang/llvm 支持的内部函数的完整列表?我能挖掘的所有东西都与 NEON 有关,但如果我想做位扫描或旋转之类的事情怎么办?

附带问题:clang 或 llvm 是否支持内在函数?

【问题讨论】:

    标签: clang llvm intrinsics


    【解决方案1】:

    如果您打算进入 ARM asm,我真的建议您跳过对内部函数的任何使用。这似乎是一个好主意,只需混合你的 C 和 asm。但是,在实际实践中,只需在 ASM 中编写一个完整的函数并像普通 C 函数一样调用它,就可以节省您的时间和许多麻烦。您可以创建一个虚拟 C 函数,然后让 clang 为其生成 ASM,作为参数如何传入和返回的示例。我写了更多细节和一个工作示例 iOS xcode 项目here 以及可用于对不同 ASM 实现进行计时的代码。另请注意,虽然 ARM 代码适用于不同版本的 ARM CPU,但较新的 64 位 ARM 代码则完全不同。

    【讨论】:

      【解决方案2】:

      令人恼火的是,我一直无法找到这方面的文档。但是,您可以在此处找到 clang 代码中的声明(通过搜索“clang __builtin_arm”找到)

      http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Basic/BuiltinsARM.def?view=markup

      【讨论】:

        猜你喜欢
        • 2017-03-05
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-03-11
        • 1970-01-01
        • 2012-08-17
        • 1970-01-01
        相关资源
        最近更新 更多