Intel® C++ Compiler 16.0 User and Reference Guide
Multiply and add int32 vectors with alternating elements. The corresponding instruction is VPMADD233D. This intrinsic only applies to Intel® Many Integrated Core Architecture (Intel® MIC Architecture).
Without Mask extern __m512i __cdecl _mm512_fmadd233_epi32(__m512i v2, __m512i v3); |
With Mask extern __m512i __cdecl _mm512_mask_fmadd233_epi32(__m512i v1_old, __mmask16 k1, __m512i v2, __m512i v3); |
v2 |
int32 vector multiplied to certain elements of int32 vector v3 |
v3 |
Certain elements of int32 vector are multiplied to int32 vector v2; certain elements are then added to the product of v2 and v3 |
v1_old |
Source vector that retains old values of the destination vector; the resulting vector gets corresponding elements from v1_old for zero mask bits |
k1 |
Writemask; only those elements of the source vectors with corresponding bit set to '1' in the k1 mask are computed and stored in the result; elements in the result vector corresponding to zero bit in k1 are copied from corresponding elements of vector v1_old |
Performs a multiplication between int32 vector v2 and certain elements of int32 vector v3, then adds the result to certain elements of int32 vector v3.
The masked variant has one additional argument: k1. Only those elements in source registers with the corresponding bit set in vector mask k1 are used for computing. The remaining elements of the resulting vector are filled with corresponding elements from v1_old.
Returns the result of the multiplication-addition operation.