Tweet


* gcc-4.x での SIMD 命令サポート [#a47d7162]
「gcc 4 では MMX, 3DNow!, SSE などの SIMD 命令がサポートされた」「-msse オプションを付けてコンパイルすると SSE 命令が有効になる」なんて話を聞いたことがある人も多いと思います.
が,''これだけではマトモに SIMD 命令を生成してくれません''.

というわけで,そこらへんの話を調べた範囲で書いてみようと思います.

** 情報源 [#iee772ca]
gcc の info がメインです.
あと,各命令セットのドキュメントも用意しときましょう.

** おおまかな枠組み [#b5f08def]
+ SIMD のレジスタにあった型の変数を定義して
+ ビルトイン関数で演算を記述
+ -mXXX オプションを付けてコンパイル
-- -mmmx, -m3dnow, -msse, -msse2 など
- 枠組みとしては汎用
-- x86 だけでなく,MIPS や XScale の wireless MMX もこの方法でサポートしてるそうです

ま,こんなところです.


** 3DNow! の例 [#j5b7771f]
何でいまどき 3DNow! かと言うと,今使ってる PC が Eden だったりするので.
まぁ,SSE とかでも同じような要領でいけるはずです.

*** 3DNow! 命令セット [#te8da23e]



トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS