zoukankan      html  css  js  c++  java
  • NEON的比较是把所有的bit都设置为1

    NEON中的比较指令,如果结果为true,是把所有的bit都设置为1,而不是设置为1.

        ushort data1[4] = {129,0,136,255};
        uint16x4_t v0 = vld1_u16(data1);
        uint16x4_t v1 = vdup_n_u16(128);
        uint16x4_t cr = vcgt_u16(v0, v1);
        LOGD("uint %d %d %d %d", cr[0],cr[1],cr[2],cr[3]);
    
        int16x4_t sv0 = vld1_u16(data1);
        int16x4_t sv1 = vdup_n_u16(128);
        int16x4_t scr = vcgt_u16(v0, v1);
        LOGD("int %d %d %d %d", scr[0],scr[1],scr[2],scr[3]);
    

    输出:

    D/OLOG:uint 65535 0 65535 65535
    D/OLOG:int -1 0 -1 -1
    

    所以,这也解释了某些时候你发现true返回的结果为-1而不是1,并不是驱动有问题,而是文档没有理解正确。比如在OpenCL中也有同样的问题。

  • 相关阅读:
    POJ 2486
    奇怪的电梯
    穿越泥地(mud)
    救援行动(save)
    As Fast As Possible
    Connecting Universities
    They Are Everywhere
    Cells Not Under Attack
    吃饭
    花店橱窗(flower)
  • 原文地址:https://www.cnblogs.com/willhua/p/12505950.html
Copyright © 2011-2022 走看看