X86-SSE编程:打包浮点运算详解
1. 打包浮点运算基础操作
在X86-SSE编程中,有一系列针对打包浮点值的操作指令,以下是一些基础操作及其示例结果:
| 操作 | 结果 |
| — | — |
| addpd | 4.718281828459 | 2.823282767406 |
| subpd | -0.718281828459 | 3.459902539774 |
| mulpd | 5.436563656918 | -1.000000000000 |
| divpd | 0.735758882343 | -9.869604401089 |
| abspd a | 2.000000000000 | 3.141592653590 |
| sqrtpd a | 1.414213562373 | 1.772453850906 |
| minpd | 2.000000000000 | -0.318309886184 |
| maxpd | 2.718281828459 | 3.141592653590 |
2. 打包浮点比较操作
X86-SSE提供了用于打包浮点比较的指令 cmpps 和 cmppd ,用于执行SIMD比较操作。与标量比较指令不同,打包比较指令需要第三个操作数来指定比较谓词,并且将结果以双字掩码的形式加载到XMM寄存器中,而不是设置EFLAGS寄存器中的状态位。
cmppX (X = s或d)指令的语法为 cmppX CmpOp1,Cm
超级会员免费看
订阅专栏 解锁全文
79

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



