Intel® C++ Compiler 16.0 User and Reference Guide

_mm512_sbb_epi32/_m512_mask_sbb_epi32

Subtracts three int32 vectors with borrow. The corresponding instruction is VPSBBD. This intrinsic only applies to Intel® Many Integrated Core Architecture (Intel® MIC Architecture).

Syntax

Without Mask

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

With Mask

extern _m512i __cdecl _mm512_mask_sbb_epi32(_m512i v2, __mmask16 k1, __mmask16 k2, _m512i v3, __mmask16 * k2_res);

Parameters

v2

int32 vector from which subtraction is done

v3

int32 vector subtracted from v2

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

k2_res

mask register; corresponding element  subtracted from v2

borrow

mask register; borrowed value of subtraction written into nth bit

Description

Performs an element-by-element three-input subtraction of the int32 vector v3, as well as the corresponding bit of k2_res, from int32 vector v2. The borrowed value from the subtraction difference for the nth element is written into the nth bit of vector mask k2_res.

The masked variant has one additional argument: k1. Only those elements the source registers with the corresponding bit set in vector mask k1 are used for computing. Elements in v2 with corresponding bit clear in k1 are copied as is to the resulting vector.

Returns

Returns the result of the subtraction operation. The borrowed value is written into k2_res.