SSE 2 及更高版本 - 为什么浮点数据类型只存储 2 个浮点数
SSE 2 and above - Why floating point data types store only 2 floating point numbers
我正在尝试使用 SSE 内部函数优化我的代码。浏览文档后,我看到 SSE 中有 __m128
数据类型用于浮点变量,能够存储 4 个浮点数。 SSE2中有一个只能存储2个浮点数的__m128d
?这些变量之间有什么区别? SSE2 不是应该比 SSE 快吗?
SSE 指令使用 128 位寄存器。
A float
使用 4 个字节 = 32 位 -> 因此您可以存储 4 个浮点数 (4*32=128),这些是 __m128
.
A double
使用 8 个字节 = 64 位 -> 因此您可以存储 2 个双精度数 (2*64=128),这些是 __m128d
.
-> 更多信息 https://felix.abecassis.me/2011/09/cpp-getting-started-with-sse/
我正在尝试使用 SSE 内部函数优化我的代码。浏览文档后,我看到 SSE 中有 __m128
数据类型用于浮点变量,能够存储 4 个浮点数。 SSE2中有一个只能存储2个浮点数的__m128d
?这些变量之间有什么区别? SSE2 不是应该比 SSE 快吗?
SSE 指令使用 128 位寄存器。
A float
使用 4 个字节 = 32 位 -> 因此您可以存储 4 个浮点数 (4*32=128),这些是 __m128
.
A double
使用 8 个字节 = 64 位 -> 因此您可以存储 2 个双精度数 (2*64=128),这些是 __m128d
.
-> 更多信息 https://felix.abecassis.me/2011/09/cpp-getting-started-with-sse/