_mm_extract_epi64
Microsoft Specific
Emits the Streaming SIMD Extensions 4 (SSE4) instruction pextrq. This instruction extracts a 64-bit integer from a 128-bit parameter.
__int64 _mm_extract_epi64(
__m128i a,
const int ndx
);
Parameters
[in] a
A 128-bit parameter that contains two 64-bit integers. These integers can be signed or unsigned.[in] ndx
A constant index that specifies the location of the value to extract.
Result value
The return value can be expressed by the following equation:
r := (ndx == 0) ? a0 : a1
Requirements
Intrinsic |
Architecture |
---|---|
_mm_extract_epi64 |
x64 |
Header file <smmintrin.h>
Remarks
a0 is the lower 64 bits of parameter a. a1 is the higher 64 bits of parameter a.
Only the least significant bit of parameter ndx is used.
The result is the unsigned equivalent of the appropriate 64-bits in parameter a.
Before you use this intrinsic, software must ensure that the processor supports the instruction.
Example
#include <stdio.h>
#include <smmintrin.h>
int main ()
{
__m128i a;
const int ndx = 0;
a.m128i_i64[0] = 65535;
a.m128i_i64[1] = 248000000;
__int64 res = _mm_extract_epi64(a, ndx);
printf_s("Result res should equal %I64d: %I64d\n", a.m128i_i64[ndx], res);
return 0;
}
Result res should equal 65535: 65535