gpt4 book ai didi

arm - 平均操作 ARM NEON

转载 作者:行者123 更新时间:2023-12-04 13:54:05 26 4
gpt4 key购买 nike

我需要计算与 SSE 相同的操作:

__m128i result1=_mm_avg_epu8 (upper, lower);

使用 NEON,我执行以下操作:
uint8x16_t result1=vhaddq_u8(upper, lower);

结果应该是一样的,但是我得到了 SSE 指令:
91cb c895 aaa3 b0d4 cfc0 c1b0 aac7 b9b9

而使用 NEON 指令我得到:
91ca c894 a9a2 b0d3 cec0 c1af aac7 b8b8 

我不明白为什么这两个结果不同。你能帮助我吗?

最佳答案

Neon“减半添加”操作vhadd像这样工作:

A = (B + C) >> 1

而上证平均内在 _mm_avg_epu8做这个:
A = (B + C + 1) >> 1

换句话说,Neon 使用其“减半加”操作执行截断平均值,而 SSE 正确舍入结果。

幸运的是,有一个 Neon 指令以与 SSE 的 _mm_avg_epu8 相同的方式四舍五入。 - 它叫做 vrhadd - 矢量舍入减半添加。

关于arm - 平均操作 ARM NEON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18657889/

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