为 iOS 编译半浮动霓虹灯指令

Posted

技术标签:

【中文标题】为 iOS 编译半浮动霓虹灯指令【英文标题】:Compiling half float neon instructions for iOS 【发布时间】:2013-08-23 16:44:54 【问题描述】:

我遇到的问题是一些我认为 arm7 架构支持的霓虹灯指令。我使用的是默认编译器(Apple LLVM 5.0),虽然它不喜欢半浮点指令,但它可以识别其他霓虹灯指令。

代码如下:

vcvt.f32.f16, q0, d1

这已经在 gcc 上编译,虽然苹果编译器不喜欢这条指令并给出错误:指令需要:半浮点

我可以给 XCode 一个编译器标志吗?我不知道如何启用半浮动指令谷歌搜索。

谢谢!

【问题讨论】:

试试-mfpu=neon-fp16 【参考方案1】:

并非所有 ARM v7 实现都支持半浮点格式。请参阅ARM manual here。 vfp4 需要它,所以如果你的芯片支持它,那是一个好的开始。一般来说,我建议使用运行时检测和调度。一般来说,要启用该指令,您需要使用几个浮点支持选项之一,通常“fp16”是关键字,例如:

-mfpu=neon-fp16 如果您确定您的目标支持霓虹灯。我也找不到 llvm 的所有示例,但我认为它们通常与 GCC manual 中的 GCC 选项兼容。

【讨论】:

以上是关于为 iOS 编译半浮动霓虹灯指令的主要内容,如果未能解决你的问题,请参考以下文章

sh 用霓虹灯支持编译SVN 1.7.20(Ubuntu 14.04)

sh 用霓虹灯支持编译SVN 1.7.20(Centos 6 / Fedora 21)

将一种形式的霓虹灯寄存器转换为另一种可能吗

iOS SceneKit 霓虹灯

影响标志的霓虹汇编向量指令

如何在具有霓虹内在函数的多核处理器中有效地使用所有霓虹灯单元