GCC; arm64; aarch64;无法识别的命令行选项'-mfpu = neon'

时间:2015-04-24 15:11:06

标签: gcc arm neon arm64 linaro

我收到了编译错误:

  

无法识别的命令行选项'-mfpu = neon'*
  当试图用-mfpu = neon标志编译时。   实际上,我试过的任何'mfpu'选项都失败了。但是在文档中提到了这个标志,所以它应该是有效的

这把钥匙有什么问题? 我怎么能告诉编译器使用NEON?

使用Linaro GNU aarch64 linux工具4.8。

感谢。

2 个答案:

答案 0 :(得分:19)

高级SIMD(又名NEON)对于AArch64是强制性的,因此不需要命令行选项来指示编译器使用NEON。

如果要启用自动向量化优化,以便编译器自动使用NEON指令,则使用-O3-O2 -ftree-vectorize进行编译。

AArch64和ARM后端在gcc中是完全独立的。 ARM后端仅针对传统的32位ARM指令集(ARM,Thumb,Thumb-2)。这与x86的情况形成对比,其中32位和64位代码生成被组合成单个GCC后端。

答案 1 :(得分:1)

转到文件/ tensorflow / contrib / lite / kernels / internal / BUILD,删除-mfpu = neon即可。 从: NEON_FLAGS_IF_APPLICABLE =选择({     “:arm”:[         “ -O3”,         “ -mfpu = neon”,     ]

至: NEON_FLAGS_IF_APPLICABLE =选择({     “:arm”:[         “ -O3”

],