AVX技术:从整数运算到标量浮点计算的全面解析
1. AVX 打包整数运算
AVX支持使用128位宽操作数进行打包整数运算。128位宽操作数可用于处理两个四字、四个双字、八个字或十六个字节,以下是一些示例指令:
- vpaddb :进行打包8位整数加法。
- vpmaxsw :保存每对元素的最大有符号字值到指定目标操作数。
- vpmulld :执行打包有符号双字乘法,并保存每个结果的低32位。
- vpsllq :使用立即操作数指定的位数对每个四字元素进行逻辑左移。
大多数AVX打包整数指令不会更新RFLAGS寄存器中的状态标志,这意味着不会报告算术溢出和下溢等错误条件,且打包整数运算结果不会直接影响条件指令(如cmovcc、jcc和setb)的执行。不过,程序可采用SIMD特定技术根据打包整数运算结果做出逻辑决策。
常用AVX打包整数指令按字母顺序如下表所示:
| 指令 | 描述 |
| — | — |
| vmov[d|q] | 与XMM寄存器进行数据移动 |
| vmovdqa | 移动对齐的打包整数值 |
| vmovdqu | 移动未对齐的打包整数值 |
| vpabs[b|w|d] | 打包整数绝对值 |
| vpackss[dw|wb] | 带符号饱和打包 |
| vpackus[dw|wb] | 无符号饱和打包 |
| vpadd[b|w|d|q] | 打包整数加法 |
|
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



