The indexed dot product instructions only accept the lower 16 D-registers as
the indexed register, but we were e.g. incorrectly accepting:
vudot.u8 d16,d16,d18[0]
Differential D37968
[ARM] Fix for indexed dot product instruction descriptions SjoerdMeijer on Sep 18 2017, 3:54 AM. Authored by
Details The indexed dot product instructions only accept the lower 16 D-registers as vudot.u8 d16,d16,d18[0]
Diff Detail Event TimelineComment Actions The last ARMv8.2 manual I could find is from 31 March, but it says UDOT/SDOT will be documented later. Do you have an update on that? It's really hard to review patches without official documentation out. Comment Actions Hi, the full architecture specification is publicly available here: https://developer.arm.com/products/architecture/a-profile/exploration-tools which I also mentioned in the commit message of r310480, which introduced initial AArch64 assembler support. Hope this helps. Comment Actions Ignore me, that was VSDOT... :) Where is the restriction that only the lower 16 registers are allowed? Can you test quad regs, too? Just to make it clear the lane issue. Comment Actions
It's in the pseudo-code: integer m = UInt(Vm<3:0>); integer index = UInt(M); Normally that 'M' bit would be the high bit of Vm (as for Vd and Vn just above). Here it's used to encode the lane. Comment Actions I was just replying, but yes, there are only 4 bits available to encode Vm, the other M bit is the index. |