Packed Format Conversion Intrinsics for Streaming SIMD Extensions 4

These intrinsics convert a packed integer to a zero-extended or sign-extended integer with wider type.

Intrinsic Syntax

Operation

Corresponding
SSE4 Instruction

__m128i _mm_cvtepi8_epi32(__m128i a)

Sign extend 4 bytes into 4 double words

PMOVSXBD

__m128i _mm_cvtepi8_epi64 (__m128i a)

Sign extend 2 bytes into 2 quad words

PMOVSXBQ

__m128i _mm_cvtepi8_epi16(__m128i a)

Sign extend 8 bytes into 8 words

PMOVSXBW

__m128i _mm_cvtepi32_epi64(__m128i a)

Sign extend 2 double words into 2 quad words

PMOVSXDQ

__m128i _mm_cvtepi16_epi32(__m128i a)

Sign extend 4 words into 4 double words

PMOVSXWD

__m128i _mm_cvtepi16_epi64(__m128i a)

Sign extend 2 words into 2 quad words

PMOVSXWQ

__m128i _mm_cvtepu8_epi32(__m128i a)

Zero extend 4 bytes into 4 double words

PMOVZXBD

__m128i _mm_cvtepu8_epi64(__m128i a)

Zero extend 2 bytes into 2 quad words

PMOVZXBQ

__m128i _mm_cvtepu8_epi16(__m128i a)

Zero extend 8 bytes into 8 word

PMOVZXBW

__m128i _mm_cvtepu32_epi64(__m128i a)

Zero extend 2 double words into 2 quad words

PMOVZXDQ

__m128i _mm_cvtepu16_epi32(__m128i a)

Zero extend 4 words into 4 double words

PMOVZXWD

__m128i _mm_cvtepu16_epi64(__m128i a)

Zero extend 2 words into 2 quad words

PMOVZXWQ