__m64_pavgsub2
[このドキュメントはプレビュー版であり、後のリリースで変更されることがあります。 Blank topics are included as placeholders.]
Microsoft 固有の仕様 →
並列 pavgsub2 平均減算 () 命令をバイトのフォームを生成します。
__m64 __m64_pavgsub2(
__m64 a,
__m64 b
);
パラメーター
[入力] a
付き 4 ビットの符号なし短整数の配列を含む __m64 の和集合。[入力] b
付き 4 ビットの符号なし短整数の配列を含む __m64 の和集合。
戻り値
16 ビット符号付き整数として解釈されます (ai[] - [/2])bi の結果の配列を含む __m64 の和集合。
必要条件
組み込み |
アーキテクチャ |
---|---|
__m64_pavgsub2 |
IPF |
ヘッダー ファイル <intrin.h>
解説
入力配列 b の数は入力配列 a の数から減算します。 結果は i が元の配列の 4 ビット符号なし整数にラベルを付ける場合 (ai[] – [/2]) bi の結果を含む符号なし短整数の配列を含む __m64 の共用体です。 ほとんどの場合各平均の不適切な結果は最も近い整数に丸められます。
使用例
// pavgsub2.cpp
// processor: IPF
#include <stdio.h>
#include <intrin.h>
#pragma intrinsic(__m64_pavgsub2)
void print4u(unsigned __int16* ia)
{
printf_s("{ %8u, %8u, %8u, %8u }\n", ia[0], ia[1], ia[2], ia[3] );
}
void print4(__int16* ia)
{
printf_s("{ %8d, %8d, %8d, %8d }\n", ia[0], ia[1], ia[2], ia[3] );
}
int main()
{
__m64 m, n, result;
unsigned __int16 ra[4], i;
unsigned __int16 ma[4] = { 10, 100, 70, 10000 };
unsigned __int16 na[4] = { 1, 95, 50, 5000 };
for (i = 0; i < 4; i++)
{
m.m64_u16[i] = ma[i];
n.m64_u16[i] = na[i];
}
printf_s("a: \n");
print4u(ma);
printf_s("b: \n");
print4u(na);
printf_s("\n");
result = __m64_pavgsub2(m, n);
printf_s("Parallel Average Subtract (a[]-b[])/2 : \n");
print4(result.m64_i16);
printf_s("\n");
result = __m64_pavgsub2(n, m);
printf_s("Parallel Average Subtract (b[]-a[])/2 : \n");
print4(result.m64_i16);
printf_s("\n");
}