AVX2编程:从浮点到整数的深入探索
1. AVX2浮点编程要点
在AVX2浮点编程中,有许多关键的学习点值得我们关注:
- 操作数宽度与对齐 :几乎所有AVX打包单精度和双精度浮点指令都可使用128位或256位宽的操作数。应尽可能使打包浮点操作数正确对齐。需要注意的是,MASM的 align 指令不能用于将256位宽的操作数对齐到32字节边界,不过可以使用MASM段指令来对齐256位宽的常量或可变操作数。
- 逻辑决策指令 :在执行打包算术运算时, vcmpp[d|s] 指令可与 vandp[d|s] 、 vandnp[d|s] 和 vorp[d|s] 指令配合使用,无需条件跳转指令即可做出逻辑决策。
- 浮点运算的非关联性 :浮点运算的非关联性意味着在比较使用C++和汇编语言函数计算的值时,可能会出现微小的数值差异。
- 操作数元素重排 :汇编语言函数可以使用 vperm2f128 、 vpermp[d|s] 和 vpermilp[d|s] 指令重新排列打包浮点操作数的元素。
- 操作数元素交织 : vblendp[d|s] 和 vblendvp[d|s] 指令可用于交织两个打包浮点操
超级会员免费看
订阅专栏 解锁全文
65

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



