我使用 arm 组件和 NEON SIMD 指令。我想获得两个 Q 寄存器中的最大 16 位无符号值,并将它们与阈值进行比较。如果所有 16 位值都小于阈值,我调用一个函数。如果一个或多个值大于阈值,我调用另一个函数。
以下 SIMD 指令获得最大值。
// 阈值是一个 r 寄存器
vdup.16 q15, threshold
vmax.u16 q12, q14, q13
vcgt.u16 q11, q12, q15
vcgt 会影响 FPSCR 标志吗?我想不是。然后我必须检查 q11 是否为零。如果是zeor,调用function1,否则调用function2。这就像
if (q11 == 0)
//call function1
else
//call function2
在不将 q11 移动到 4 r 寄存器的情况下如何做到这一点?
谢谢