用于Quadwords的Intel 64 / IA32压缩水平添加?

问题描述 投票:0回答:1

我正在为Quadwords寻找类似PHADDD的说明。PHADDQ不存在,是否有这样的指令?

assembly x86 sse
1个回答
0
投票

[phaddd的速度不超过2个混洗+垂直加法,因此只有在使用2个单独的输入时才值得考虑。

如果您打算将其与两个输入相同使用,则只需使用pshufd将+复制并交换到另一个向量中即可。 (或者,如果只需要标量horizontal sum,甚至movhlps都值得考虑将高64位提取到另一个寄存器中。)


要完全模拟phaddq,您只需要两个混洗就可以获取A BC D输入,并给您提供A CB D向量,可以添加这些向量以获得A + B和C + D元素。这就是punpcklqdqpunpcklqdq所做的。 (将四边形解压缩为dq)

© www.soinside.com 2019 - 2024. All rights reserved.