[PATCH] D103427: [X86] Fix handling of maskmovdqu in X32
Kan Shengchen via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Thu Mar 24 19:31:48 PDT 2022
skan added inline comments.
================
Comment at: llvm/lib/Target/X86/X86InstrSSE.td:4032-4039
+ AdSize64;
+let Uses = [EDI], Predicates = [UseSSE2,In64BitMode] in
+def MASKMOVDQUX32 : PDI<0xF7, MRMSrcReg, (outs), (ins VR128:$src, VR128:$mask),
+ "addr32 maskmovdqu\t{$mask, $src|$src, $mask}",
+ [(int_x86_sse2_maskmov_dqu VR128:$src, VR128:$mask, EDI)]>,
+ AdSize32 {
+ let AsmVariantName = "NonParsable";
----------------
BTW, why do we need add an instruction like `MASKMOVDQUX32` when we already have `MASKMOVDQU`? They have the same encoding/decoding except a address-size prefix. We can definitly encode a `0x67` during encoding and and print a "addr32" during decoding according to the mode w/o adding any new intrustion. If removing `Not64BitMode` of `MASKMOVDQU` may cause a ISEL issue, we should fix it in ISEL.
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D103427/new/
https://reviews.llvm.org/D103427
More information about the llvm-commits
mailing list