如何在 Xcode 中启用 Neon 指令

Posted

技术标签:

【中文标题】如何在 Xcode 中启用 Neon 指令【英文标题】:How to enable Neon instruction in Xcode 【发布时间】:2010-03-04 01:31:34 【问题描述】:

我想为 iPhone 使用 Neon SIMD 指令。 我听说我们必须在目标检查器的“其他 C 标志”字段中放置标志“-mfloat-abi=softfp -mfpu=neon”,但是在构建时我得到“错误:无法识别的命令行选项”-mfpu=neon“ ”。

还有什么特别的事情必须做才能允许这个标志吗? (我有 Xcode 3.2.1 和 iphone sdk 3.1.3)

谢谢!!

【问题讨论】:

【参考方案1】:

NEON 套件是 Cortex-A 系列的扩展,因此在 iPhone 3G 中不受支持。您可能无法直接指定。

【讨论】:

【参考方案2】:

NEON 默认启用。

目标必须是 ARMv7。 (3GS 或更高版本)

为了使用 NEON,最简单的方法是编写带有 NEON 指令的汇编代码。

这并不难。 ARM 在其主页上提供了 PDF 格式的 NEON 指南。

【讨论】:

您能否指出任何说明 NEON 已“默认”启用的文档。因为对于大多数 ARM 编译器,您必须明确定义这些选项:-mfloat-abi=softfp -mfpu=neon。 仅将目标设置为 ARMv7。然后,您可以为 NEON 编写代码 - 本机、内联或内在函数,而无需修改任何编译器选项。请注意,模拟器将无法工作。 gcc 和 clang 都支持 NEON 指令的内在函数。至少在 2013 年,使用汇编是不必要的。 gcc.gnu.org/onlinedocs/gcc/ARM-NEON-Intrinsics.html 如果您想在内在函数上浪费时间,请成为我的客人。这不是我的问题。

以上是关于如何在 Xcode 中启用 Neon 指令的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Eclipse Neon 中启用 C++11 语法?

如何访问 NEON 指令中的完整 128 位?

如何在运行时检测 NEON 和 Helium 指令集的可用性

使用 NEON 指令加速级联双二阶 - 它是如何工作的?

如何使用 arm neon 指令右移值

ARM NEON 汇编器错误:“指令不能有条件”