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

  • 相关阅读:
    回溯法 | 子集树:装载问题
    再谈01背包 | 使用【跳跃点集合】代替【求解矩阵】解题
    线性代数 | 行列式的计算
    慢,也是一种态度
    回溯法 | 图的m着色问题
    回溯法 | 旅行商问题(TSP问题)
    回溯法 | n皇后问题
    基数排序 RadixSort
    03.父工程pom、整合测试、SpringBootApplication注解
    02.自定义banner、全局配置文件、@Value获取自定义配置、@ConfigurationProperties、profiles配置
  • 原文地址:https://www.cnblogs.com/celerychen/p/2984600.html
Copyright © 2011-2022 走看看