MMX(TM) Technology Shift Intrinsics

The prototypes for MMX™ technology intrinsics are in the mmintrin.h header file.

For detailed information about an intrinsic, click on the name of the intrinsic in the following table.

Intrinsic
Name
Operation Corresponding MMX
Instruction
_mm_sll_pi16 Logical shift left PSLLW
_mm_slli_pi16 Logical shift left PSLLWI
_mm_sll_pi32 Logical shift left PSLLD
_mm_slli_pi32 Logical shift left PSLLDI
_mm_sll_pi64 Logical shift left PSLLQ
_mm_slli_pi64 Logical shift left PSLLQI
_mm_sra_pi16 Arithmetic shift right PSRAW
_mm_srai_pi16 Arithmetic shift right PSRAWI
_mm_sra_pi32 Arithmetic shift right PSRAD
_mm_srai_pi32 Arithmetic shift right PSRADI
_mm_srl_pi16 Logical shift right PSRLW
_mm_srli_pi16 Logical shift right PSRLWI
_mm_srl_pi32 Logical shift right PSRLD
_mm_srli_pi32 Logical shift right PSRLDI
_mm_srl_pi64 Logical shift right PSRLQ
_mm_srli_pi64 Logical shift right 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_pi64(__m64 m, __m64 count)

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

 

__m64 _mm_slli_pi64(__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_pi64(__m64 m, __m64 count)

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

 

__m64 _mm_srli_pi64(__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.