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位有符号整数,放入目的寄存器.

  • 相关阅读:
    python day6 面向对象
    搭建简单的Habernate环境(一)
    Team Services 自动化部署项目
    Java 反射机制
    Java io 操作
    基于Socket的Winform例子
    在.NetCore2.0中使用Swagger
    [Python]mysql-python 安装错误 fatal error C1083: Cannot open include file: 'config-win.h': No such file or directory
    [Python]Python入坑小项目推荐- Flask example minitwit
    [linux]服务器apache配置vhost
  • 原文地址:https://www.cnblogs.com/celerychen/p/3588229.html
Copyright © 2011-2022 走看看