我想比较ARM / NEON程序集中的一些值。
以下代码
if (d0 == 0) //the whole 64-bit
r1 += 8;
else {
if (d0[0] == 0) //the lower 8-bit
r1 += 1;
...
}
....
对应于此:
vcmp.f64 d0, #0
vmrs APSR_nzcv, fpscr
addeq r1, r1, #8
beq .jumpover
vmov.u8 r0, d0[0]
cmp r0, #0
addeq r1, r1, #1
...
jumpover:
....
同样,以下代码
if (!(d0 == 0 && d1 == 0)) {//the whole 128-bit
...
}
....
对应于此:
vorr d2, d0, d1
vcmp.f64 d2, #0
vmrs APSR_nzcv, fpscr
beq .jumpover
...
jumpover:
....
有没有办法改善翻译?