gpt4 book ai didi

assembly - 影响标志的 NEON 汇编矢量指令

转载 作者:行者123 更新时间:2023-12-02 02:01:23 26 4
gpt4 key购买 nike

我使用 arm assembly 和 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 寄存器,我该怎么做?

谢谢

最佳答案

没有 - 至少在用户模式下没有。这些 cmp 指令创建掩码向量,您可以根据这些向量在两个结果之间选择值。

  1. 使用适当的 vcmp 创建掩码
  2. 计算两种情况的结果
  3. 使用 1 中的掩码将上述两个结果中的相应元素放入每个泳道。

目前我不能准确地告诉你说明是什么,因为我是在火车上用我的 iPhone 写的。但在引用手册中找到它们不会有问题。

关于assembly - 影响标志的 NEON 汇编矢量指令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17089023/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com