インテル® C++ コンパイラー 19.0 デベロッパー・ガイドおよびリファレンス
インテル® C++ コンパイラーには、ベクトル演算関数を計算するための SVML (Short Vector Mathematical Library) 組込み関数が用意されています。この組込み関数は、IA-32 およびインテル® 64 アーキテクチャーのサポートされているオペレーティング・システムで利用できます。SVML 組込み関数のプロトタイプは、ヘッダーファイル immintrin.h 内にあります。
これらの組込み関数を使用する場合、次のように immintrin.h ファイルをインクルードします。
#include <immintrin.h>
SVML 組込み関数に対応する命令はありません。
SVML 組込み関数は、__m128、__m128d、__m256、__m256d、および __m256i データ型を使用するベクトル用のスカラー数学演算です。パックドベクトル引数を受け取り、その各要素に対して操作を実行して、結果を格納したパックドベクトルを返します。
例えば、_mm_sin_ps 組込み関数の引数は、4 つの 32 ビット浮動小数点数からなる 128 ビットのパックドベクトルです。この組込み関数は、4 つの要素の正弦を計算して、結果を格納した 128 ビットのパックドベクトルを返します。
SVML 組込み関数を使用したほうが、スカラー数学関数を繰り返し呼び出すよりも早く処理することができます。ただし、組込み関数とスカラー関数では精度が異なります。
svml ライブラリーの多くのルーチンは、互換マイクロプロセッサーよりもインテル製マイクロプロセッサーでより最適化されます。