__m64_pshladd2
Microsoft Specific
Emits the IPF Parallel Shift Left and Add (pshladd2) instruction.
__m64 __m64_pshladd2( __m64 a, const int nBit, __m64 b );
// 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]);
}
Input a: 0 1 2 100 Input b: 1 2 3 4 Results of pshladd2(a, 1, b): 1 4 7 204