zoukankan      html  css  js  c++  java
  • SSE指令集系列之二

    4. 数据重排指令集

      unpckhps XMM,XMM/m128

      源存储器与目的寄存器高64位按双字交错排列,结果送入目的寄存器,内存变量必须对齐内存16字节.
                高64位 | 低64位
        目的寄存器:    a0 | a1 | a2 | a3
        源存储器:     b0 | b1 | b2 | b3
        目的寄存器结果:  b0 | a0 | b1 | a1
        例:
        当  XMM0 = 0x 0c517e000  44290000 46b6d000 3c4985f0
             XMM1 = 0x 045e51000 4240cccd  4a59e540  3a77b9e0,

                当执行 unpckhps XMM0,XMM1
                   则 XMM0 = 0x 045e51000 c517e000 4240cccd 44290000

      unpcklps XMM,XMM/m128

      源存储器与目的寄存器低64位按双字交错排列,结果送入目的寄存器,内存变量必须对齐内存16字节.
              高64位 | 低64位
      目的寄存器:    a0 | a1  | a2 | a3
      源存储器:       b0 | b1 | b2 | b3
      目的寄存器结果:  b2 | a2 | b3 | a3
      例:
      当XMM0 = 0x 0c517e000 44290000 46b6d000 3c4985f0
         XMM1 = 0x 045e51000 4240cccd  4a59e540 3a77b9e0,

           执行 unpcklps XMM0,XMM1
       则 XMM0 = 0x 04a59e540 46b6d000 3a77b9e0 3c4985f0

     5. 单精度浮点数与整数相互转换指令

        cvtpi2ps XMM,MM/m64

        源存储器64位两个32位有符号(补码)整数转为两个单精度浮点数,放入目的寄存器低64中,高64位不变.

        源寄存器是'MM',不是'XMM'

     

        cvtsi2ss XMM,r32/m32

        源存储器1个32位有符号(补码)整数转为1个单精度浮点数,放入目的寄存器低32中,高96位不变.

     

      cvtps2pi MM,XMM/m64

        把源存储器低64位两个32位单精度浮点数转为两个32位有符号整数,放入目的寄存器.

        cvtss2si r32,XMM/m32

        把源存储器低32位1个单精度浮点数转为1个32位有符号整数,放入目的寄存器.

  • 相关阅读:
    Ninject依赖注入——构造函数、属性、方法和字段的注入
    轻量级IOC框架:Ninject
    WCF 服务端异常封装
    Tomcat远程调试和加入JMS(转)
    关于与产品相关的品牌、国藉等与产品质量的一些思考(转)
    eclipse及Java常用问题及解决办法汇总
    SourceInsight
    java.util.Timer分析源码了解原理
    WebSocket初探
    JAVA布局管理器
  • 原文地址:https://www.cnblogs.com/celerychen/p/2984600.html
Copyright © 2011-2022 走看看