我想从128位寄存器中提取值(第一个字16位),我得到了这个命令,但这不是working.there,在设置了a的值后,这将是一些算术操作,然后会有一些算术操作,因为变量内部的结果将改变最后我想提取第一个word...how我可以这样做吗…
int r;
int inm=0;
__m128i a=_mm_setr_epi16(8,9,3,2,4,5,6,11);
_asm{
r = _mm_extract_epi16(a,inm);
}发布于 2011-05-12 06:56:52
您不能将内部函数放在_asm块中。它们的行为就像其他函数一样。这将工作得很好:
#include <emmintrin.h>
__m128i a = _mm_setr_epi16(8,9,3,2,4,5,6,11);
int r = _mm_extract_epi16(a, 0);发布于 2011-05-12 06:58:26
pextrw指令只对立即值起作用。在C中,这意味着这个值需要是一个编译时间常量。
int r;
static const int inm=0;
__m128i a=_mm_setr_epi16(8,9,3,2,4,5,6,11);
r = _mm_extract_epi16(a,inm); https://stackoverflow.com/questions/5971379
复制相似问题