如何使用霓虹灯访问超过256字节的查找表?

时间:2014-09-26 05:20:40

标签: arm simd neon

我需要使用neon访问256值整数类型的查找表。 有没有可能像这样访问?

如果我的矢量中的索引按顺序方式执行,或者最多256位,我将使用VTBL。 这里我的索引向量索引0到255范围中的任何一个。所以,我无法做到。

如果有人知道这件事 请帮帮我。

此致 笑容

2 个答案:

答案 0 :(得分:1)

查看VTBX指令,它可用于扩展NEON表查找。例如:

// indices in d30, result to d31

VMOV.8 d29, #16
VTBL.8 d31, {q0, q1}, d30
VSUB.8 d30, d30, d29
VTBX.8 d31, {q2, q3}, d30
VSUB.8 d30, d30, d29
VTBX.8 d31, {q4, q5}, d30

但是,256字节的表将需要整个NEON寄存器文件,因此您必须为每个向量查找重新加载(部分)表。

答案 1 :(得分:-1)

NEON不可能。

你应该想到为什么你首先使用LUT。大多数情况下,LUT用于保存复杂数学运算,但NEON非常强大,可以轻松处理这类数学。

蛮力算术是NEON游戏的名称。你应该看看LUT是如何生成的,并在运行中与NEON进行数学运算。