Sun Studio 12: C++ ユーザーズガイド

A.2.178 -xvector[= a]

ベクタライブラリ関数の呼び出しの自動生成や、SIMD (Single Instruction Multiple Data) 命令の生成ができます。このオプションを使用するときは -fround=nearest を指定することによって、デフォルトの丸めモードを使用する必要があります。

a は、次の指定と同じです。

表 A–53 -xvector のフラグ

値 

意味 

[no%]lib

コンパイラは可能な場合はループ内の数学ライブラリへの呼び出しを、同等のベクトル数学ルーチンへの単一の呼び出しに変換します [しません]。大きなループカウントを持つループでは、これによりパフォーマンスが向上します。 

[no%]simd

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

yes

このオプションは、将来のリリースでは推奨されません。代わりに、-xvector=lib を指定します。

no

このオプションは、将来のリリースでは推奨されません。代わりに、-xvector=none を指定します。

A.2.178.1 デフォルト

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

相互の関連性

あらかじめ -xdepend を指定せずにコマンド行で -xvector を使用すると、-xdepend が自動的に呼び出されます。また、最適化レベルが指定されないか、-xO3 以上でない場合は、最適化レベルが -xO3 に上げられます。

コンパイラは、リンク時に libmvec ライブラリを取り込みます。コンパイルとリンクを別々のコマンドで実行する場合は、リンク時の CC コマンドに必ず -xvector を使用してください。