X86 - SSE编程:标量浮点运算详解
1. 标量浮点算术运算
x86 - SSE的标量单精度浮点算术指令仅修改目标XMM寄存器的低32位,高位不变。使用 movss 指令将每个算术指令的结果保存到调用者提供的数组中,虽然 movss 操作数在内存中的对齐不是必需的,但为了性能考虑,建议进行对齐。
标量双精度浮点算术指令在函数 SseSfpArithmeticDouble_ 中展示,其逻辑结构与单精度版本类似。使用XMM寄存器中的标量双精度浮点值时,仅使用低64位,高位不变,同样建议对内存中的操作数进行对齐。
以下是 SseScalarFloatingPointArithmetic 示例程序的结果:
| 操作 | 单精度结果 | 双精度结果 |
| ---- | ---- | ---- |
| a | 2.500000 | 3.14159265358979 |
| b | -7.625000 | 2.71828182845905 |
| add | -5.125000 | 5.85987448204884 |
| sub | 10.125000 | 0.42331082513075 |
| mul | -19.062500 | 8.53973422267357 |
| div | -0.327869 | 1.15572734979092 |
| min | -7.625000 | 2.71828182845905 |
| max | 2.500000 | 3.1
超级会员免费看
订阅专栏 解锁全文
82

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



