1
考慮存儲器佈局,使得8個連續的4字節塊讀取[abcdefgh]
。我把它們加載到兩個寄存器v0.4s
和v1.4s
,所以我得到v0.4s = [abcd]
和v1.4s = [efgh]
,其中每個字符代表一個32位塊。我想重新排序它們以獲得兩個(可能不同)寄存器中的[abef]
和[cdgh]
。ARMv8 NEON向量置換
我現在的做法是首先將[efgh]
的64位二進制取反,得到[ghef]
。然後我可以使用提取得到[abef]
和[ghcd]
。然後,我可以再次終止[ghcd]
的64位二分之一,得到[cdgh]
。
任何人都可以說更好的方法嗎?
有沒有原因你不使用'zip','uzp'或'trn'? – EOF