Intel® C++ Compiler Classic Developer Guide and Reference

ID 767249
Date 3/31/2023
Public

A newer version of this document is available. Customers should click here to go to the newest version.

Document Table of Contents

Load Intrinsics

Intel® Streaming SIMD Extensions 2 (Intel® SSE2) intrinsics for integer load operations are listed in this topic. The prototypes for Intel® SSE2 intrinsics are in the emmintrin.h header file.

To use these intrinsics, include the immintrin.h file as follows:

#include <immintrin.h>

The results of each intrinsic operation are placed in registers. The information about what is placed in each register appears in the tables below, in the detailed explanation of each intrinsic. R, R0, and R1 represent the registers in which results are placed.

Intrinsic Name

Operation

Corresponding Intel® SSE2 Instruction

_mm_load_si128

Load

MOVDQA

_mm_loadu_si128

Load

MOVDQU

_mm_loadl_epi64

Load and zero

MOVQ

_mm_load_si128

__m128i _mm_load_si128(__m128i const*p);

Loads 128-bit value. Address p must be 16-byte aligned.

R

*p

_mm_loadu_si128

__m128i _mm_loadu_si128(__m128i const*p);

Loads 128-bit value. Address p not need be 16-byte aligned.

R

*p

_mm_loadl_epi64

__m128i _mm_loadl_epi64(__m128i const*p);

Load the lower 64 bits of the value pointed to by p into the lower 64 bits of the result, zeroing the upper 64 bits of the result.

R0

R1

*p[63:0]

0x0