SSE 2及更高版本 - 为什么浮点数据类型仅存储2个浮点数

时间:2017-12-05 08:26:57

标签: x86 sse simd sse2

我正在尝试使用SSE内部函数优化我的代码。在浏览完文档之后,我发现SSE中有浮点变量的__m128数据类型,能够存储4个浮点数。 SSE2中有__m128d只能存储2个浮点数吗?这些变量有什么区别?不是SSE2应该比SSE更快吗?

1 个答案:

答案 0 :(得分:6)

SSE指令使用128位寄存器。

A float使用4个字节= 32位 - >因此你可以存储4个浮点数(4 * 32 = 128),这些是__m128

double使用8个字节= 64位 - >因此你可以存储2个双打(2 * 64 = 128),这些是__m128d

- >更多信息https://felix.abecassis.me/2011/09/cpp-getting-started-with-sse/