2

私が抱えている問題は、arm7 アーキテクチャでサポートされていると思われるいくつかのネオン命令にあります。私はデフォルトのコンパイラ (Apple LLVM 5.0) を使用しています。これは、half-float 命令が好きではありませんが、他のネオン命令を認識します。

コードは次のとおりです。

vcvt.f32.f16, q0, d1

これは gcc でコンパイルされましたが、Apple コンパイラはこの命令を好まず、次のエラーが表示されます: Instruction requires: half-float

XCode に指定できるコンパイラ フラグはありますか? グーグルでハーフフロート命令を有効にする方法がわかりません。

ありがとう!

4

1 に答える 1

2

half-float 形式は、実際にはすべての ARM v7 実装でサポートされているわけではありません。こちらのARM マニュアルを参照してください。これは vfp4 で必要とされるため、チップがそれをサポートしている場合、それは良い出発点です。一般に、実行時の検出とディスパッチを使用することをお勧めします。一般的に命令を有効にするには、いくつかの浮動小数点サポート オプションのいずれかを使用する必要があります。一般に、「fp16」がキーワードです。次に例を示します。

-mfpu=neon-fp16ターゲットがネオンでサポートしていることが確実な場合。llvm の例もすべて見つけることができませんでしたが、 GCC マニュアルにある GCC オプションと一般的に互換性があると思います。

于 2013-08-23T18:27:31.783 に答える