【发布时间】:2015-03-18 23:22:18
【问题描述】:
我正在将一些 ARM NEON 代码移植到 64 位 ARM-v8,但我找不到关于它的好文档。
很多功能好像没了,不使用也不知道怎么实现同样的功能。
所以,一般的问题是:我在哪里可以找到新 SIMD 实现的完整参考,包括如何执行许多 ARM-NEON 教程中解释的相同简单任务的说明?
关于特定功能的一些问题:
1 - 如何在 Dx 寄存器的所有通道中加载一个值?旧代码是
mov R0, #42
vdup.8 D0, R0
我的猜测是:
mov W0, #42
dup V0.8B, W0
2 - 如何加载具有交错数据的多个 Dx/Qx 寄存器?在旧代码中是:
vld4.8 {D0-D3}, [R0]!
但我在新文档中找不到任何内容。
我知道这是一个全新的模型,但它的文档记录不是很好(或者至少,我无法找到任何具有可读示例的参考)
【问题讨论】:
-
我同意
dup看起来等同于vdup;vld4的等价物似乎是ld4。可能值得尝试查找旧的“ARMv8 指令集概述”PDF 的副本——自从正确的 ARMv8-A ARM 发布以来,它已从 ARM 网站上消失,但更容易浏览。
标签: android arm simd neon arm64