[英]Porting ARM NEON code to AARCH64, many questions
我正在將一些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]!
但我在新文檔中找不到任何內容。
我知道這是一個全新的模型,但它沒有很好的記錄(或者至少,我無法找到任何可讀樣本的參考)
關於在Android中使用ARMv8的文檔不是很好,但針對您的具體問題,本文檔中的答案非常好:
回答您的具體問題:
mov R0, #42
vdup.8 D0, R0
變
mov w0,#42
dup v0.8b,w0
和
vld4.8 {d0-d3}, [r0]!
變
ld4 {v0.8b,v1.8b,v2.8b,v3.8b},[x0],#32
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.