Register Insertion/Extraction Intrinsics for Streaming SIMD Extensions 4

These intrinsics enable data insertion and extraction between general purpose registers and XMM registers.

Intrinsic Syntax

Operation

Corresponding
SSE4 Instruction

__m128 _mm_insert_ps(__m128 dst, __m128 src, const int ndx)

Insert single precision float into packed single precision array element selected by index

INSERTPS

int _mm_extract_ps(__m128 src, const int ndx)

Extract single precision float from packed single precision array element selected by index

EXTRACTPS

int _mm_extract_epi8(__m128i src, const int ndx)

Extract integer byte from packed integer array element selected by index

PEXTRB

int _mm_extract_epi32(__m128i src, const int ndx)

Extract integer double word from packed integer array element selected by index

PEXTRD

__int64 _mm_extract_epi64(__m128i src, const int ndx)

Extract integer quad word from packed integer array element selected by index

PEXTRQ

int _mm_extract_epi16(__m128i src, int ndx)

Extract integer word from packed integer array element selected by index

PEXTRW

__m128i _mm_insert_epi8(__m128i s1, int s2, const int ndx)

Insert integer byte into packed integer array element selected by index

PINSRB

__m128i _mm_insert_epi32(__m128i s1, int s2, const int ndx)

Insert integer double word into packed integer array element selected by index

PINSRD

__m128i _mm_insert_epi64(__m128i s2, int s, const int ndx)

Insert integer quad word into packed integer array element selected by index

PINSRQ