您的位置:首页 > 其它

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 }
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: