MMX™ Technology Shift Intrinsics

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

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)

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

__m64 _mm_slli_pi16(__m64 m, int count)

Shifts 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)

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

__m64 _mm_slli_pi32(__m64 m, int count)

Shifts 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)

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

__m64 _mm_slli_pi64(__m64 m, int count)

Shifts 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)

Shifts 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)

Shifts 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)

Shifts 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)

Shifts 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)

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

__m64 _mm_srli_pi16(__m64 m, int count)

Shifts 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)

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

__m64 _mm_srli_pi32(__m64 m, int count)

Shifts 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)

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

__m64 _mm_srli_pi64(__m64 m, int count)

Shifts 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.


Submit feedback on this help topic

Copyright © 1996-2011, Intel Corporation. All rights reserved.