10.153 ARMv6 SIMD コンパイラ組み込み関数

ARM アーキテクチャ v6 命令セットアーキテクチャは、高パフォーマンスメディアアプリケーションのソフトウェア実装効率化のため、多数の SIMD(Single Instruction Multiple Data、単一命令複数データ処理)命令を ARMv6 に追加します。ARM コンパイラは、ARMv6 SIMD 命令に対応するコンパイラの組み込み関数をサポートします。

これらのコンパイラ組み込み関数は、ARMv6 アーキテクチャまたはプロセッサ用にコードをコンパイルする場合に使用できます。選択されたアーキテクチャが ARMv6 SIMD 命令をサポートしていない場合、コンパイルで警告が生成され、以降のリンケージは未定義のシンボル参照で失敗します。

各 ARMv6 SIMD コンパイラ組み込み関数は、ARMv6 アーキテクチャまたはプロセッサのシングル、インライン、マシン命令へのコンパイルが保証されています。ただし機会があれば、コンパイラは、ベースとなる命令の最適化された形式を使用する可能性があります。
ARMv6 SIMD 命令は、アプリケーションプログラムステータスレジスタ(APSR)の GE[3:0] ビットを設定できます。SIMD 命令は、これらのフラグを更新して、SIMD 演算の各 8/16 ビットスライスに対し "等しいかより大きい" ステータスを示します。
ARM コンパイラは、GE[3:0] ビットをグローバル変数として処理します。C または C++ プログラム内からこれらのビットにアクセスするには、以下のいずれかを実行します。
  • 名前付きレジスタ変数を通じて APSR のビット 16 ~ 19 にアクセスします。
  • __sel コンパイラ組み込み関数を使用して、SEL 命令を制御します。
関連する参考文書
10.159 名前付きレジスタ変数
章 12 ARMv6 SIMD 命令のコンパイラ組み込み関数
関連情報
SEL
NEON と VFP プログラミング
ARM レジスタ
非機密扱いPDF file icon PDF 版ARM DUI0472LJ
Copyright © 2010-2015 ARM.All rights reserved.