MMX(TM) Technology Shift Intrinsics

Intrinsic Name Shift Direction Shift Type Corresponding Instruction

_mm_sll_pi16

left

Logical

PSLLW

_mm_slli_pi16

left

Logical

PSLLWI

_mm_sll_pi32

left

Logical

PSLLD

_mm_slli_pi32

left

Logical

PSLLDI

_mm_sll_si64

left

Logical

PSLLQ

_mm_slli_si64

left

Logical

PSLLQI

_mm_sra_pi16

right

Arithmetic

PSRAW

_mm_srai_pi16

right

Arithmetic

PSRAWI

_mm_sra_pi32

right

Arithmetic

PSRAD

_mm_srai_pi32

right

Arithmetic

PSRADI

_mm_srl_pi16

right

Logical

PSRLW

_mm_srli_pi16

right

Logical

PSRLWI

_mm_srl_pi32

right

Logical

PSRLD

_mm_srli_pi32

right

Logical

PSRLDI

_mm_srl_si64

right

Logical

PSRLQ

_mm_srli_si64

right

Logical

PSRLQI

 

__m64 _mm_sll_pi16 (__m64 m, __m64 count)

Shift four 16-bit values in m left the amount specified by count while shifting in zeros.

 

__m64 _mm_slli_pi16 (__m64 m, int count)

Shift four 16-bit values in m left the amount specified by count while shifting in zeros. For the best performance, count should be a constant.

 

__m64 _mm_sll_pi32 (__m64 m, __m64 count)

Shift two 32-bit values in m left the amount specified by count while shifting in zeros.

 

__m64 _mm_slli_pi32 (__m64 m, int count)

Shift two 32-bit values in m left the amount specified by count while shifting in zeros. For the best performance, count should be a constant.

 

__m64 _mm_sll_si64 (__m64 m, __m64 count)

Shift the 64-bit value in m left the amount specified by count while shifting in zeros.

 

__m64 _mm_slli_si64 (__m64 m, int count)

Shift the 64-bit value in m left the amount specified by count while shifting in zeros. For the best performance, count should be a constant.

 

__m64 _mm_sra_pi16 (__m64 m, __m64 count)

Shift four 16-bit values in m right the amount specified by count while shifting in the sign bit.

 

__m64 _mm_srai_pi16 (__m64 m, int count)

Shift four 16-bit values in m right the amount specified by count while shifting in the sign bit. For the best performance, count should be a constant.

 

__m64 _mm_sra_pi32 (__m64 m, __m64 count)

Shift two 32-bit values in m right the amount specified by count while shifting in the sign bit.

 

__m64 _mm_srai_pi32 (__m64 m, int count)

Shift two 32-bit values in m right the amount specified by count while shifting in the sign bit. For the best performance, count should be a constant.

 

__m64 _mm_srl_pi16 (__m64 m, __m64 count)

Shift four 16-bit values in m right the amount specified by count while shifting in zeros.

 

__m64 _mm_srli_pi16 (__m64 m, int count)

Shift four 16-bit values in m right the amount specified by count while shifting in zeros. For the best performance, count should be a constant.

 

__m64 _mm_srl_pi32 (__m64 m, __m64 count)

Shift two 32-bit values in m right the amount specified by count while shifting in zeros.

 

__m64 _mm_srli_pi32 (__m64 m, int count)

Shift two 32-bit values in m right the amount specified by count while shifting in zeros. For the best performance, count should be a constant.

 

__m64 _mm_srl_si64 (__m64 m, __m64 count)

Shift the 64-bit value in m right the amount specified by count while shifting in zeros.

 

__m64 _mm_srli_si64 (__m64 m, int count)

Shift the 64-bit value in m right the amount specified by count while shifting in zeros. For the best performance, count should be a constant.