C 内部和寄存器(SSE)

C 内部和寄存器(SSE),c,assembly,x86,sse,C,Assembly,X86,Sse,我对SSE有疑问 正如我所理解的,SSE由XMM寄存器组成。而且(正如我所理解的)如果我需要将一些值从SSE的某个部分转移到另一个部分,我必须使用汇编语言。例如movdqa xmm7、xmm6。但它不起作用 我需要将值移动到另一个单元格 我该怎么办?这是一个洗牌,如果您使用的是intrinsic,那么不需要asm。见@Jester,非常感谢。注意@Jester的评论并不局限于shuffle操作;你不需要asm来使用任何SSE,真的。头还定义了与XMM寄存器可以保存的内容相对应的类型(\uuuuu

我对SSE有疑问

正如我所理解的,SSE由XMM寄存器组成。而且(正如我所理解的)如果我需要将一些值从SSE的某个部分转移到另一个部分,我必须使用汇编语言。例如
movdqa xmm7、xmm6
。但它不起作用

我需要将值移动到另一个单元格

我该怎么办?

这是一个洗牌,如果您使用的是intrinsic,那么不需要asm。见@Jester,非常感谢。注意@Jester的评论并不局限于shuffle操作;你不需要asm来使用任何SSE,真的。
头还定义了与XMM寄存器可以保存的内容相对应的类型(
\uuuuum128
\uuuuum128i
\uuuuum128d
),以及在这些类型上操作的内部函数,与SSE指令相对应。请注意,有单独的洗牌指令用于洗牌整数值和洗牌浮点值。在某些处理器上,在整数和浮点运算之间切换会有一个小的时间损失。这是一种无序操作,如果您使用的是内部函数,则不需要asm。见@Jester,非常感谢。注意@Jester的评论并不局限于shuffle操作;你不需要asm来使用任何SSE,真的。
头还定义了与XMM寄存器可以保存的内容相对应的类型(
\uuuuum128
\uuuuum128i
\uuuuum128d
),以及在这些类型上操作的内部函数,与SSE指令相对应。请注意,有单独的洗牌指令用于洗牌整数值和洗牌浮点值。在某些处理器上,在整数和浮点运算之间切换会有很小的时间损失。