为iOS编译半浮点氖指令

时间:2013-08-23 16:44:54

标签: c xcode arm neon

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

以下是代码:

vcvt.f32.f16, q0, d1

虽然apple编译器不喜欢这条指令并且给出了错误,但是已经在gcc上编译了:指令需要:half-float

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

谢谢!

1 个答案:

答案 0 :(得分:2)

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

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