SIMD——MMX指令的溢出处理
来源:互联网 发布:翻墙 mac 免费 2017 编辑:程序博客网 时间:2024/06/09 15:31
- MMX中的Saturation 和 WrapAround规定
- 1定义
- 2MMX处理方式
- 3示例
MMX中的Saturation 和 WrapAround规定
本文主要为Intel 64 and IA-32 Architectures Software Developer’s Manual中9.3节关于MMX对整数饱和运算(Saturation)以及截至运算( WrapAround)的理解
1定义
- Saturation(饱和运算):当运算结果大于上限或小于下限时,结果保存为其上限或下限值
- WrapAround:当运算结果溢出时,结果忽略进位或溢出位的数值
2MMX处理方式
针对溢出情况MMX指令提供三种处理方式:
- 溢出时截断运算(Wraparound arithmetic):忽略结果的进位或溢出位,只保留最低的有意义位。
- 有符号饱和运算(Signed saturation arithmetic):溢出时根据情况保留正溢出值或负溢出值,如下表
- 无符号饱和运算(Unsigned Saturation arithmetic):溢出时根据情况保留正溢出值或负溢出值,如下表
| 数据类型 | 负溢出值 | 正溢出值|
| ——– |: ——–:| :–: |
| Signed byte(有符号字节整数)| -128| 127 |
| Signed word(有符号字整数)| -32768| 232767 |
| Unsigned byte(无符号字节整数)| 0 | 255|
|Unsigned word(无符号字整数)|0|65535|
注:MMX指令不能使用EFLAGS或产生异常来检测是否溢出。
3示例
0 0
- SIMD——MMX指令的溢出处理
- SIMD——MMX指令集介绍
- 【整理】SIMD、MMX、SSE、AVX、3D Now!、neon——指令集大全
- 单数据多指令(SIMD) MMX SSE AVX
- SIMD单指令数据流(MMX、SSE2、NEON)
- 指令集的进步——MMX和SSE
- MMX的数据结构 & MMX指令集
- 初学MMX与SIMD
- [SIMD]单指令多数据指令集(一)——SIMD简介
- SIMD(单道指令多道数据流)指令(MMX/SSE1/SSE2)详解(中文).
- [SIMD]单指令多数据指令集(二)—— SIMD指令集在非对称算法中的应用
- [x86]SIMD指令集发展历程表(MMX、SSE、AVX等)
- [x86]SIMD指令集发展历程表(MMX、SSE、AVX等)
- MMX(AVX)Intrinsics头文件与SIMD指令集、Visual Studio版本对应表
- [x86]SIMD指令集发展历程表(MMX、SSE、AVX等)
- MMX 指令
- MMX指令
- MMX指令
- Spring:基于注解的Spring MVC
- Codeforces 736D
- 学习使用Note.JS连接MySql数据库
- 字节对齐问题
- java
- SIMD——MMX指令的溢出处理
- Spring-bean的生命周期
- 子类父类 构造函数析构函数
- LeetCode 题解(Week6):300. Longest Increasing Subsequence
- RT-Thead SHELL 命令段定义实现方法
- amr格式解析
- c++ 字符串切割
- 通过观测到的公交车线路估计城市共有多少路公交车
- 数据库触发器