首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Intel Intrinsics pack命令误解

Intel Intrinsics pack命令误解
EN

Stack Overflow用户
提问于 2016-10-05 07:03:41
回答 1查看 46关注 0票数 0

刚开始学习本征,然后找到一些暴露了我的无知的东西。这是我所看到的人工版本(VS2015):

代码语言:javascript
复制
__m128i test;

//test.m128i_u16[0] = 127;
//test.m128i_u16[1] = 128;
//test.m128i_u16[2] = 129;
//test.m128i_u16[3] = 130;
//test.m128i_u16[4] = 131;
//test.m128i_u16[5] = 132;
//test.m128i_u16[6] = 133;
//test.m128i_u16[7] = 134;

test.m128i_u16[0] = 50;
test.m128i_u16[1] = 70;
test.m128i_u16[2] = 90;
test.m128i_u16[3] = 110;
test.m128i_u16[4] = 50;
test.m128i_u16[5] = 70;
test.m128i_u16[6] = 90;
test.m128i_u16[7] = 110;

__m128i result = _mm_packus_epi16 (test, test);

因此最后一个命令“使用无符号饱和度将压缩的16位整数从a和b转换为压缩的8位整数,并将结果存储在dst中”。如果我如图所示运行,我会得到我期望的结果:

代码语言:javascript
复制
-       m128i_i8    char[16]
        [0] 50      char
        [1] 70      char
        [2] 90      chara
        [3] 110     char
        [4] 50      char
        [5] 70      char
        [6] 90      char
        [7] 110     char
        [8] 50      char
        [9] 70      char
        [10] 90     char
        [11] 110    char
        [12] 50     char
        [13] 70     char
        [14] 90     char
        [15] 110    char

但是如果我交换上面的输入(使用注释值集),那么我会得到看起来是整数饱和的结果:-

代码语言:javascript
复制
    m128i_i8        char[16]
        [0]     127     char
        [1]     -128    char
        [2]     -127    char
        [3]     -126    char
        [4]     -125    char
        [5]     -124    char
        [6]     -123    char
        [7]     -122    char
        [8]     127     char
        [9]     -128    char
        [10]    -127    char
        [11]    -126    char
        [12]    -125    char
        [13]    -124    char
        [14]    -123    char
        [15]    -122    char

这里我漏掉了什么?解释,错误的命令?

EN

回答 1

Stack Overflow用户

发布于 2016-10-05 12:57:33

即使您执行了无符号饱和,您也可以将结果向量打印为包含int8_t而不是uint8_t元素。因此,每个大于127的值都被打印为负数。

因此,饱和到0xFF的所有内容都将打印为-1。(饱和到0的所有内容都将打印为0,但您的int16_t输入都不是负数)。

还要注意,PACKUSWB将其输入视为带符号的,以防这一点不清楚。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39863069

复制
相关文章

相似问题

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