ループ本体内の文

ベクトル化可能な演算は、浮動小数点データと整数データで異なります。

浮動小数点配列の演算

ループ本体内の文には float 型の演算 (通常は配列) を使用できます。可能な算術演算は、加算、減算、乗算、除算、否定、平方根、最大値、および最小値です。Pentium® 4 プロセッサ・システムに合わせて最適化しない限り、倍精度型の演算はできません。

整数配列の演算

ループ本体内の文には、charunsigned charshortunsigned shortint、および unsigned int という各型を使用できます。sqrtfabs といった関数を呼び出せます。算術演算に使用できるのは、加算、減算、ビット単位 AND、ビット単位 OR、ビット単位 XOR、除算 (16 ビットのみ)、乗算 (16 ビットのみ)、最小値、および最大値だけです。データ型を複数混在させられるのは、変換しても精度が失われない場合だけです。例えば、乗算演算子、シフト演算子、単項演算子は混在させられます。

その他の演算

上記の浮動小数点演算と整数演算以外の文は使用できません。特に、特殊なデータ型である __m64__m128 はベクトル化できないので注意してください。ループ本体に関数呼び出しを含めることはできません。ストリーミング SIMD 拡張命令の組込み関数 (_mm_add_ps) は使用できません。