Neon 指令,vsub_f32(a, b),是 a-b 还是 b-a?
Posted
技术标签:
【中文标题】Neon 指令,vsub_f32(a, b),是 a-b 还是 b-a?【英文标题】:Neon instruction, vsub_f32(a, b), is it a-b or b-a? 【发布时间】:2015-05-22 11:43:17 【问题描述】:在这条霓虹灯指令中(来自here):
float32x2_t vsub_f32(float32x2_t a, float32x2_t b); // VSUB.F32 d0,d0,d0
它返回 a - b 还是 b - a?我在 ARM 文档中找不到它...
【问题讨论】:
【参考方案1】:VSUB 指令减去第二个操作数中的值 从第一个操作数寄存器中的值注册,并将 结果是目标寄存器。
来自http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.dui0489c/Bcffigdj.html
所以,它是a-b
【讨论】:
c 内部函数的操作数是否总是与程序集内部函数的顺序相同? @JanRüegg 从理论上讲,这并不能保证,但其他任何东西都是非常愚蠢的设计。 我同意 :P 非常感谢!【参考方案2】:您可能会发现 Neon Intrinsics 的扩展文档更有用。它还提供了从函数参数到指令操作数的映射,可从以下网址获得:
http://infocenter.arm.com/help/topic/com.arm.doc.ihi0073a/IHI0073A_arm_neon_intrinsics_ref.pdf
对于vsub_f32
,该文档提供以下信息:
float32x2_t vsub_f32 (float32x2_t a, float32x2_t b)
a → Vn.2S b → Vm.2S
FSUB Vd.2S,Vn.2S,Vm.2S
【讨论】:
以上是关于Neon 指令,vsub_f32(a, b),是 a-b 还是 b-a?的主要内容,如果未能解决你的问题,请参考以下文章
NEON:如何将 128 位 ARGB 转换为具有饱和度的 32 位 ARGB?