FTZ フラグと DAZ フラグの設定

インテル® プロセッサーでは、浮動小数点計算の制御に、MXCSR レジスターの FTZ (Flush-to-Zero) と DAZ (denormals-are-zero) フラグが使用されます。インテル® ストリーミング SIMD 拡張命令 (インテル® SSE) とインテル® アドバンスト・ベクトル・エクステンション (インテル® AVX) (スカラーおよびベクトル命令を含む) は、FTZ および DAZ フラグを有効にすることにより、その恩恵が得られます。インテル® SSE 命令およびインテル® AVX を使用する浮動小数点演算は、FTZ/DAZ フラグが有効な場合に高速になります。これは、アプリケーションのパフォーマンス向上につながります。

次のマクロを使用して、フラグを手動でセットすることができます。

機能

FTZ を有効にする

_MM_SET_FLUSH_ZERO_MODE(_MM_FLUSH_ZERO_ON)

DAZ を有効にする

_MM_SET_DENORMALS_ZERO_MODE(_MM_DENORMALS_ZERO_ON)

これらのマクロのプロトタイプは、xmmintrin.h (FTZ) および pmmintrin.h (DAZ) にあります。