インテル® C++ コンパイラー 19.0 デベロッパー・ガイドおよびリファレンス
インテル® アドバンスト・ベクトル・エクステンション 512 (インテル® AVX-512) 組込み関数のプロトタイプは、zmmintrin.h ヘッダーファイルで定義されていますが、これらの組込み関数を使用する場合、次のように immintrin.h ファイルをインクルードします。
#include <immintrin.h>
組込み関数名 |
演算 |
対応するインテル® AVX-512 命令 |
---|---|---|
_mm512_undefined |
要素が未定義の __m512i 型のベクトルを返します。 |
なし |
_mm512_undefined_epi32 |
要素が未定義の __m512i 型のベクトルを返します。 |
なし |
_mm512_undefined_pd |
要素が未定義の __m512d 型のベクトルを返します。 |
なし |
_mm512_undefined_ps |
要素が未定義の __m512 型のベクトルを返します。 |
なし |
_mm512_set1_pd |
float64 要素をデスティネーションのすべての要素にブロードキャストします。 |
なし |
_mm512_set1_ps |
float32 要素をデスティネーションのすべての要素にブロードキャストします。 |
なし |
_mm512_set4_pd |
繰り返される 4 つの要素のシーケンスを使用して float64 要素をデスティネーションにブロードキャストします。 |
なし |
_mm512_set4_ps |
繰り返される 4 つの要素のシーケンスを使用して float32 要素をデスティネーションにブロードキャストします。 |
なし |
_mm512_set_pd |
パックド float64 要素を指定された値にブロードキャストします。 |
なし |
_mm512_set_ps |
パックド float32 要素を指定された値にブロードキャストします。 |
なし |
_mm512_setr4_pd |
繰り返される 4 つの要素のシーケンスの逆順にパックド float64 要素をブロードキャストします。 |
なし |
_mm512_setr4_ps |
繰り返される 4 つの要素のシーケンスの逆順にパックド float32 要素をブロードキャストします。 |
なし |
_mm512_setr_pd |
指定された値の逆順にパックド float64 要素をブロードキャストします。 |
なし |
_mm512_setr_ps |
指定された値の逆順にパックド float32 要素をブロードキャストします。 |
なし |
_mm512_setzero_pd |
すべての要素が 0 に設定された __m512d 型のベクトルを返します。 |
VXORPD |
_mm512_setzero_ps |
すべての要素が 0 に設定された __m512 型のベクトルを返します。 |
VXORPS |
_mm512_undefined_pd |
要素が未定義の __m512d 型のベクトルを返します。 |
なし |
_mm512_undefined_ps |
要素が未定義の __m512 型のベクトルを返します。 |
なし |
_mm512_set1_epi8 |
a の 8 ビット整数をデスティネーションのすべての要素にブロードキャストします。 |
VPBROADCASTB |
_mm512_set1_epi32、 _mm512_mask_set1_epi32、 _mm512_maskz_set1_epi32 |
1 つの int32 要素をデスティネーションのすべての要素にブロードキャストします。 |
VPBROADCASTD |
_mm512_set1_epi64、 _mm512_mask_set1_epi64、 _mm512_maskz_set1_epi64 |
1 つの int64 要素をデスティネーションのすべての要素にブロードキャストします。 |
VPBROADCASTQ |
_mm512_set1_epi16 |
1 つの int16 要素をデスティネーションのすべての要素にブロードキャストします。 |
VPBROADCASTW |
_mm512_set4_epi32 |
繰り返される 4 つの要素のシーケンスを使用してパックド int32 要素をブロードキャストします。 |
なし |
_mm512_set4_epi64 |
繰り返される 4 つの要素のシーケンスを使用してパックド int64 要素をブロードキャストします。 |
なし |
_mm512_set_epi32 |
パックド int32 要素を指定された値にブロードキャストします。 |
なし |
_mm512_set_epi64 |
パックド int64 要素を指定された値にブロードキャストします。 |
なし |
_mm512_setr4_epi32 |
繰り返される 4 つの要素のシーケンスの逆順にパックド int32 要素をブロードキャストします。 |
なし |
_mm512_setr4_epi64 |
繰り返される 4 つの要素のシーケンスの逆順にパックド int64 要素をブロードキャストします。 |
なし |
_mm512_setr_epi32 |
指定された値の逆順にパックド int32 要素をブロードキャストします。 |
なし |
_mm512_setr_epi64 |
指定された値の逆順にパックド int64 要素をブロードキャストします。 |
なし |
_mm512_setzero_epi32 _mm512_setzero_si512 |
すべての要素が 0 に設定された __m512i 型のベクトルを返します。 |
VPXOR |
変数 | 定義 |
---|---|
k | セレクターとして使用される書き込みマスク |
a | 1 つ目のソースベクトルの要素 |
e | 設定操作の要素 |
a、b、c、d | 設定操作の要素 |
_mm512_set1_pd
extern __m512d __cdecl _mm512_set1_pd(double a);
a の float64 値をデスティネーションのすべての要素にブロードキャストします。
_mm512_set1_ps
extern __m512 __cdecl _mm512_set1_ps(float a);
a の float32 値をデスティネーションのすべての要素にブロードキャストします。
_mm512_set4_pd
extern __m512d __cdecl _mm512_set4_pd(double d, double c, double b, double a);
デスティネーションのパックド float64 要素を繰り返される 4 つの要素のシーケンス (dcba dcba) に設定します。
_mm512_set4_ps
extern __m512 __cdecl _mm512_set4_ps(float d, float c, float b, float a);
デスティネーションのパックド float32 要素を繰り返される 4 つの要素のシーケンス (dcba dcba dcba dcba) に設定します。
_mm512_set_pd
extern __m512 __cdecl _mm512_set_pd(float e7, float e6, float e5, float e4, float e3, float e2, float e1, float e0);
デスティネーションのパックド float64 要素を指定された値に設定します。
_mm512_set_ps
extern __m512 __cdecl _mm512_set_ps(float e15, float e14, float e13, float e12, float e11, float e10, float e9, float e8, float e7, float e6, float e5, float e4, float e3, float e2, float e1, float e0);
デスティネーションのパックド float32 要素を指定された値に設定します。
_mm512_setr4_pd
extern __m512d __cdecl _mm512_setr4_pd(double a, double b, double c, double d);
デスティネーションのパックド float64 要素を、繰り返される 4 つの要素のシーケンスの逆順にブロードキャストします。
_mm512_setr4_ps
extern __m512 __cdecl _mm512_setr4_ps(float a, float b, float c, float d);
デスティネーションのパックド float32 要素を、繰り返される 4 つの要素のシーケンスの逆順に設定します。
_mm512_setr_pd
extern __m512d __cdecl _mm512_setr_pd(double e0, double e1, double e2, double e3, double e4, double e5, double e6, double e7);
デスティネーションのパックド float64 要素を指定された値の逆順に設定します。
_mm512_setr_ps
extern __m512 __cdecl _mm512_setr_ps(float e0, float e1, float e2, float e3, float e4, float e5, float e6, float e7, float e8, float e9, float e10, float e11, float e12, float e13, float e14, float e15);
デスティネーションのパックド float32 要素を指定された値の逆順に設定します。
_mm512_setzero_pd
extern __m512 __cdecl _mm512_setzero_pd(void);
すべての要素が 0 に設定された __m512d 型のベクトルを返します。
_mm512_setzero_ps
extern __m512 __cdecl _mm512_setzero_ps(void);
すべての要素が 0 に設定された __m512 型のベクトルを返します。
_mm512_undefined_pd
extern __m512 __cdecl _mm512_undefined_pd(void)
要素が未定義の __m512d 型のベクトルを返します。
_mm512_undefined_ps
extern __m512 __cdecl _mm512_undefined_ps(void)
要素が未定義の __m512 型のベクトルを返します。
_mm512_set1_epi16
extern __m512i __cdecl _mm512_set1_epi16(short a);
a の int16 をデスティネーションのすべての要素にブロードキャストします。
_mm512_set1_epi8
extern __m512i __cdecl _mm512_set1_epi8(char a);
a の int8 をデスティネーションのすべての要素にブロードキャストします。
_mm512_set1_epi32
extern __m512i __cdecl _mm512_set1_epi32(int a);
a の int32 をデスティネーションのすべての要素にブロードキャストします。
_mm512_mask_set1_epi32
extern __m512i __cdecl _mm512_mask_set1_epi32(__m512i src, __mmask16 k, int a);
書き込みマスク k を使用して、a の int32 をデスティネーションのすべての要素にブロードキャストします (マスクの対応するビットが設定されていない場合は src の要素がコピーされます)。
_mm512_maskz_set1_epi32
extern __m512i __cdecl _mm512_maskz_set1_epi32(__mmask16 k, int a);
ゼロマスク k を使用して、a の int32 をデスティネーションのすべての要素にブロードキャストします (マスクの対応するビットが設定されていない場合は要素が 0 に設定されます)。
_mm512_set1_epi64
extern __m512i __cdecl _mm512_set1_epi64(__int64 a);
a の int64 をデスティネーションのすべての要素にブロードキャストします。
_mm512_mask_set1_epi64
extern __m512i __cdecl _mm512_mask_set1_epi64(__m512i src, __mmask8 k, __int64 a);
書き込みマスク k を使用して、a の int64 をデスティネーションのすべての要素にブロードキャストします (マスクの対応するビットが設定されていない場合は src の要素がコピーされます)。
_mm512_maskz_set1_epi64
extern __m512i __cdecl _mm512_maskz_set1_epi64(__mmask8 k, __int64 a);
ゼロマスク k を使用して、a の int64 をデスティネーションのすべての要素にブロードキャストします (マスクの対応するビットが設定されていない場合は要素が 0 に設定されます)。
_mm512_set4_epi32
extern __m512i __cdecl _mm512_set4_epi32(int d, int c, int b, int a);
デスティネーションのパックド int32 要素を、繰り返される 4 つの要素のシーケンスに設定します。
_mm512_set4_epi64
extern __m512i __cdecl _mm512_set4_epi64(__int64 d, __int64 c, __int64 b, __int64 a);
デスティネーションのパックド int64 要素を、繰り返される 4 つの要素のシーケンスに設定します。
_mm512_set_epi32
extern __m512i __cdecl _mm512_set_epi32(int e15, int e14, int e13, int e12, int e11, int e10, int e9, int e8, int e7, int e6, int e5, int e4, int e3, int e2, int e1, int e0);
デスティネーションのパックド int32 を指定された値に設定します。
_mm512_set_epi64
extern __m512i __cdecl _mm512_set_epi64(__int64 e7, __int64 e6, __int64 e5, __int64 e4, __int64 e3, __int64 e2, __int64 e1, __int64 e0);
デスティネーションのパックド int64 を指定された値に設定します。
_mm512_setr4_epi32
extern __m512i __cdecl _mm512_setr4_epi32(int a, int b, int c, int d);
デスティネーションのパックド int32 を繰り返される 4 つの要素のシーケンスの逆順に設定します。
_mm512_setr4_epi64
extern __m512i __cdecl _mm512_setr4_epi64(__int64 a, __int64 b, __int64 c, __int64 d);
デスティネーションのパックド int64 を繰り返される 4 つの要素のシーケンスの逆順に設定します。
_mm512_setr_epi32
extern __m512i __cdecl _mm512_setr4_epi32(int a, int b, int c, int d);
デスティネーションのパックド int32 を指定された値の逆順に設定します。
_mm512_setr_epi64
extern __m512i __cdecl _mm512_setr_epi64(__int64 e0, __int64 e1, __int64 e2, __int64 e3, __int64 e4, __int64 e5, __int64 e6, __int64 e7);
デスティネーションのパックド int64 を指定された値の逆順に設定します。
_mm512_setzero_epi32
extern __m512 __cdecl _mm512_setzero(void);
すべての要素が 0 に設定された __m512i 型のベクトルを返します。
_mm512_setzero_si512
extern __m512 __cdecl _mm512_setzero(void);
すべての要素が 0 に設定された __m512i 型のベクトルを返します。
_mm512_undefined_epi32
extern __m512 __cdecl _mm512_undefined_epi32(void);
要素が未定義の __m512i 型のベクトルを返します。
_mm512_setzero
extern __m512 __cdecl _mm512_setzero(void);
すべての要素が 0 に設定された __m512 型のベクトルを返します。
_mm512_undefined
extern __m512 __cdecl _mm512_undefined(void);
要素が未定義の __m512 型のベクトルを返します。