首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SSE2值提取问题

SSE2值提取问题
EN

Stack Overflow用户
提问于 2011-05-12 06:35:35
回答 2查看 746关注 0票数 1

我想从128位寄存器中提取值(第一个字16位),我得到了这个命令,但这不是working.there,在设置了a的值后,这将是一些算术操作,然后会有一些算术操作,因为变量内部的结果将改变最后我想提取第一个word...how我可以这样做吗…

代码语言:javascript
复制
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);    
}
EN

回答 2

Stack Overflow用户

发布于 2011-05-12 06:56:52

您不能将内部函数放在_asm块中。它们的行为就像其他函数一样。这将工作得很好:

代码语言:javascript
复制
#include <emmintrin.h>

__m128i a = _mm_setr_epi16(8,9,3,2,4,5,6,11);
int r = _mm_extract_epi16(a, 0);
票数 8
EN

Stack Overflow用户

发布于 2011-05-12 06:58:26

pextrw指令只对立即值起作用。在C中,这意味着这个值需要是一个编译时间常量。

代码语言:javascript
复制
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);    
票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5971379

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档