gpt4 book ai didi

assembly - arm neon 比较操作生成负一

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

我正在尝试以下汇编代码:

vclt.f32 q9,q0,#0
vst1.i32 q9,[r2:128]

但是如果条件为真,则q9中对应的元素被设置为负一而不是正一。

我该怎么做才能获得积极的评价?

最佳答案

NEON 中没有很多条件性的东西,但实际上只能使用按位逻辑,而不是 bool 逻辑 - 参见例如vbsl

如果您对 BASIC 的内存很糟糕并且真的很讨厌按位真值,那么将掩码转换为 bool 值的简单方法就是只取每个元素的最高位:

vshr.u32 q9, q9, #31

虽然否定可能乍一看不太清楚,但在某些情况下从微观上看可能会更好:

vneg.s32 q9, q9

(通过浏览微架构时序,两种操作几乎相同,但 vneg 相对于 vshr 的一些理论上的优势是它稍后在 Cortex 上消耗其输入- A8,并且可以下发Cortex-A57/A72的两个ASIMD管道)

无论哪种方式,如顶部所述,这仅对将结果存储回内存以供非矢量化代码查看才真正有意义。

关于assembly - arm neon 比较操作生成负一,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37907030/

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