文档章节

SSE指令集系列之二----浮点与整数转换指令

abcijkxyz
 abcijkxyz
发布于 2016/11/22 16:46
字数 431
阅读 33
收藏 0

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

 

 

 

 

 

 

本文转载自:http://www.cnblogs.com/celerychen/archive/2013/04/23/3588229.html

共有 人打赏支持
abcijkxyz
粉丝 60
博文 6196
码字总数 1876
作品 0
深圳
项目经理
Intel 45nm制程处理器上的SSE4指令集简介

Intel 45nm制程处理器上的SSE4指令集简介 Intel的SSE(Streaming SIMD Extensions, 流式单指令多数据扩展)技术有效增强了CPU的向量运算能力。支持该指令集的处理器有8个128位xmm寄存器,每一...

日久不生情
2017/11/07
0
0
[JVM] 字节码指令集简介

Java 虚拟机的指令由一个字节长度的、代表着某种特定操作含义的操作码(Opcode)以及跟随其后的零至多个代表此操作所需参数的操作数(Operands)所构成。虚拟机中许多指令并不包含操作数,只...

tequliapop
2016/02/16
327
0
armeabi和armeabi-v7a 以及x86

原文:http://blog.csdn.net/dxpqxb/article/details/7721156 armeabi和armeabi-v7a 在我们android APK的根目录有一个 libs文件夹,此文件夹下包含了armeabi 和armeabi-v7a两个文件夹,我们的...

QGlaunch
2015/12/23
99
0
.NET中常见的 IL 指令集

一、IL中常见的符号 二、.NET中常见的 IL 指令集 名称 说明 Add 将两个值相加并将结果推送到计算堆栈上。 Add.Ovf 将两个整数相加,执行溢出检查,并且将结果推送到计算堆栈上。 Add.Ovf.Un...

学习也休闲
2016/06/11
70
0
AMD发布Stream SDK v2.0 Beta开发工具

AMD最近发布了ATI Stream SDK v2.0开发工具包的最新Beta版本Stream SDK v2.0 Beta,这个版本将全面兼容OpenCL1.0编程接口界面,更令人欣喜的是,需要的用户可以自由免费地下载该开发工具包,...

红薯
2009/10/14
2.4K
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

咕泡-Factory设计模式笔记

个人感悟: 设计模式都是处理复杂问题的,如果问题本身很简单,使用设计模式反而累赘,增加了开发的复杂性 遇到最简单的情况,直接 new 如果创建对象的过程简单,但是需要匹配不同情况,返回...

职业搬砖20年
16分钟前
0
0
Java中的锁分类

在读很多并发文章中,会提及各种各样锁如公平锁,乐观锁等等,这篇文章介绍各种锁的分类。介绍的内容如下: 公平锁/非公平锁 可重入锁 独享锁/共享锁 互斥锁/读写锁 乐观锁/悲观锁 分段锁 偏...

Funcy1122
24分钟前
0
0
Ansible随机数

想为你的Ansible剧本取一个随机数?还想在接下来的运行中保持系统的等幂性?这里有一个答案。 假如,你要为一大批服务器设置cron任务,却不想让它们同时启动,你可以这样设置分钟数: minute...

大别阿郎
34分钟前
0
0
SpringCloud之服务注册中心Eureka

本系列介绍的配置均基于 Spring Boot 2.0.1.RELEASE 版本和 Spring Cloud Finchley.SR1 服务注册中心 Spring Cloud 已经帮我们实现了服务注册中心,我们只需要很简单的几个步骤就可以完成。 ...

熊小飞呀
今天
7
1
“Comparison method violates ...”异常的再现方法

前提条件:JDK8 代码: import java.util.ArrayList;import java.util.Collections;import java.util.Comparator;import java.util.List;public class Test { public stat......

hunterli
今天
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部