Intel 64/ IA32 Packed Horizontal ADD for Quadwords?
Intel 64/ IA32 Packed Horizontal ADD for Quadwords?
我正在寻找类似 PHADDD 的指令,仅适用于四字。
PHADDQ不存在,有这样的指令吗?
phaddd
并不比 2 次随机播放 + 一次垂直添加快,因此只有当您使用 2 个单独的输入时才值得考虑。
如果您打算在两个输入相同的情况下使用它,只需使用 pshufd
复制+交换到另一个向量。 (或者如果你只想要一个标量 horizontal sum,甚至 movhlps
也值得考虑将高 64 位提取到另一个寄存器中。)
要完全模拟 phaddq
,您只需要两次随机播放即可获取 A B
和 C D
输入并为您提供 A C
和 B D
向量可以添加以获取 A+B 和 C+D 元素。这就是 punpcklqdq
和 punpckhqdq
所做的。 (将 quad 解压缩为 dq)
我正在寻找类似 PHADDD 的指令,仅适用于四字。 PHADDQ不存在,有这样的指令吗?
phaddd
并不比 2 次随机播放 + 一次垂直添加快,因此只有当您使用 2 个单独的输入时才值得考虑。
如果您打算在两个输入相同的情况下使用它,只需使用 pshufd
复制+交换到另一个向量。 (或者如果你只想要一个标量 horizontal sum,甚至 movhlps
也值得考虑将高 64 位提取到另一个寄存器中。)
要完全模拟 phaddq
,您只需要两次随机播放即可获取 A B
和 C D
输入并为您提供 A C
和 B D
向量可以添加以获取 A+B 和 C+D 元素。这就是 punpcklqdq
和 punpckhqdq
所做的。 (将 quad 解压缩为 dq)