logo资料库

IntelSSE指令集整理.pdf

第1页 / 共93页
第2页 / 共93页
第3页 / 共93页
第4页 / 共93页
第5页 / 共93页
第6页 / 共93页
第7页 / 共93页
第8页 / 共93页
资料共93页,剩余部分请下载后查看
目录 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
分享到:
收藏