目录
MMX (TM )技术的固有指令 ........................................................................................................ 4
MMX ( TM)技术普遍支持指令 ............................................................................................ 4
MMX ( TM)技术包装的算法指令 ........................................................................................ 5
MMX ( TM)技术移位指令 .................................................................................................... 6
MMX ( TM)技术逻辑指令 .................................................................................................... 8
MMX ( TM)技术比较指令 .................................................................................................... 8
MMX ( TM)技术置位指令 .................................................................................................... 9
SSE的固有指令 .............................................................................................................................. 10
SSE的算术操作 ...................................................................................................................... 10
SSE的逻辑操作 ...................................................................................................................... 13
SSE的比较操作 ...................................................................................................................... 14
SSE的转换操作 ...................................................................................................................... 19
SSE的加载操作 ...................................................................................................................... 21
SSE的置位操作 ...................................................................................................................... 23
SSE的存储操作 ...................................................................................................................... 24
利用 SSE进行缓存支持 ......................................................................................................... 25
利用 SSE指令的整型指令 ..................................................................................................... 25
SSE的读写寄存器指令 .......................................................................................................... 28
利用 SSE的混杂指令 ............................................................................................................. 29
SSE2的固有指令 ............................................................................................................................ 31
综述 ......................................................................................................................................... 31
浮点指令 ................................................................................................................................. 31
浮点算术操作 ................................................................................................................. 31
浮点逻辑操作 ................................................................................................................. 33
浮点比较操作 ................................................................................................................. 34
浮点转换操作 ................................................................................................................. 39
浮点加载操作 ................................................................................................................. 41
浮点置位操作 ................................................................................................................. 43
浮点存储操作 ................................................................................................................. 44
整型指令 ................................................................................................................................. 45
整型算术操作 ................................................................................................................. 45
整型逻辑操作 ................................................................................................................. 51
整型移位操作 ................................................................................................................. 51
整型比较操作 ................................................................................................................. 54
整型转换操作 ................................................................................................................. 56
整型移动操作 ................................................................................................................. 57
整型加载操作 ................................................................................................................. 58
整型置位操作 ................................................................................................................. 58
整型存储操作 ................................................................................................................. 60
其它函数和指令 ..................................................................................................................... 61
缓存支持指令 ................................................................................................................. 61
混杂指令 ......................................................................................................................... 62
类型转换指令 ................................................................................................................. 66
暂停指令 ......................................................................................................................... 66
重排宏 ............................................................................................................................. 66
SSE3的固有指令 ............................................................................................................................ 67
综述 ......................................................................................................................................... 67
整型向量指令 ......................................................................................................................... 67
单精度浮点型向量指令 ......................................................................................................... 67
双精度浮点型向量指令 ......................................................................................................... 68
宏函数 ..................................................................................................................................... 68
混杂指令 ................................................................................................................................. 69
SSE3补充的固有指令 .................................................................................................................... 69
综述 ......................................................................................................................................... 69
加法指令 ................................................................................................................................. 69
减法指令 ................................................................................................................................. 70
乘法指令 ................................................................................................................................. 71
绝对值指令 ............................................................................................................................. 72
重排指令 ................................................................................................................................. 73
连接指令 ................................................................................................................................. 74
SSE4的固有指令 ............................................................................................................................ 77
综述 ......................................................................................................................................... 77
向量化编译器和媒体加速器 ................................................................................................. 77
综述: SSE4向量化编译器和媒体加速器 .................................................................... 77
打包混合指令 ................................................................................................................. 77
浮点型点积指令 ............................................................................................................. 78
打包格式化转换指令 ..................................................................................................... 78
打包整型 min/max 指令 ................................................................................................ 79
浮点型舍入指令 ............................................................................................................. 80
DWORD乘法指令 .......................................................................................................... 81
寄存器插入 / 提取指令 ................................................................................................... 81
测试指令 ......................................................................................................................... 83
打包 DWORD 到无符号 WORD 指令 ............................................................................. 83
打包等于比较指令 ......................................................................................................... 83
可缓存性支持指令 ......................................................................................................... 83
高效加速的字符串和文本处理器 ......................................................................................... 84
综述 ................................................................................................................................. 84
打包比较指令 ................................................................................................................. 84
应用定向加速器指令 ..................................................................................................... 85
适用所有 Intel 架构的固有指令 ................................................................................................... 86
综述 ................................................................................................................................. 86
整型算术指令 ................................................................................................................. 86
浮点型指令 ..................................................................................................................... 87
字符串和块拷贝指令 ..................................................................................................... 90
混杂指令 ......................................................................................................................... 91
Intrinsics for IA-32 and Intel? 64 Architectures Only .............................................................. 93
固有指令:
命名和使用语法
高级加密标准执行的固有指令
转换半 float 的指令
交叉编译器的固有指令
数据对齐,内存分配和内联汇编的固有指令
IA-64 架构的固有指令
MMX (TM )技术的固有指令
综述
关于 MMX 技术指令的细节
EMMS 指令:为什么需要它
EMMS 使用指南
MMX ( TM )技术普遍支持指令
原型在 mmintrin.h 头文件中
指令
操作
简要描述
_mm_empty
Empty MM state 清空多媒体状态
_mm_cvtsi32_si64
Convert from
int
int 转__m64,多余位补 0
_mm_cvtsi64_si32
Convert to int
__m64低 32 位转 int
_mm_cvtsi64_m64
_mm_cvtm64_si64
_mm_packs_pi16(__m64
m1, __m64 m2)
Convert from
__int64
Convert to
__int64
Pack
64 位 int 转__m64
__m64转 64 位 int
m1的 4 个 16 位到低的 4 个 8 位,
m2的 4 个 16 位到高的 4 个 8位(有
符号饱和的原则)
指令
操作
简要描述
m1的 2 个 32 位到低的 2 个 16 位,
m2的 2 个 32 位到高的 2 个 16 位
(有符号饱和原则)
m1的 4 个 16 位到低的 4 个 8 位,
m2的 4 个 16 位到高的 4 个 8位(无
符号饱和的原则)
交织 m1的高一半的 4 个 8 位和 m2
的高一半的 4 个 8 位,以 m1的数
据开头
交织 m1的高一半的 2 个 16 位和
m2的高一半的 2 个 16 位,以 m1
的数据开头
交织 m1的高一半的 1 个 32 位和
m2的高一半的 1 个 32 位,以 m1
的数据开头
交织 m1的低一半的 4 个 8 位和 m2
的低一半的 4 个 8 位,以 m1的数
据开头
交织 m1的低一半的 2 个 16 位和
m2的低一半的 2 个 16 位,以 m1
的数据开头
交织 m1的低一半的 1 个 32 位和
m2的低一半的 1 个 32 位,以 m1
的数据开头
简要描述
_mm_packs_pi32(__m64
m1, __m64 m2)
Pack
_mm_packs_pu16(__m64
m1, __m64 m2)
Pack
_mm_unpackhi_pi8(__m64
m1, __m64 m2)
Interleave
_mm_unpackhi_pi16(__m64
m1, __m64 m2)
Interleave
_mm_unpackhi_pi32(__m64
m1, __m64 m2)
Interleave
_mm_unpacklo_pi8(__m64
m1, __m64 m2)
Interleave
_mm_unpacklo_pi16(__m64
m1, __m64 m2)
Interleave
_mm_unpacklo_pi32(__m64
m1, __m64 m2)
Interleave
MMX ( TM )技术包装的算法指令
原型在 mmintrin.h 头文件中
指令
_mm_add_pi8(__m64
m1, __m64 m2)
操作
Addition
_mm_add_pi16(__m64
m1, __m64 m2)
Addition
_mm_add_pi32(__m64
m1, __m64 m2)
Addition
指令
操作
简要描述
_mm_adds_pi8(__m64
m1, __m64 m2)
Addition
饱和机制
_mm_adds_pi16(__m64
m1, __m64 m2)
Addition
_mm_adds_pu8(__m64
m1, __m64 m2)
Addition
无符号、饱和机制
_mm_adds_pu16(__m64
m1, __m64 m2)
Addition
_mm_sub_pi8(__m64
m1, __m64 m2)
Subtraction
_mm_sub_pi16(__m64
m1, __m64 m2)
Subtraction
_mm_sub_pi32(__m64
m1, __m64 m2)
Subtraction
_mm_subs_pi8(__m64
m1, __m64 m2)
Subtraction
_mm_subs_pi16(__m64
m1, __m64 m2)
Subtraction
_mm_subs_pu8(__m64
m1, __m64 m2)
Subtraction
_mm_subs_pu16(__m64
m1, __m64 m2)
Subtraction
_mm_madd_pi16(__m64
m1, __m64 m2)
Multiply and
add
m1的 4 个 16 位× m2的 4 个 16 位得
到 4 个 32 位的中间结果,然后分对
相加得到 2 个 32 位结果
_mm_mulhi_pi16(__m64
m1, __m64 m2)
Multiplication
m1的 4 个有符号 16 位× m2的 4 个有
符号 16 位,得到 4 个结果的高 16 位
_mm_mullo_pi16(__m64
m1, __m64 m2)
Multiplication
m1的 4 个有符号 16 位× m2的 4 个有
符号 16 位,得到 4 个结果的低 16 位
MMX ( TM )技术移位指令
原型在 mmintrin.h 头文件中
指令
操作
简要描述
_mm_sll_pi16(__m64 m,
__m64 count)
_mm_slli_pi16(__m64 m,
__m64 count)
Logical shift left
Logical shift left
_mm_sll_pi32(__m64 m,
__m64 count)
_mm_slli_pi32(__m64 m,
__m64 count)
Logical shift left
Logical shift left
_mm_sll_pi64(__m64 m,
__m64 count)
_mm_slli_pi64(__m64 m,
__m64 count)
Logical shift left
Logical shift left
_mm_sra_pi16(__m64 m,
__m64 count)
_mm_srai_pi16(__m64 m,
__m64 count)
_mm_sra_pi32(__m64 m,
__m64 count)
_mm_srai_pi32(__m64 m,
__m64 count)
Arithmetic shift right
Arithmetic shift right
Arithmetic shift right
Arithmetic shift right
_mm_srl_pi16(__m64 m,
__m64 count)
_mm_srli_pi16(__m64 m,
__m64 count)
Logical shift right
Logical shift right
_mm_srl_pi32(__m64 m,
__m64 count)
_mm_srli_pi32(__m64 m,
__m64 count)
Logical shift right
Logical shift right
m中的 4 个 16位左移 count
位,补 0
m中的 4 个 16位左移 count
位,补 0,为了最好的性能,
count 是一个常量
m中的 2 个 32位左移 count
位,补 0
m中的 2 个 32位左移 count
位,补 0,为了最好的性能,
count 是一个常量
m中的 1 个 64位左移 count
位,补 0
m中的 1 个 64位左移 count
位,补 0,为了最好的性能,
count 是一个常量
m中的 4 个 16位右移 count
位,保留符号位
m中的 4 个 16位右移 count
位,保留符号位
m中的 2 个 32位右移 count
位,保留符号位
m中的 2 个 32位右移 count
位,保留符号位。 Count
是一个常量
m中的 4 个 16位右移 count
位,补 0
m中的 4 个 16位右移 count
位,补 0,count 是一个常
量
m中的 2 个 32位右移 count
位,补 0
m中的 2 个 32位右移 count
位,补 0,count 是一个常
量
指令
操作
简要描述
_mm_srl_pi64(__m64 m,
__m64 count)
_mm_srli_pi64(__m64 m,
__m64 count)
Logical shift right
Logical shift right
m中的 1 个 64位右移 count
位,补 0
m中的 1 个 64位右移 count
位,补 0,count 是一个常
量
MMX ( TM )技术逻辑指令
原型在 mmintrin.h 头文件中
指令
操作
简要描述
_mm_and_si64(__m64 m1,
__m64 m2)
Bitwise AND
m1的 64位和 m2中 64 位位
与
_mm_andnot_si64(__m64
m1, __m64 m2)
Bitwise ANDNOT
m1的 64 位位非,然后和
m2中 64 位位与
_mm_or_si64(__m64 m1,
__m64 m2)
Bitwise OR
_mm_xor_si64(__m64 m1,
__m64 m2)
Bitwise Exclusive OR
m1的 64位和 m2中 64 位位
或
m1的 64位和 m2中 64 位位
异或
MMX ( TM )技术比较指令
原型在 mmintrin.h 头文件中
指令
操作
简要描述
_mm_cmpeq_pi8(__m64
m1, __m64 m2)
Equal
_mm_cmpeq_pi16(__m64
m1, __m64 m2)
Equal
_mm_cmpeq_pi32(__m64
m1, __m64 m2)
Equal
_mm_cmpgt_pi8(__m64
m1, __m64 m2)
Greater Than
如果 m1中的 8 位与 m2中的 8 位相
等,则结果全置 1;否则全置 0
如果 m1中的 16 位与 m2中的 16 位
相等,则结果全置 1;否则全置 0
如果 m1中的 32 位与 m2中的 32 位
相等,则结果全置 1;否则全置 0
如果 m1中的 8 位有符号大于 m2中
的 8 位有符号,则结果全置 1;否
则全置 0
_mm_cmpgt_pi16(__m64 Greater Than
如果 m1中的 16 位有符号大于 m2