_mm_minpos_epu16
Microsoft Specific
Emits the Streaming SIMD Extensions 4 (SSE4) instruction phminposuw. This instruction selects the minimum from a set.
__m128i _mm_minpos_epu16(
__m128i a
);
Parameters
- [in] a
A 128-bit parameter that contains eight 16-bit unsigned integers.
Result value
A 128-bit value. The lowest order 16 bits are the minimum value found in parameter a. The second-lowest order 16 bits are the index of the minimum value found in parameter a.
Requirements
Intrinsic |
Architecture |
---|---|
_mm_minpos_epu16 |
x86, x64 |
Header file <smmintrin.h>
Remarks
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;
a.m128i_u16[0] = 127;
a.m128i_u16[1] = 10000;
a.m128i_u16[2] = 65535;
a.m128i_u16[3] = 1;
a.m128i_u16[4] = 2;
a.m128i_u16[5] = 64;
a.m128i_u16[6] = 314;
a.m128i_u16[7] = 27;
__m128i res = _mm_minpos_epu16(a);
printf_s("Result res:\t%d\t%d\t%d\t%d\n\t\t%d\t%d\t%d\t%d\n",
res.m128i_u16[0], res.m128i_u16[1], res.m128i_u16[2],
res.m128i_u16[3], res.m128i_u16[4], res.m128i_u16[5],
res.m128i_u16[6], res.m128i_u16[7]);
return 0;
}
Result res: 1 3 0 0 0 0 0 0