我加载这样的数据:
ld1 {v8.8h, v9.8h, v10.8h, v11.8h}, [%8], #64
但是当我使用数据进行计算时,它会出错:
smlal v16.4s, v8.2d[0], v0.h[0]
错误是:
/tmp/cc2h1F9Y.s:523:错误:操作数2必须是SIMD向量寄存器 - “smlal v16.4s,v8.2d [0],v0.h [0]”
所以我想知道如何在armv7中获得armv8中的64位Vn.8h,就像armv7中的D寄存器一样?
这是一个带有向量的标量。
您可以使用smlal2指令来解决此问题。
smlal v16.4s,v8.4h,v0.h [0]
这将乘以低64位。
smlal2 v16.4s,v8.8h,v0.h [0]
这将乘以高64位。
对于那些困惑的人......