我必须避免在SSE和AVX之间切换。我认为MM们是不同的技术,但不得不问。下一个代码会导致处罚吗?:
vmovq XMM0, RAX
pinsrw MM0, EDX, 1
vmovd XMM5, EBX
movdq2q MM1, XMM2
答案 0 :(得分:1)
MMX寄存器不会对AVX的低部分进行别名,因此没有像AVX256和SSE之间那样的状态转换危险。
然而
真的没有理由混合使用MMX和AVX(或者完全使用MMX,因为SSE是普遍可用的并且避免了与MMX使用相关的几种危险,并且还提供了更多的寄存器名称)。你为什么不简单地在AVX(或SSE?)
中完成所有操作