ループ本体内の文

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

浮動小数点配列の演算

ループ本体の文には、contain float 型の演算 (通常は配列) を使用できます。数値演算は、加算、減算、乗算、除算、否定、平方根、MAX、MIN および SIN 、COS などの数値関数をサポートしています。浮動小数点からの変換、または浮動小数点への変換はできないものがあります。

DOUBLE PRECISION 型の演算は、コンパイラー・オプションの -xW (Linux*) または /QxW (Windows*) あるいは -axW (Linux) または /QaxW (Windows) を使用したインテル(R) Pentium(R) 4 プロセッサー・システムおよびインテル(R) Xeon(R) プロセッサー・システムの最適化以外では無効です。

整数配列の演算

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

その他の演算

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