【发布时间】:2013-10-21 00:43:10
【问题描述】:
我必须避免在 SSE 和 AVX 之间切换。我认为MM是不同的技术,但不得不问。下一个代码会导致处罚吗?:
vmovq XMM0, RAX
pinsrw MM0, EDX, 1
vmovd XMM5, EBX
movdq2q MM1, XMM2
【问题讨论】:
标签: optimization assembly intel sse avx
我必须避免在 SSE 和 AVX 之间切换。我认为MM是不同的技术,但不得不问。下一个代码会导致处罚吗?:
vmovq XMM0, RAX
pinsrw MM0, EDX, 1
vmovd XMM5, EBX
movdq2q MM1, XMM2
【问题讨论】:
标签: optimization assembly intel sse avx
MMX 寄存器不对 AVX 的低位部分起别名,因此不会像 AVX256 和 SSE 之间那样存在状态转换危险。
但是。
确实没有充分的理由混合 MMX 和 AVX(或者根本没有使用 MMX,因为 SSE 是普遍可用的,并且避免了与 MMX 使用相关的一些危险,并且还为您提供了更多的寄存器名称)。为什么不简单地在 AVX(或 SSE)中进行所有操作?
【讨论】: