<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/62412>62412</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
[X86] decoding VMOVPQIto64Zmr returns different offset than intelxed
</td>
</tr>
<tr>
<th>Labels</th>
<td>
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
mur47x111
</td>
</tr>
</table>
<pre>
```
$ xed -64 -A -de "62 e1 fd 08 7e 5a 7f"
SHORT: vmovqq %xmm19, 0x3f8(%rdx)
$ echo "0x62 0xe1 0xfd 0x08 0x7e 0x5a 0x7f" | llvm-mc -disassemble --print-imm-hex
vmovq %xmm19, 0x7f0(%rdx)
```
I think the definition lacks the tuple, and the displacement scaling factor defaults to 16. The following may address the issue:
```
diff --git a/llvm/lib/Target/X86/X86InstrAVX512.td b/llvm/lib/Target/X86/X86InstrAVX512.td
index af8656cc7d7b..d20f00466a34 100644
--- a/llvm/lib/Target/X86/X86InstrAVX512.td
+++ b/llvm/lib/Target/X86/X86InstrAVX512.td
@@ -4068,7 +4068,7 @@ def VMOVPQIto64Zrr : I<0x7E, MRMDestReg, (outs GR64:$dst), (ins VR128X:$src),
let isCodeGenOnly = 1, ForceDisassemble = 1, hasSideEffects = 0, mayStore = 1 in
def VMOVPQIto64Zmr : I<0x7E, MRMDestMem, (outs), (ins i64mem:$dst, VR128X:$src),
"vmovq\t{$src, $dst|$dst, $src}", []>, PD,
- EVEX, REX_W, Sched<[WriteVecStore]>,
+ EVEX, REX_W, EVEX_CD8<64, CD8VT1>, Sched<[WriteVecStore]>,
Requires<[HasAVX512, In64BitMode]>;
def VMOVPQI2QIZmr : I<0xD6, MRMDestMem, (outs),
```
Encoding should be fine -- it selects `VMOVPQI2QIZmr`
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJycVV1zmzoT_jXyzQ4eIYTAF76IwW59kUnrZNzMe9MRaDF6y0ciiRzy788InM-mPafHw2Ch1T77rHb1SFqrTx3imsQbEucLObi6N-t2MDwZwzBcFL16XBNBzw_NCb0gjMOICgLBIbgACBQCYUwwwBAqBTSFBCGWkFSEsdnn-vPV4YZEFzD9Htr-4f4egLB4bNtwRVgGdIyqlLCUsNiokbDVSzAs695HoKNgQEcMgY4-zkhToGOCQMdY-pGPByTJoGke2qAtIVDaSmuxLRqEILgzunOBbtugxnHGB3hFCd5TSir6AaV32zG99-Bq3f0AVyMorHSnne47aGT5w06Tbrhr0KPKTs2rtL1rZIktdg5sKRvdnaCSpeuNR5BD4yy4HkKxhJsaoeqbpv_LL2rlI0ilDNoZWls7IIkuPqSndFVBEJy0A0nYzu-M_9MFYbsbaU7oCNvdpmJ-7zvrzMXxNg7Z0iko_tRjjqk7hSPIKhWxKMtEJcVyqRitKOVCyIhDSKngfF4cBMGfM3tqjs38_FeihFPCKQScipSwLAHCNi_j2aiwguPl1fHL173rBf-fMeAbeU-ijI7J1pf08nCZo3UHPPkvwtJ-cBY-HQT3VWFcWee7Z7bpzsLxELL0djZaU87Gc0M26EDbrFf4CburrnkEEuUQeu9db0rMX7X0s6WW9lor3FYVls5O89TPt_Lx2vXmvBJ0dw7yPqn2l0ldYvsqqbdpaMFbbF_lmP02s49_hLHp8JE4cyTZPPn5IBNokr2gn41J7oXFf0-yRaKJ8Jf8OVTwcajtcXvrVx62t9-_-cF1WaMiUUbizTejHR6xnLbrGfS5z3729RPfszwlUSa4n8jy9HgTnsn8S-Rf7MkB7wdt0M4An6Wd-9YD7zvBN9pd9uoJK9qcsX6uLfu6f1vaXPxDaX8jcduu7JXXH1v3Q6OgQKh053UVtAOLzdx6gr4JTgRdqHWkVtFKLnAdipQJFgkRLuq1YlVcMl6VPBGh4HFRrgpWpEVVxCuponCh14yyiHKWhCuW8HAZ01KFQmCSpiUqHhFOsZW6WfrDv-zNaTGJ4VowHrJFIwts7NPlZtbTtVAMJ0s4bbR19sXNaddM16DXizgHhedk350Sg24wnQUvq2i8dPdVZdGBq2UHunPYjKgWg2nWtXN3djoJO8J2J-3qoViWfftKqjyfO9P_H0svVRN1S9huYv93AAAA___goiNL">