Pep*_*uis 0 c++ x86 sse simd mmx
是否可以访问mmx寄存器中的单个字节,如数组?我有这个代码:
movq mm1,vector1
movq mm2,vector2
psubw mm1,mm2
Run Code Online (Sandbox Code Playgroud)
我想把mm1 [1],mm1 [2],mm1 [3] ....放到c ++变量中,比如:
int a,b=0;
mov a,mm1[1]
mov b,mm1[2]
Run Code Online (Sandbox Code Playgroud)
谢谢.
对的,这是可能的。
我可以显示 C++ 的 SSE2 代码,但 MMX 的代码类似:
__m128i a;
unsigned char *p = (unsigned char*) &a;
// access bytes pointed by pointer p
Run Code Online (Sandbox Code Playgroud)
小智 5
除非你想使用VJo的方法,否则没有直接的可能性来处理MMX寄存器中的字节,但这完全破坏了首先使用MMX的好处.
但是,如果您的数据格式良好,则可以将它们全部放在寄存器中并执行一系列解包操作,这将转置数据.
BTW为什么不使用SSE1/2/3/4?MMX已经过时了.IIRC SSE4具有直接8/16/32/64位提取指令.