Armv8a霓虹灯内联asm代码:如何将16x8位向量转换为四个4x32位(整数)向量?
我需要加载8位数组,然后使用armv8a neon内联asm代码将每个元素转换为32位整数。我已经用armv7完成了,但不知道如何在v8a中完成 我在v7中使用的代码是Armv8a霓虹灯内联asm代码:如何将16x8位向量转换为四个4x32位(整数)向量?,arm,neon,armv8,Arm,Neon,Armv8,我需要加载8位数组,然后使用armv8a neon内联asm代码将每个元素转换为32位整数。我已经用armv7完成了,但不知道如何在v8a中完成 我在v7中使用的代码是 "pld [%1, #128] \n" "vld1.u8 {d0,d1}, [%1]! \n" "vmovl.u8 q8, d0 \n" "vmovl.u8 q9, d1 \n" "vmovl.
"pld [%1, #128] \n"
"vld1.u8 {d0,d1}, [%1]! \n"
"vmovl.u8 q8, d0 \n"
"vmovl.u8 q9, d1 \n"
"vmovl.u16 q0, d16 \n"
"vmovl.u16 q1, d17 \n"
"vmovl.u16 q2, d18 \n"
"vmovl.u16 q3, d19 \n"
如何使用armv8a霓虹灯代码完成此操作?或者如何将上面的代码转换为armv8a?PS:在我的情况下,我只需要内联asm,而不需要内部函数
感谢您的帮助。对于未签名的元素,
ushl
,ushl2
,班次号为0的将完成此工作
ld1 {v0.16b}, [%1], #16
USHLL v16.8h, v0.8b, #0
USHLL2 v17.8h, v0.16b, #0
USHLL v0.4s, v16.4h, #0
USHLL2 v1.4s, v16.8h, #0
USHLL v2.4s, v17.4h, #0
USHLL2 v3.4s, v17.8h, #0
对于有符号元素-猜测-使用SSHLL
和SSHLL2
同样,在aarch64
上也没有与MOVN
直接等价的内容
--编辑
另一方面,有与
VMOVN
完全相同的XTN/XTN2
指令。对于无符号元素,USHLL
,ushl2
,班次号为0的指令将执行此任务
ld1 {v0.16b}, [%1], #16
USHLL v16.8h, v0.8b, #0
USHLL2 v17.8h, v0.16b, #0
USHLL v0.4s, v16.4h, #0
USHLL2 v1.4s, v16.8h, #0
USHLL v2.4s, v17.4h, #0
USHLL2 v3.4s, v17.8h, #0
对于有符号元素-猜测-使用SSHLL
和SSHLL2
同样,在aarch64
上也没有与MOVN
直接等价的内容
--编辑
另一方面,有
XTN/XTN2
说明与VMOVN
完全相同。谢谢!但是,在aarch64中找不到USHRN和USHRN2。它给出了错误error:unknown助记符ushrn'-ushrn v19.8b、v17.8h、#0'
。因此,我尝试了另一个UQSHRN
,但不允许使用移位号0,这导致了错误“UQSHRN v19.8b,v17.8h,#0”…您能帮个忙吗?@KathyLee My bad,有符号和无符号值都应该是SHRN/SHRN2
。(符号性并不重要,因为最大移位值不能超过元素大小的一半)。那该死的aarch64
助记符(借口,借口)@Kathyle现在我看到SHRN/SHRN
也不允许\0
作为筛选值,我不记得我现在是怎么处理的。。。。。请稍等,我来看看我以前的项目<代码>aarch64
记忆法真的很糟糕。慢慢来。谢谢你的帮助。:)@Kathyle这些是关于“提取狭窄”GRRRR的XTN/XTN2
说明…。。我讨厌aarch64的记忆法。我会相应地修改答案,谢谢!但是,在aarch64中找不到USHRN和USHRN2。它给出了错误error:unknown助记符ushrn'-ushrn v19.8b、v17.8h、#0'
。因此,我尝试了另一个UQSHRN
,但不允许使用移位号0,这导致了错误“UQSHRN v19.8b,v17.8h,#0”…您能帮个忙吗?@KathyLee My bad,有符号和无符号值都应该是SHRN/SHRN2
。(符号性并不重要,因为最大移位值不能超过元素大小的一半)。那该死的aarch64
助记符(借口,借口)@Kathyle现在我看到SHRN/SHRN
也不允许\0
作为筛选值,我不记得我现在是怎么处理的。。。。。请稍等,我来看看我以前的项目<代码>aarch64
记忆法真的很糟糕。慢慢来。谢谢你的帮助。:)@Kathyle这些是关于“提取狭窄”GRRRR的XTN/XTN2
说明…。。我讨厌aarch64的记忆法。我将相应地编辑答案。