MMX� Technology General Support Intrinsics

转自 http://www.gursey.gov.tr/Gilgamesh-WWW/IntelCompDocs/c_ug/linux337.htm

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

Intrinsic
Name
Alternate
Name
Corresponding
Instruction
Operation Signed Saturation
_m_empty _mm_empty EMMS Empty MM state -- --
_m_from_int _mm_cvtsi32_si64 MOVD Convert from int -- --
_m_to_int _mm_cvtsi64_si32 MOVD Convert from int -- --
_m_packsswb _mm_packs_pi16 PACKSSWB Pack Yes Yes
_m_packssdw _mm_packs_pi32 PACKSSDW Pack Yes Yes
_m_packuswb _mm_packs_pu16 PACKUSWB Pack No Yes
_m_punpckhbw _mm_unpackhi_pi8 PUNPCKHBW Interleave -- --
_m_punpckhwd _mm_unpackhi_pi16 PUNPCKHWD Interleave -- --
_m_punpckhdq _mm_unpackhi_pi32 PUNPCKHDQ Interleave -- --
_m_punpcklbw _mm_unpacklo_pi8 PUNPCKLBW Interleave -- --
_m_punpcklwd _mm_unpacklo_pi16 PUNPCKLWD Interleave -- --
_m_punpckldq _mm_unpacklo_pi32 PUNPCKLDQ Interleave -- --
  
void  _m_empty(void)

Empty the multimedia state.
See The EMMS Instruction: Why You Need It figure for details.

__m64 _m_from_int(int i)

Convert the integer object i to a 64-bit __m64 object. The integer value is zero-extended to 64 bits.

int   _m_to_int(__m64 m)

Convert the lower 32 bits of the __m64 object m to an integer.

__m64 _m_packsswb(__m64 m1, __m64 m2)

Pack the four 16-bit values from m1 into the lower four 8-bit values of the result with signed saturation, and pack the four 16-bit values from m2 into the upper four 8-bit values of the result with signed saturation.

__m64 _m_packssdw(__m64 m1, __m64 m2)

Pack the two 32-bit values from m1 into the lower two 16-bit values of the result with signed saturation, and pack the two 32-bit values from m2 into the upper two 16-bit values of the result with signed saturation.

__m64 _m_packuswb(__m64 m1, __m64 m2)

Pack the four 16-bit values from m1 into the lower four 8-bit values of the result with unsigned saturation, and pack the four 16-bit values from m2 into the upper four 8-bit values of the result with unsigned saturation.

__m64 _m_punpckhbw(__m64 m1, __m64 m2)

Interleave the four 8-bit values from the high half of m1 with the four values from the high half of m2. The interleaving begins with the data from m1.

__m64 _m_punpckhwd(__m64 m1, __m64 m2)

Interleave the two 16-bit values from the high half of m1 with the two values from the high half of m2. The interleaving begins with the data from m1.

__m64 _m_punpckhdq(__m64 m1, __m64 m2)

Interleave the 32-bit value from the high half of m1 with the 32-bit value from the high half of m2. The interleaving begins with the data from m1.

__m64 _m_punpcklbw(__m64 m1, __m64 m2)

Interleave the four 8-bit values from the low half of m1 with the four values from the low half of m2. The interleaving begins with the data from m1.

__m64 _m_punpcklwd(__m64 m1, __m64 m2)

Interleave the two 16-bit values from the low half of m1 with the two values from the low half of m2. The interleaving begins with the data from m1.

__m64 _m_punpckldq(__m64 m1, __m64 m2)

Interleave the 32-bit value from the low half of m1 with the 32-bit value from the low half of m2. The interleaving begins with the data from m1.


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值