如何在最少的时钟周期内将YMM寄存器的最低64位设置为某个常量?我知道使用SSE指令以及AVX指令VBROADCASTSD
可以做各种各样的方法,但我不确定哪种方法会产生最佳结果。
编辑:设置64位部分后,我仍然需要使用完整的YMM寄存器。
感谢您的帮助!
答案 0 :(得分:7)
如果您只需要设置最低64位而其他YMM位无关紧要,请使用VMOVQ
。
如果需要保留YMM寄存器中的其他位,最有效的方法是使用VBLENDPD
。或者,您可以使用VANDPD
清除最低64位,然后使用VORPD
加载常量。
AVX2允许其他选择:VPMASKMOVD
或VPBLENDD
(但任何处理器都不支持)。