zoukankan      html  css  js  c++  java
  • SSE3指令集系列数据加载与算术运算指令

    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 }
  • 相关阅读:
    实现 (5).add(3).minus(2) 功能
    vue兄弟组件传值的三种方法
    Web渗透测试思路整理
    PHP代码审计基础
    简单易用,用Powershell劫持Windows系统快捷键
    javascript脚本混淆
    秒杀系统架构优化思路
    什么是OOP
    一分钟了解负载均衡的一切
    MVC
  • 原文地址:https://www.cnblogs.com/celerychen/p/3588216.html
Copyright © 2011-2022 走看看