我使用手臂组件和NEON SIMD指令。我想得到两个Q寄存器中最大的16位无符号值,并将它们与阈值进行比较。如果所有16位值都小于阈值,我调用一个函数。如果一个或多个值大于阈值,我调用另一个函数。
以下SIMD说明获得最大值。
// threshold是一个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寄存器,我怎么能这样做?
由于
答案 0 :(得分:2)
没有 - 至少没有在用户模式下。 那些cmp指令创建了掩码向量,您可以根据这两个结果选择值。
目前我无法准确地告诉你这些说明是什么,因为我在火车上写了我的iPhone。但在参考手册中找到它们不会有问题。