Arm 如何使用neon访问超过256字节的查找表?

Arm 如何使用neon访问超过256字节的查找表?,arm,simd,neon,Arm,Simd,Neon,我需要使用neon访问整数类型的256值查找表。 有没有可能这样进入 如果以顺序方式在向量中建立索引,我将使用VTBL,或者最多使用256位。 这里我的索引向量索引0-255范围内的任何一个。因此,我无法做到这一点 如果有人知道这件事 请帮帮我 问候,, 微笑用霓虹灯是不可能的 您应该首先思考为什么要使用LUT。大多数情况下,LUT用于在进行复杂数学运算时节省周期,但NEON功能强大,可以轻松处理此类数学运算 暴力算术是霓虹灯游戏的名字。您应该先看看LUT是如何生成的,然后对NEON进行动态计算

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

如果以顺序方式在向量中建立索引,我将使用VTBL,或者最多使用256位。 这里我的索引向量索引0-255范围内的任何一个。因此,我无法做到这一点

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

问候,,
微笑

用霓虹灯是不可能的

您应该首先思考为什么要使用LUT。大多数情况下,LUT用于在进行复杂数学运算时节省周期,但NEON功能强大,可以轻松处理此类数学运算


暴力算术是霓虹灯游戏的名字。您应该先看看LUT是如何生成的,然后对NEON进行动态计算。

看看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寄存器文件,因此每次向量查找都必须重新加载(部分)表