MMX(TM) Technology Shift Intrinsics

The prototypes for MMX(TM) technology intrinsics are in the mmintrin.h header file.

Intrinsic
Name
Alternate
Name
Shift
Direction
Shift
Type
Corresponding
Instruction
_m_psllw _mm_sll_pi16 left Logical PSLLW
_m_psllwi _mm_slli_pi16 left Logical PSLLWI
_m_pslld _mm_sll_pi32 left Logical PSLLD
_m_pslldi _mm_slli_pi32 left Logical PSLLDI
_m_psllq _mm_sll_si64 left Logical PSLLQ
_m_psllqi _mm_slli_si64 left Logical PSLLQI
_m_psraw _mm_sra_pi16 right Arithmetic PSRAW
_m_psrawi _mm_srai_pi16 right Arithmetic PSRAWI
_m_psrad _mm_sra_pi32 right Arithmetic PSRAD
_m_psradi _mm_srai_pi32 right Arithmetic PSRADI
_m_psrlw _mm_srl_pi16 right Logical PSRLW
_m_psrlwi _mm_srli_pi16 right Logical PSRLWI
_m_psrld _mm_srl_pi32 right Logical PSRLD
_m_psrldi _mm_srli_pi32 right Logical PSRLDI
_m_psrlq _mm_srl_si64 right Logical PSRLQ
_m_psrlqi _mm_srli_si64 right Logical PSRLQI

__m64 _m_psllw(__m64 m, __m64 count)

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

__m64 _m_psllwi(__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 _m_pslld(__m64 m, __m64 count)

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

__m64 _m_pslldi(__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 _m_psllq(__m64 m, __m64 count)

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

__m64 _m_psllqi(__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 _m_psraw(__m64 m, __m64 count)

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

__m64 _m_psrawi(__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 _m_psrad(__m64 m, __m64 count)

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

__m64 _m_psradi(__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 _m_psrlw(__m64 m, __m64 count)

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

__m64 _m_psrlwi(__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 _m_psrld(__m64 m, __m64 count)

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

__m64 _m_psrldi(__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 _m_psrlq(__m64 m, __m64 count)

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

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