ftz、Qftz

デノーマル結果を 0 にフラッシュします。

IDE オプション

Windows: [Optimization (最適化)] > [Flush Denormal Results to Zero (デノーマル結果のフラッシュ)]
Linux: [Floating point (浮動小数点)] > [Flush Denormal Results to Zero (デノーマル結果のフラッシュ)]
Mac OS X: [Floating point (浮動小数点)] > [Flush Denormal Results to Zero (デノーマル結果のフラッシュ)]

アーキテクチャー

IA-32 アーキテクチャー、インテル(R) 64 アーキテクチャー、IA-64 アーキテクチャー

構文

Linux* および Mac OS* X: -ftz
-no-ftz
Windows*:  /Qftz
/Qftz-

引数

なし

デフォルト

IA-64 アーキテクチャー・ベースのシステム: -no-ftz または /Qftz-
IA-32 およびインテル 64 アーキテクチャー・ベースのシステム: -ftz または /Qftz
IA-64 アーキテクチャー・ベースのシステムでは、コンパイラーは、結果を漸次アンダーフローにします。IA-32 およびインテル 64 アーキテクチャー・ベースのシステムでは、デノーマル結果を 0 にフラッシュします。

説明

このオプションは、アプリケーションが漸次アンダーフロー・モードの場合に、デノーマル結果をゼロにフラッシュします。デノーマル値がアプリケーションの動作に影響を与えない場合、アプリケーションのパフォーマンスが向上する場合があります。

このオプションは、FTZ ハードウェア・フラグと DAZ ハードウェア・フラグをセットまたはリセットします。FTZ をオンにすると、浮動小数点演算からデノーマル結果は、値 0 にセットされます。FTZ がオフの場合、デノーマル結果はそのままになります。DAZ をオンにすると、浮動小数点への入力として使用されるデノーマル値は、ゼロとして扱われます。DAZ がオフの場合、正規化されていない命令の入力はそのままになります。IA-64 アーキテクチャー・ベースのシステムでは、FTZ は利用できますが、DAZ は利用できません。インテル 64 アーキテクチャー・ベースのシステムでは、FTZ と DAZ の両方を利用できます。FTZ および DAZ は、すべての IA-32 アーキテクチャーでサポートされていません。

IA-32 アーキテクチャー・ベースのシステム上で、-ftz (Linux および Mac OS X) または /Qftz (Windows) が SSE を有効にするオプションと組み合わせて使用されると (xNQxN など)、コンパイラーはメインルーチンにコードを挿入し、FTZ および DAZ をセットします。このようなオプションなしに -ftz または /Qftz を使用すると、コンパイラーは、ランタイム・プロセッサー・チェックに基づいて条件付きで FTZ/DAZ をセットするコードを挿入します。FTZ/DAZ をセットするコードを挿入しないようにするには、-no-ftz (Linux および Mac OS X) または /Qftz- (Windows) を指定します。

このオプションは、メインプログラムをコンパイルするときにのみ効果があります。このオプションは、プロセスに FTZ/DAZ モードをセットします。初期スレッドおよびそのプロセスによってその後に作成されるあらゆるスレッドは、FTZ/DAZ モードで動作します。

IA-64 アーキテクチャー・ベースのシステムでは、最適化オプション O3 を指定すると -ftz/Qftz がセットされ、最適化オプション O2 を指定すると -no-ftz (Linux) と /Qftz- (Windows) がセットされます。IA-32 およびインテル 64 アーキテクチャー・ベースのシステムでは、最適化オプション O レベル (O0 を除く) を指定すると、-ftz/Qftz がセットされます。

このオプションがプログラムの数値動作で好ましくない結果を出力した場合、コマンドラインで -no-ftz または /Qftz- を使用することで、O3 最適化の利点を活用したままで、FTZ/DAZ モードをオフにできます。

オプション -ftz/Qftz はパフォーマンス・オプションです。これらのオプションを設定しても、プログラムのすべてのデノーマル結果が 0 にフラッシュされるとは限りません。ランタイム時に生成されるデノーマル数をゼロにフラッシュするだけです。

代替オプション

なし

FTZ フラグと DAZ フラグの状態を表示するサンプルコードについては、「FTZ フラグと DAZ フラグの解釈」を参照してください。

関連情報

x、Qx コンパイラー・オプション

組み込み関数リファレンス: FTZ フラグと DAZ フラグの解釈