Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
Microsoft Specific
Emits the IPF Shift Right Pair (shrp) instruction.
__m64 __m64_shrp(
__m64 a,
__m64 b,
const int nBit
);
Parameters
[in] a
An __m64 union containing a 64-bit data field.[in] b
An __m64 union containing a 64-bit data field.[in] nBit
The number of bits to right shift the concatenated pair. Valid values from 0 to 63.
Return Value
The least significant 64 bits of the concatenated, right-shifted pair.
Requirements
Intrinsic |
Architecture |
---|---|
__m64_shrp |
IPF |
Header file <intrin.h>
Remarks
Two 64-bit data fields are concatenated, a being placed in the upper 64 bits and b in the lower 64 bits; the resulting 128-bit value is right shifted by nBit bits and the lower 64 bits are returned.
Example
// shrp.cpp
// processor: IPF
#include <stdio.h>
#include <intrin.h>
#pragma intrinsic(__m64_shrp)
int main()
{
__m64 m, n, result;
m.m64_u64 = 0x1111111111111111;
n.m64_u64 = 0x2222222222222222;
result = __m64_shrp(m, n, 32);
printf_s("__m64_shrp(0x%I64x, 0x%I64x, %d) returns\n0x%I64x\n",
m, n, 32, result);
result = __m64_shrp(m, n, 17);
printf_s("__m64_shrp(0x%I64x, 0x%I64x, %d) returns\n0x%I64x\n",
m, n, 17, result);
}
__m64_shrp(0x1111111111111111, 0x2222222222222222, 32) returns 0x1111111122222222 __m64_shrp(0x1111111111111111, 0x2222222222222222, 17) returns 0x8888911111111111