SSE3指令集系列----数据加载与算术运算指令
2013-04-23 12:22
281 查看
1. 数据加载存储指令
LDDQU xmm, m128
从非对齐的内存地址中加载128位数到XMM寄存器,此条指令比SSE2的非对齐加载指令
MOVDQU 要快。
MOVDDUP xmm, xmm/m64
加载64bit数据到XMM寄存器的低64位,同时复制到其高64位。
MOVSHDUP
xmm, xmm/m128
只需复制第二与第四个32位元素从而把数据读入到接收寄存器中
MOVSLDUP
xmm, xmm/m128
只需复制第一和第三个32位元素从而把数据读入到接收寄存器中
2. 算术指令
ADDSUBPD - (Add-Subtract-Packed-Double)
双精度浮点高位加法,低位减法
ADDSUBPS - (Add-Subtract-Packed-Single)
单精度浮点高位加法,低位减法。
输入: { A0, A1, A2, A3 }, { B0, B1, B2, B3 }
输出: { A0 - B0, A1 + B1, A2 - B2, A3 + B3 }
3. 数组结构指令(Array Of Structures;AOS)
HADDPD - (Horizontal-Add-Packed-Double)
输入: { A0, A1 }, { B0, B1 }
输出: { B0 + B1, A0 + A1 }
HADDPS (Horizontal-Add-Packed-Single)
输入: { A0, A1, A2, A3 }, { B0, B1, B2, B3 }
输出: { B0 + B1, B2 + B3, A0 + A1, A2 + A3 }
HSUBPD - (Horizontal-Subtract-Packed-Double)
输入: { A0, A1 }, { B0, B1 }
输出: { A0 - A1, B0 - B1 }
HSUBPS - (Horizontal-Subtract-Packed-Single)
输入: { A0, A1, A2, A3 }, { B0, B1, B2, B3 }
输出: { A0 - A1, A2 - A3, B0 - B1, B2 - B3 }
LDDQU xmm, m128
从非对齐的内存地址中加载128位数到XMM寄存器,此条指令比SSE2的非对齐加载指令
MOVDQU 要快。
MOVDDUP xmm, xmm/m64
加载64bit数据到XMM寄存器的低64位,同时复制到其高64位。
MOVSHDUP
xmm, xmm/m128
只需复制第二与第四个32位元素从而把数据读入到接收寄存器中
MOVSLDUP
xmm, xmm/m128
只需复制第一和第三个32位元素从而把数据读入到接收寄存器中
2. 算术指令
ADDSUBPD - (Add-Subtract-Packed-Double)
双精度浮点高位加法,低位减法
ADDSUBPS - (Add-Subtract-Packed-Single)
单精度浮点高位加法,低位减法。
输入: { A0, A1, A2, A3 }, { B0, B1, B2, B3 }
输出: { A0 - B0, A1 + B1, A2 - B2, A3 + B3 }
3. 数组结构指令(Array Of Structures;AOS)
HADDPD - (Horizontal-Add-Packed-Double)
输入: { A0, A1 }, { B0, B1 }
输出: { B0 + B1, A0 + A1 }
HADDPS (Horizontal-Add-Packed-Single)
输入: { A0, A1, A2, A3 }, { B0, B1, B2, B3 }
输出: { B0 + B1, B2 + B3, A0 + A1, A2 + A3 }
HSUBPD - (Horizontal-Subtract-Packed-Double)
输入: { A0, A1 }, { B0, B1 }
输出: { A0 - A1, B0 - B1 }
HSUBPS - (Horizontal-Subtract-Packed-Single)
输入: { A0, A1, A2, A3 }, { B0, B1, B2, B3 }
输出: { A0 - A1, A2 - A3, B0 - B1, B2 - B3 }
相关文章推荐
- SSE3指令集系列----数据加载与算术运算指令
- SSE3指令集系列----数据加载与算术运算指令
- MMX指令集系列之一----数据加载与算术运算指令
- MMX指令集系列之一----数据加载与算术运算指令
- MMX指令集系列之一----数据加载与算术运算指令
- SSE指令集系列之一----数据加载与浮点运算指令
- SSE指令集系列之一----数据加载与浮点运算指令
- SSE指令集系列之一----数据加载与浮点运算指令
- 基于ARM9的汇编指令:数据传送指令,算术运算指令,比较指令和跳转指令
- 80X86学习笔记--算术运算指令
- 二 算术运算指令
- SSE特殊指令集系列之一----各种数据重排指令
- VB学习要点4----日期型数据作算术运算
- linux 命令系列之算术运算(50)
- SSE指令集系列之三----整数运算指令
- 例子:3、2不同种类的整型数据可以进行算术运算
- 众核指令数据加载
- 数据存储/加载指令
- R语言系列:数据的基本运算
- 第二十一篇玩转【斗鱼直播APP】系列之加载数据动画