__m64_pshladd2
[このドキュメントはプレビュー版であり、後のリリースで変更されることがあります。 Blank topics are included as placeholders.]
Microsoft 固有の仕様 →
(pshladd2) のままで追加は並列の命令を生成します。
__m64 __m64_pshladd2(
__m64 a,
const int nBit,
__m64 b
);
パラメーター
[入力] a
左シフトされる 4 個の 16 ビット符号付き整数の配列を含む __m64 の共用体をに追加します。[入力] nBit
左シフトするビット数だけ最初の配列の整数。 0. から 3 まで有効な値。[入力] b
追加するに 4 個の 16 ビット符号付き整数の配列を含む __m64 の和集合。
戻り値
要素がここで説明する式に従って計算される 4 個の 16 ビット符号付き整数の配列を含む __m64 の和集合。
必要条件
組み込み |
アーキテクチャ |
---|---|
__m64_pshladd2 |
IPF |
ヘッダー ファイル <intrin.h>
解説
この命令ではで計算します :
c[i] = a[i] << nBit + b[i]
a と b の 4 要素 i でそれぞれに __m64 の共用体として配列 c。
使用例
// m64_pshladd2.c
// processor: IPF
#include <stdio.h>
#include <intrin.h>
#pragma intrinsic(__m64_pshladd2)
int main()
{
__m64 a, b, result;
a.m64_i16[0] = 0;
a.m64_i16[1] = 1;
a.m64_i16[2] = 2;
a.m64_i16[3] = 100;
b.m64_i16[0] = 1;
b.m64_i16[1] = 2;
b.m64_i16[2] = 3;
b.m64_i16[3] = 4;
printf_s("Input a: %d %d %d %d\n", a.m64_i16[0],
a.m64_i16[1], a.m64_i16[2],
a.m64_i16[3]);
printf_s("Input b: %d %d %d %d\n", b.m64_i16[0],
b.m64_i16[1], b.m64_i16[2],
b.m64_i16[3]);
result = __m64_pshladd2(a, 1, b);
printf_s("Results of pshladd2(a, 1, b): %d %d %d %d\n",
result.m64_i16[0],
result.m64_i16[1], result.m64_i16[2],
result.m64_i16[3]);
}