【问题标题】:addressing an unsigned 16bit vector with an unsigned 32bit offset vector使用无符号 32 位偏移向量寻址无符号 16 位向量
【发布时间】:2015-10-21 20:17:54
【问题描述】:

我有一个指向无符号 16 位向量 uint16x8_t *_h; 的指针 我需要将一些计算得到的无符号 32 位 矢量偏移量 添加到该指针 - 偏移量如下所示:uint32x4_t _o32x4; 问题是如何使用 neon 内在函数

谢谢

编辑

假设我有以下内容:

uint16_t * h = malloc(N * sizeof(uint16_t));
uint16x8_t * _p = (uint16x8_t *) h;

其中N8 的倍数。 _p 指向 8 uint16_t 值的向量。现在,如果我执行_p + offset,其中偏移量是'constant' integer,我将在8 x offset 的位置访问h 指向的数据。

现在假设偏移量不是一个“常数”,而是一个有 4 个值的 向量 所以uint32x4_t offset;我有兴趣用这个偏移量来抵消_p。问题是:有可能吗?如果有可能,怎么做?

【问题讨论】:

  • 指针是一个标量值。您想将矢量偏移量添加到标量值是什么意思?您希望实现的目标并不完全清楚。
  • @Isogen74 - 见我上面的编辑
  • 你期望得到的类型是什么?

标签: arm neon intrinsics


【解决方案1】:

有可能吗?

否 - 您的提议在 C 中无效。

【讨论】:

  • 你错了。我一直在做 EDIT 里的东西。
  • 很确定你没有做pointer + vector,因为它不会编译。你可以用pointer + sizeof(vector) 侥幸逃脱,但是你的指针指向的类型和向量的类型不一样,这是类型别名,因此在最近的标准中是不允许的。
猜你喜欢
  • 1970-01-01
  • 2014-06-23
  • 2011-01-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-08-25
相关资源
最近更新 更多