如何像armv7中的D寄存器那样获取armv8中Vn.8h的半64bit?
How to get the half 64bit of Vn.8h in armv8 like D register in armv7?
我这样加载数据:
ld1 {v8.8h, v9.8h, v10.8h, v11.8h}, [%8], #64
但是我用数据计算的时候出错了:
smlal v16.4s, v8.2d[0], v0.h[0]
错误是:
/tmp/cc2h1F9Y.s:523: Error: operand 2 must be a SIMD vector register -- `smlal v16.4s,v8.2d[0],v0.h[0]'
所以我想知道如何在armv8中像在armv7中获取D寄存器一样获取Vn.8h的半64位?
这是将标量与向量相乘。
可以使用smlal2指令解决。
smlal v16.4s,v8.4h,v0.h[0]
这将乘以低 64 位。
smlal2 v16.4s,v8.8h,v0.h[0]
这将乘以高 64 位。
对于那些对此感到困惑的人...
我这样加载数据:
ld1 {v8.8h, v9.8h, v10.8h, v11.8h}, [%8], #64
但是我用数据计算的时候出错了:
smlal v16.4s, v8.2d[0], v0.h[0]
错误是:
/tmp/cc2h1F9Y.s:523: Error: operand 2 must be a SIMD vector register -- `smlal v16.4s,v8.2d[0],v0.h[0]'
所以我想知道如何在armv8中像在armv7中获取D寄存器一样获取Vn.8h的半64位?
这是将标量与向量相乘。
可以使用smlal2指令解决。
smlal v16.4s,v8.4h,v0.h[0]
这将乘以低 64 位。
smlal2 v16.4s,v8.8h,v0.h[0]
这将乘以高 64 位。
对于那些对此感到困惑的人...