【发布时间】:2017-03-24 20:54:07
【问题描述】:
这是一个与one非常相似的问题。
在 armv7-a 上,我有以下汇编代码:
vcmp.f64 d0, #0
vmrs APSR_nzcv, fpscr
beq .jumpover
如何将此代码转换为 armv8-a?我想测试v0.16b中是否有非零像素。
编辑#1
我在想这样的事情:
addv b0, v0.16b
fcmp s0, #0.0
beq .jumpover
这是正确的吗?另外,我阅读了以下语句“浮点FCMP和FCCMP指令直接设置整数条件标志,不要修改FPSR中的条件标志。”我不能 100% 理解。
【问题讨论】:
-
请参阅element14.com/community/servlet/JiveServlet/previewBody/…。就像你想要数据移动指令一样。你可以 umov w2,v0.8b[1] 然后 cmp w2, #0
-
您的问题没有意义,因为您是在以整数数据格式描述数据,但要谈谈执行浮点比较。
-
ADDV
d, Vn. 整数和元素到标量(向量)。其中 / 是 B/8B、B/16B、H/4H、H/8H、S/2S 或 S/4S。 -
@Ross Ridge,我的代码适用于 armv7-a。我将 8 个字节加载到 d0 中,然后将向量作为浮点数(64 位)进行比较。阅读 armv7-a 规范。
-
这肯定只是
mov x0, v0.d[0] ; cmp x0, #0 ; beq .jumpover?