【发布时间】:2012-07-17 05:45:10
【问题描述】:
假设我在 neon 中有一个 64 位的 d 寄存器。假设它存储值 ABCDEFGH。 现在我想添加 A&E、B&F、C&G、D&H 等等。这里有任何内在的东西可以进行这样的操作
我查看了文档,但没有找到合适的内容。
【问题讨论】:
-
这是什么“等等”?你能具体说明你想要达到的目标吗?
-
其实我在做一些图像处理操作。我的图像是 RGBA 格式。我想添加两个连续像素的 r,g,b 和 a 分量。
-
另外,最初我尝试使用 vld4q 加载数据并使用成对加法。但是在一次操作中,所有 16 个寄存器都被使用,出现了一个错误。
-
vld4q_u8 将使用 4 个 q 寄存器。即使在最坏的情况下,添加和存储它们也需要 2 个以上的 q 寄存器。还剩下 10 个寄存器。!你是如何编写代码来使用所有 16 个寄存器来实现这样一个简单的算法的!如果您可以分享您尝试过的代码会更好。它还将帮助我们向您建议最好的编写方式。
-
有多种方法可以做你想做的事,但你究竟想要怎样添加?您想要 16 位结果吗?还是您想要饱和的 8 位结果?如果是饱和有符号或无符号?
标签: c assembly addition neon intrinsics