インテル® C++ コンパイラー 19.0 デベロッパー・ガイドおよびリファレンス
インテル® C++ コンパイラーは、拡張プロセッサー・ステートと拡張レジスターを管理する 12 の組込み関数を提供します。この組込み関数は、IA-32 およびインテル® 64 アーキテクチャーのサポートされているオペレーティング・システムで利用できます。
これらの組込み関数を使用する場合、次のように immintrin.h ファイルをインクルードします。
#include <immintrin.h>
組込み関数は、『Intel® 64 and IA-32 Architectures Software Developer's Manual, Volume 1, 2A、2B』および『Intel® Advanced Vector Extensions Programming Reference』 (英語) で説明されているように、ハードウェア・システム命令に直接マップされます。
拡張プロセッサー・ステートと拡張レジスターを管理する組込み関数には、以下の関数があります。
指定の拡張制御レジスターへの読み書きを行う 2 つの組込み関数。これらの組込み関数は、XGETBV 命令と XSETBV 命令にマップします。
x87 FPU、MMX、XMM、MXCSR レジスターの現在のステートを保存/復元する 4 つの組込み関数。これらの組込み関数は、FXSAVE、FXSAVE64、FXRSTOR、FXRSTOR64 命令にマップします。
x87 FPU、MMX、XMM、YMM、MXCSR レジスターの現在のステートを保存/復元する 6 つの組込み関数。これらの組込み関数は、XSAVE、XSAVE64、XSAVEOPT、XSAVEOPT64、XRSTOR、XRSTOR64 命令にマップします。