Intel® C++ Compiler 16.0 User and Reference Guide

_mm512_addsetc_epi32/ _mm512_mask_addsetc_epi32

Adds int32 vectors and sets mask to carry. The corresponding instruction is VPADDSETCD. This intrinsic only applies to Intel® Many Integrated Core Architecture (Intel® MIC Architecture).

Syntax

Without Mask

extern _m512i __cdecl _mm512_addsetc_epi32(_m512i v2, _m512i v3, __mmask16* k2_res);

With Mask

extern _m512i __cdecl _mm512_mask_addsetc_epi32(_m512i v2, __mmask16 k1, __mmask16 k1_old, _m512i v3, __mmask16* k2_res);

Parameters

v2

int32 vector used for the addition operation

v3

int32 vector also used for addition operation

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

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

k2_res

vector mask register where the carry over value is stored

Description

Performs an element-by-element addition between int32 vector v2 and int32 vector v3. The carry from the sum is returned in k2_res.

The masked variant has two additional arguments: v1_old and k1. Those elements of v2 and v3 with the corresponding bits clear in vector mask k1 are not used in the computation.  Instead corresponding elements from v2 are copied to the resulting vector, and corresponding elements from v1_old are copied to k2_res.

Returns

Returns the result of the addition operation. Carry over value is returned in k2_res.