Was this page helpful?
Your feedback about this content is important. Let us know what you think.
Additional feedback?
1500 characters remaining
Collapse the table of content
Expand the table of content


Microsoft Specific

Emits the Streaming SIMD Extensions 4 (SSE4) instruction pmovzxdq. This instruction performs a conversion of unsigned integers from 32-bit to 64-bit.

__m128i _mm_cvtepu32_epi64( 
   __m128i a

[in] a

A 128-bit parameter that contains two unsigned 32-bit integers in the lower 64 bits.

A 128-bit parameter that contains two 64-bit integers. These integers are zero-extended representations of the 32-bit integers that are supplied by a.

The result can be defined with the following equations:

r0 = a0
r1 = 0
r2 = a1
r3 = 0




x86, x64

Header file <smmintrin.h>

r0-r3 and a0-a3 are the sequentially ordered 32-bit components of return value r and parameter a, respectively, where r0 and a0 are the least significant 32 bits.

Before you use this intrinsic, software must ensure that the processor supports the instruction.

#include <stdio.h>
#include <smmintrin.h>

int main ()
    __m128i a;

    a.m128i_u32[0] = 0;
    a.m128i_u32[1] = 4294967295;

    __m128i res = _mm_cvtepu32_epi64(a);

    printf_s("Original lowest 32 bit integers:\n%u,\t%u\n\n",
        a.m128i_u32[1], a.m128i_u32[0]);

    printf_s("Resulting 64 bit integers:\n%I64i,\t%I64i\n",
        res.m128i_i64[1], res.m128i_i64[0]);

    return 0;
Original lowest 32 bit integers:
4294967295,     0

Resulting 64 bit integers:
4294967295,     0

Community Additions

© 2015 Microsoft