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

_subborrow_u32()、_subborrow_u64()

32 ビット/64 ビット符号なし整数値とボローイン値の合計を計算して、32 ビット/64 ビット符号なし整数値から結果を減算します。対応する第 4 世代インテル® Core™ プロセッサー拡張命令は V です。

構文

extern unsigned char _subborrow_u32(unsigned char b_in, unsigned int src1, unsigned int src2, unsigned int *diff_out);

extern unsigned char _subborrow_u64(unsigned char b_in, unsigned __int64 src1, unsigned __int64 src2, unsigned __int64 *diff_out);

パラメーター

b_in

加算に使用するボローイン値

src1

加算に使用する 32 ビット/64 ビットの整数ソース

src2

減算に使用する 32 ビット/64 ビットの整数ソース

*diff_out

格納されているメモリー位置へのポインター

説明

32 ビット/64 ビット符号なし整数値 src2 とボローイン値 b_in の合計を計算して、32 ビット/64 ビット符号なし整数値 src1 から結果を減算します。ボローイン値は、b_in 入力値が非ゼロの場合は '1'、それ以外の場合は '0' です。減算の結果は、diff_out 引数で指定されるメモリー位置に格納されます。

 *diff_out = src1 - (src2 + (b_in !=0 ? 1 : 0))

この組込み関数は、diff_out により指定されるメモリー位置の有効性チェックを行わないため、減算の結果を格納せずにボローアウト値の有無を調べることはできません。

戻り値

減算により生成されるボローアウト値。減算の結果は、diff_out 引数で指定されるメモリー位置に格納されます。