Bon*_*rWu 0 arm simd intrinsics neon
我想比较2 int8x8_t,从http://gcc.gnu.org/onlinedocs/gcc/ARM-NEON-Intrinsics.html
我们可以得到描述vclt_s8,但它没有告诉我们太多的细节.
`uint8x8_t vclt_s8 (int8x8_t, int8x8_t)`
Run Code Online (Sandbox Code Playgroud)
预期指令的形式:vcgt.s8 d0,d0,d0
返回值uint8x8_t,它让我感到困惑,因为我无法
if(vclt_s8(a, b))决定第一个是否更小.
那么假设我们有两个int8x8_t:int8x8_t a而且int8x8_t b,我们怎么知道它是否a更小?
所有比较函数的通用描述都指出:
如果对于通道的比较为真,则该通道中的结果将所有位设置为1.如果通道的比较为假,则所有位都设置为零.返回类型是无符号整数类型.
假设你有:(这是伪代码,[]意味着每个向量的8个值)
int8x8_t a = [-1, -1, -1, -1, 1, 1, 1, 1];
int8x8_t b = [ 0, 0, 0, 0, 0, 0, 0, 0];
uint8x8_t c = vclt_s8(a, b);
Run Code Online (Sandbox Code Playgroud)
你会得到:
c = [255, 255, 255, 255, 0, 0, 0, 0];
Run Code Online (Sandbox Code Playgroud)
4个第一个值a小于4个第一个值b:前4个值的所有位c都设置为1,形成它们255.
以同样的方式,所有4个最后的值都更大:最后4个值的所有位c都设置为0,从而产生它们0.
希望这可以帮助!
| 归档时间: |
|
| 查看次数: |
1570 次 |
| 最近记录: |