深入了解AVX:高级向量扩展技术解析
1. x86 - AVX基础介绍
x86 - AVX执行环境包含一个名为MXCSR的控制状态寄存器。该寄存器中的状态标志有助于检测浮点算术运算引发的错误状况,控制位则可让程序启用或禁用浮点异常,并指定舍入选项。
AVX支持使用256位和128位的打包单精度或双精度浮点操作数进行SIMD操作。256位的YMM寄存器或内存位置能容纳8个单精度或4个双精度值;128位的XMM寄存器或内存位置,AVX指令可处理4个单精度或2个双精度值。与SSE和SSE2类似,AVX指令利用XMM寄存器的低双字或四字进行标量单精度或双精度浮点运算。
AVX还包含使用XMM寄存器对多种打包整数操作数(如字节、字、双字和四字)执行SIMD操作的指令。AVX2将AVX的打包整数处理能力扩展到YMM寄存器和256位宽的内存操作数。
2. 指令语法
x86 - AVX编程中,其采用的现代汇编语言指令语法值得关注。多数x86 - AVX指令采用三操作数格式,即两个源操作数和一个目标操作数,通用语法为 InstrMnemonic DesOp,SrcOp1,SrcOp2 。部分x86 - AVX指令使用一个或三个源操作数加一个目标操作数。几乎所有x86 - AVX指令的源操作数是非破坏性的,除非目标操作数寄存器与某个源操作数寄存器相同,否则源操作数在指令执行期间不会被修改。这种非破坏性源操作数的使用,减少了函数执行时寄存器间的数据传输次数,使代码更简单、执行速度稍快。
x86 - AVX支持三操作数指令语法得益于新的指令编码前缀——向量扩展(VEX)前缀。它使x86 - AVX指令的编码比x
超级会员免费看
订阅专栏 解锁全文
1047

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



