[Hexagon] Disallow using the same register for Vy/Vx in vdeal/vshuff
authorAlexey Karyakin <akaryaki@quicinc.com>
Wed, 1 Feb 2023 15:18:31 +0000 (07:18 -0800)
committerKrzysztof Parzyszek <kparzysz@quicinc.com>
Wed, 1 Feb 2023 15:29:03 +0000 (07:29 -0800)
commit97d51e3fa8e8a6ecd134dab79272f7cf94122e51
tree3fac74828383944ff3cde4975f900b5cb43c0005
parent3dcbbddf169354078497724eabd9e6a0b82596c2
[Hexagon] Disallow using the same register for Vy/Vx in vdeal/vshuff

Non-assignment forms of vshuff and vdeal use the first two registers
(Vy, Vx) as both inputs and outputs. It is not valid to use the same
register for both Vy and Vx. The double-write error was not detected
previously because of a special case, which is not actually necessary.

Differential Revision: https://reviews.llvm.org/D142251
llvm/lib/Target/Hexagon/MCTargetDesc/HexagonMCChecker.cpp
llvm/test/MC/Hexagon/PacketRules/hvx_vshuff_vdeal.s [new file with mode: 0644]
llvm/test/MC/Hexagon/PacketRules/hvx_vshuff_vdeal_dup.s [new file with mode: 0644]
llvm/test/MC/Hexagon/extensions/v67_hvx.s