neon指令,注意事项
1. vbic_s8 (int8x8_t a, int8x8_t b) 是 ~(ai & bi),一开始理解成 (~ai )& bi 导致出错
2.uint8x8_t vqshrn_n_u16 (uint16x8_t __a, const int __b); 饱和窄型右移
uint8x8_t vshrn_n_u16 (uint16x8_t __a, const int __b); 窄型右移,直接copy低8位
比如1024右移一位,前者=255,后者=0
http://blog.csdn.net/emsoften/article/details/51718763
3. uint8x8_t vhsub_u8 (uint8x8_t __a, uint8x8_t __b); 减后的结果右移1位
如果结果是正数没有疑问,如果是负的呢?会不会饱和成0
uint8x8_t a = vhsub_u8 (vdup_n_u8(4),vdup_n_u8(6) );
printf("%x",a[0]); 结果是ff,说明 负数的结果仍然不改变每个bit位,再右移移位得到最终结果.
减法变加法-计算机中的补码表示 http://blog.csdn.net/wongson/article/details/8036219