首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >安卓霓虹灯本质上的“加法”和“成对加法”的区别?

安卓霓虹灯本质上的“加法”和“成对加法”的区别?
EN

Stack Overflow用户
提问于 2013-08-08 18:43:40
回答 1查看 3K关注 0票数 2

我在Android上使用Neon实现了一个算法。当我想把向量加在一起的时候,我注意到有两种方法,我找不到区别。

代码语言:javascript
复制
// pairwise addition
int8x8_t vpadd_s8(int8x8_t a, int8x8_t b); // VPADD.I8 d0,d0,d0

// addition
int8x8_t vadd_s8(int8x8_t a, int8x8_t b);  // VADD.I8 d0,d0,d0 

第二个像你所期望的那样。它取a中的ith int8并将其添加到b中的ith int8,为什么这两种方法?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-08-09 01:22:21

有很好的信息可以在ARM信息中心找到。引用用于程序集说明,但名称与本质非常相似。虽然如果你要使用霓虹灯,你将获得更好的性能,只要直接跳到组装。它甚至比使用本质更容易编写。

总之,成对的加法在同一个向量中添加一对元素,然后将结果串联到一个向量中。图解(为了便于绘图,我使用了4元素向量):

代码语言:javascript
复制
vector 'a'   vector 'b'
+-+-+-+-+    +-+-+-+-+
|0|1|2|3|    |4|5|6|7|
+-+-+-+-+    +-+-+-+-+
 \+/ \+/      \+/ \+/
  1   5        9   13
   \   \      /   /
      +-+-+-+--+
      |1|5|9|13|  result
      +-+-+-+--+

这与常规加法指令不同,后者添加了两个向量的对应元素,并给出了结果。

代码语言:javascript
复制
+-+-+-+--+
|4|6|8|10|
+-+-+-+--+

对于ab,在上面的插图中。

票数 12
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18133690

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档