インテル® C++ コンパイラー 19.0 デベロッパー・ガイドおよびリファレンス

インテル® アドバンスト・ベクトル・エクステンション 512 (インテル® AVX-512) 4FMAPS 命令の組込み関数

インテル® アドバンスト・ベクトル・エクステンション 512 (インテル® AVX-512) 4FMAPS 命令の組込み関数のプロトタイプは、zmmintrin.h ヘッダーファイルで定義されていますが、

これらの組込み関数を使用する場合、次のように immintrin.h ファイルをインクルードします。

#include <immintrin.h>


_mm512_4fmadd_ps

__mm512i _mm512_4fmadd_ps (__m512 c, __m512 a0, __m512 a1, __m512 a2, __m512 a3, __m128 * b)
変数 定義
an 1 つ目のソースブロック - 4 つのベクトル
b 2 つ目のソースブロックへのポインター
c 3 つ目のソース - アキュムレーター

命令: v4fmaddps zmm1, zmm2+3, m128

ソース・レジスター・ブロック {a0, a1, a2, a3} のパックド単精度浮動小数点値に b がポイントする浮動小数点値を掛けて、結果を c に累積します。



_mm512_mask_4fmadd_ps

__mm512i _mm512_mask_4fmadd_ps (__m512 c, __mmask16 k, __m512 a0, __m512 a1, __m512 a2, __m512 a3, __m128 * b)
変数 定義
an 1 つ目のソースブロック - 4 つのベクトル
b 2 つ目のソースブロックへのポインター
c 3 つ目のソース - アキュムレーター
k セレクターとして使用されるマスク

命令: v4fmaddps zmm1 {k}, zmm2+3, m128

マスク k を使用して、ソース・レジスター・ブロック {a0, a1, a2, a3} のパックド単精度浮動小数点値に b がポイントする浮動小数点値を掛けて、結果を c に累積します。マスクの対応するビットが設定されていない場合は c の要素がコピーされます。



_mm512_maskz_4fmadd_ps

__mm512i _mm512 _maskz_4fmadd_ps (__m512 c, __mmask16 k, __m512 a0, __m512 a1, __m512 a2, __m512 a3, __m128 * b)
変数 定義
an 1 つ目のソースブロック - 4 つのベクトル
b 2 つ目のソースブロックへのポインター
c 3 つ目のソース - アキュムレーター
k セレクターとして使用されるマスク

命令: v4fmaddps zmm {k}, zmm+3, m128

マスク k を使用して、ソース・レジスター・ブロック {a0, a1, a2, a3} のパックド単精度浮動小数点値に b がポイントする浮動小数点値を掛けて、結果を c に累積します。マスクの対応するビットが設定されていない場合は要素が 0 に設定されます。



_mm512_4fnmadd_ps

__mm512i _mm512_4fnmadd_ps (__m512 c, __m512 a0, __m512 a1, __m512 a2, __m512 a3, __m128 * b)
変数 定義
an 1 つ目のソースブロック - 4 つのベクトル
b 2 つ目のソースブロックへのポインター
c 3 つ目のソース - アキュムレーター

命令: v4fnmaddps zmm1, zmm2+3, m128

ソース・レジスター・ブロック {a0, a1, a2, a3} のパックド単精度浮動小数点値に b がポイントする浮動小数点値を掛けて、符号を反転した結果を c に累積します。



_mm512_mask_4fnmadd_ps

__mm512i _mm512_mask_4fnmadd_ps (__m512 c, __mmask16 k, __m512 a0, __m512 a1, __m512 a2, __m512 a3, __m128 * b)
変数 定義
an 1 つ目のソースブロック - 4 つのベクトル
b 2 つ目のソースブロックへのポインター
c 3 つ目のソース - アキュムレーター
k セレクターとして使用されるマスク

命令: v4fnmaddps zmm1 {k}, zmm2+3, m128

マスク k を使用して、ソース・レジスター・ブロック {a0, a1, a2, a3} のパックド単精度浮動小数点値に b がポイントする浮動小数点値を掛けて、符号を反転した結果を c に累積します。マスクの対応するビットが設定されていない場合は c の要素がコピーされます。



_mm512_maskz_4fnmadd_ps

__mm512i _mm512_maskz_4fnmadd_ps (__m512 c, __mmask16 k, __m512 a0, __m512 a1, __m512 a2, __m512 a3, __m128 * b)
変数 定義
an 1 つ目のソースブロック - 4 つのベクトル
b 2 つ目のソースブロックへのポインター
c 3 つ目のソース - アキュムレーター
k セレクターとして使用されるマスク

命令: v4fnmaddps zmm1 {k}, zmm2+3, m128

マスク k を使用して、ソース・レジスター・ブロック {a0, a1, a2, a3} のパックド単精度浮動小数点値に b がポイントする浮動小数点値を掛けて、符号を反転した結果を c に累積します。マスクの対応するビットが設定されていない場合は要素が 0 に設定されます。



_mm_4fmadd_ss

__mm512i _mm_4fmadd_ss (__m128 c, __m128 a0, __m128 a1, __m128 a2, __m128 a3, __m128 * b)
変数 定義
an 1 つ目のソースブロック - 4 つのベクトル
b 2 つ目のソースブロックへのポインター
c 3 つ目のソース - アキュムレーター

命令: v4fmaddss xmm1, xmm2+3, m128

ソース・レジスター・ブロック {a0, a1, a2, a3} の下位のパックドスカラー単精度浮動小数点値に b がポイントする浮動小数点値を掛けて、結果の下位要素を c に累積します。



_mm_mask_4fmadd_ss

__mm512i _mm_mask_4fmadd_ss (__m128 c, __mmask8 k, __m128 a0, __m128 a1, __m128 a2, __m128 a3, __m128 * b)
変数 定義
an 1 つ目のソースブロック - 4 つのベクトル
b 2 つ目のソースブロックへのポインター
c 3 つ目のソース - アキュムレーター
k セレクターとして使用されるマスク

命令: v4fmaddss xmm1 {k}, xmm2+3, m128

マスク k を使用して、ソース・レジスター・ブロック {a0, a1, a2, a3} の下位のパックドスカラー単精度浮動小数点値に b がポイントする浮動小数点値を掛けて、結果の下位要素を c に累積します。マスクの対応するビットが設定されていない場合は c の要素がコピーされます。



_mm_maskz_4fmadd_ss

__mm512i _mm_maskz_4fmadd_ss (__m128 c, __mmask8 k, __m128 a0, __m128 a1, __m128 a2, __m128 a3, __m128 * b)
変数 定義
an 1 つ目のソースブロック - 4 つのベクトル
b 2 つ目のソースブロックへのポインター
c 3 つ目のソース - アキュムレーター
k セレクターとして使用されるマスク

命令: v4fmaddss xmm1 {k}, xmm2+3, m128

マスク k を使用して、ソース・レジスター・ブロック {a0, a1, a2, a3} の下位のパックドスカラー単精度浮動小数点値に b がポイントする浮動小数点値を掛けて、結果の下位要素を c に累積します。マスクの対応するビットが設定されていない場合は要素が 0 に設定されます。



_mm_4fnmadd_ss

__mm512i _mm_4fnmadd_ss (__m128 c, __m128 a0, __m128 a1, __m128 a2, __m128 a3, __m128 * b)
変数 定義
an 1 つ目のソースブロック - 4 つのベクトル
b 2 つ目のソースブロックへのポインター
c 3 つ目のソース - アキュムレーター

命令: v4fnmaddss xmm1, xmm2+3, m128

ソース・レジスター・ブロック {a0, a1, a2, a3} の下位のパックドスカラー単精度浮動小数点値に b がポイントする浮動小数点値を掛けて、符号を反転した結果の下位要素を c に累積します。



_mm_mask_4fnmadd_ss

__mm512i _mm_mask_4fnmadd_ss (__m128 c, __mmask8 k, __m128 a0, __m128 a1, __m128 a2, __m128 a3, __m128 * b)
変数 定義
an 1 つ目のソースブロック - 4 つのベクトル
b 2 つ目のソースブロックへのポインター
c 3 つ目のソース - アキュムレーター
k セレクターとして使用されるマスク

命令: v4fnmaddss xmm1 {k}, xmm2+3, m128

マスク k を使用して、ソース・レジスター・ブロック {a0, a1, a2, a3} の下位のパックドスカラー単精度浮動小数点値に b がポイントする浮動小数点値を掛けて、符号を反転した結果の下位要素を c に累積します。マスクの対応するビットが設定されていない場合は c の要素がコピーされます。



_mm_maskz_4fnmadd_ss

__mm512i _mm_maskz_4fnmadd_ss (__m128 c, __mmask8 k, __m128 a0, __m128 a1, __m128 a2, __m128 a3, __m128 * b)
変数 定義
an 1 つ目のソースブロック - 4 つのベクトル
b 2 つ目のソースブロックへのポインター
c 3 つ目のソース - アキュムレーター
k セレクターとして使用されるマスク

命令: v4fnmaddss xmm1 {k}, xmm2+3, m128

マスク k を使用して、ソース・レジスター・ブロック {a0, a1, a2, a3} の下位のパックドスカラー単精度浮動小数点値に b がポイントする浮動小数点値を掛けて、符号を反転した結果の下位要素を c に累積します。マスクの対応するビットが設定されていない場合は要素が 0 に設定されます。