インテル® C++ コンパイラー 18.0 デベロッパー・ガイドおよびリファレンス
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 引数で指定されるメモリー位置に格納されます。