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?的主要内容,如果未能解决你的问题,请参考以下文章

VNNI 指令的 NEON 仿真

如何使用 NEON SIMD 合并 2 行的元素?

NEON:如何将 128 位 ARGB 转换为具有饱和度的 32 位 ARGB?

ARM NEON:vld4_f32 和 vld4q_f32 有啥区别?

ARM NEON 汇编和浮点舍入

NEON 增加运行时间