Sun Studio 12 Update 1: Fortran ユーザーズガイド

3.4.175 –xvector[= [[ no%]lib, [no%] simd, %none] ]

ベクトルライブラリ関数を自動呼び出しします。

このオプションを使用する場合、-xvector を使用してコンパイルするときに、デフォルトの丸めモードである -fround=nearest でコンパイルする必要があります。

-xvector=lib (Solaris プラットフォームのみ) が指定されると、可能な場合は、コンパイラはループ内の数学ライブラリへの呼び出しを、同等のベクトル数学ルーチンへの単一の呼び出しに変換します。大きなループカウントを持つループでは、これによりパフォーマンスが向上します。この機能は、-xvector=no%lib で無効になります。

-xvector=simd を使用すると、コンパイラはネイティブ x86 SSE SIMD 命令を使用して特定のループのパフォーマンスを向上させます。ターゲットアーキテクチャーが SIMD 命令をサポートする場合にのみ、コンパイラはこのスイッチを受け入れることができます。たとえば、-xarch=sse2 -m64 または -xarch=generic64 を指定する必要があります。また、-xvector=simd を指定する場合は、-xO3 以上の最適化レベルと -xdepend を指定する必要もあります。この機能は、-xvector=no%simd で無効になります。

-xvector=simd-fsimple=2 の両方を指定すると、-xvector=simd だけを指定した場合よりもパフォーマンスが向上します。ただし、-fsimple=2 では浮動小数点演算の並べ替えが許可されるため、浮動小数点の結果がわずかに異なる場合があります。

デフォルトは -xvector=%none です。-xvector をサブオプションなしで指定した場合、コンパイラは -xvector=lib とみなします。

コンパイラは、ロード時に libmvec ライブラリを取り込みます。コンパイル時に -xvector=lib を指定した場合は、リンク時にも指定する必要があります。

このオプションは以前のインスタンスを上書きするため、-xvector=%none は、それ以前に指定した -xvector=lib よりも優先されます。