SSE3指令集系列----数据加载与算术运算指令
SSE3指令集系列----数据加载与算术运算指令
abcijkxyz 发表于1年前
SSE3指令集系列----数据加载与算术运算指令
  • 发表于 1年前
  • 阅读 1
  • 收藏 0
  • 点赞 0
  • 评论 0

新睿云服务器60天免费使用,快来体验!>>>   

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 }

 

 

  • 打赏
  • 点赞
  • 收藏
  • 分享
共有 人打赏支持
粉丝 59
博文 6195
码字总数 1876
×
abcijkxyz
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: