__m64_padd1uus
[このドキュメントはプレビュー版であり、後のリリースで変更されることがあります。 Blank topics are included as placeholders.]
Microsoft 固有の仕様 →
IPF padd1.uus の順序付け (並列追加のバイト符号なし符号なし署名彩度のフォーム) を生成します。
__m64 __m64_padd1uus(
__m64 a,
__m64 b
);
パラメーター
[入力] a
追加するバイトを含む最初の 64 ビット フィールド。[入力] b
追加するバイトを含む 2 64 番目のビット フィールド。
必要条件
組み込み |
アーキテクチャ |
---|---|
__m64_padd1uus |
IPF |
ヘッダー ファイル <intrin.h>
解説
並列追加は 2 番目のオペランドの対応する 1 バイトに二つのオペランドの各バイトを追加し結果の対応するバイトに結果が表示されます。 1 番目のオペランドのバイトが符号と見なされ2 番目のオペランドのバイトは符号付きと見なされます。 結果のバイトが符号と見なされます。
加算 1 バイトの結果がオーバーフローすると値はバイトを飽和しバイトが 0xFF に設定されます。 2 番目のパラメーター (符号付き) が最初のパラメーターでは負の値を超える場合はバイトはアンダーフローに呼ばれゼロが設定されます。
使用例
// padd1uus.cpp
// processor: IPF
#include <stdio.h>
#include <intrin.h>
#pragma intrinsic(__m64_padd1uus)
int main()
{
__m64 m, n, result;
m.m64_i64 = 0xee0100;
n.m64_i64 = 0x00ff22;
// As the second parameter, 0xff = -1,
// so the second byte will add to zero.
result = __m64_padd1uus(m, n);
printf_s("__m64_padd1uus(0x%I64x, 0x%I64x) returns 0x%I64x\n",
m, n, result);
// This operation is not commutative, as this example shows.
// The byte containing 0xff will be considered unsigned and when
// 0x01 is added, will be saturated at the limit value of 0xff.
// The byte containing ee will be a negative integer, which
// when added to 0x00 will underflow, so that byte will be set
// to zero.
result = __m64_padd1uus(n, m);
printf_s("__m64_padd1uus(0x%I64x, 0x%I64x) returns 0x%I64x\n",
n, m, result);
}