Skip to content

Commit 61b5812

Browse files
committed
[X86][NFC] Not imply EVEX in NoCD8
NDD (new data destination) instructions need to set NoCD8 and EVEX_4V. EVEX_4V already implies EVEX. If NoCD8 implied EVEX too, we would not be able to reuse the class.
1 parent 5e92fa6 commit 61b5812

File tree

4 files changed

+8
-8
lines changed

4 files changed

+8
-8
lines changed

llvm/lib/Target/X86/X86InstrMisc.td

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1505,11 +1505,11 @@ def MOVDIRI64 : RI<0xF9, MRMDestMem, (outs), (ins i64mem:$dst, GR64:$src),
15051505
def MOVDIRI32_EVEX : I<0xF9, MRMDestMem, (outs), (ins i32mem:$dst, GR32:$src),
15061506
"movdiri\t{$src, $dst|$dst, $src}",
15071507
[(int_x86_directstore32 addr:$dst, GR32:$src)]>,
1508-
EVEX_NoCD8, T_MAP4PS, Requires<[In64BitMode, HasMOVDIRI, HasEGPR]>;
1508+
EVEX, NoCD8, T_MAP4PS, Requires<[In64BitMode, HasMOVDIRI, HasEGPR]>;
15091509
def MOVDIRI64_EVEX : RI<0xF9, MRMDestMem, (outs), (ins i64mem:$dst, GR64:$src),
15101510
"movdiri\t{$src, $dst|$dst, $src}",
15111511
[(int_x86_directstore64 addr:$dst, GR64:$src)]>,
1512-
EVEX_NoCD8, T_MAP4PS, Requires<[In64BitMode, HasMOVDIRI, HasEGPR]>;
1512+
EVEX, NoCD8, T_MAP4PS, Requires<[In64BitMode, HasMOVDIRI, HasEGPR]>;
15131513
} // SchedRW
15141514

15151515
//===----------------------------------------------------------------------===//
@@ -1530,11 +1530,11 @@ def MOVDIR64B64 : I<0xF8, MRMSrcMem, (outs), (ins GR64:$dst, i512mem_GR64:$src),
15301530
def MOVDIR64B32_EVEX : I<0xF8, MRMSrcMem, (outs), (ins GR32:$dst, i512mem_GR32:$src),
15311531
"movdir64b\t{$src, $dst|$dst, $src}",
15321532
[(int_x86_movdir64b GR32:$dst, addr:$src)]>,
1533-
EVEX_NoCD8, T_MAP4PD, AdSize32, Requires<[HasMOVDIR64B, HasEGPR, In64BitMode]>;
1533+
EVEX, NoCD8, T_MAP4PD, AdSize32, Requires<[HasMOVDIR64B, HasEGPR, In64BitMode]>;
15341534
def MOVDIR64B64_EVEX : I<0xF8, MRMSrcMem, (outs), (ins GR64:$dst, i512mem_GR64:$src),
15351535
"movdir64b\t{$src, $dst|$dst, $src}",
15361536
[(int_x86_movdir64b GR64:$dst, addr:$src)]>,
1537-
EVEX_NoCD8, T_MAP4PD, AdSize64, Requires<[HasMOVDIR64B, HasEGPR, In64BitMode]>;
1537+
EVEX, NoCD8, T_MAP4PD, AdSize64, Requires<[HasMOVDIR64B, HasEGPR, In64BitMode]>;
15381538
} // SchedRW
15391539

15401540
//===----------------------------------------------------------------------===//

llvm/lib/Target/X86/X86InstrSystem.td

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -682,7 +682,7 @@ def INVPCID64 : I<0x82, MRMSrcMem, (outs), (ins GR64:$src1, i128mem:$src2),
682682

683683
def INVPCID64_EVEX : I<0xF2, MRMSrcMem, (outs), (ins GR64:$src1, i128mem:$src2),
684684
"invpcid\t{$src2, $src1|$src1, $src2}", []>,
685-
EVEX_NoCD8, T_MAP4XS, Requires<[In64BitMode, HasINVPCID]>;
685+
EVEX, NoCD8, T_MAP4XS, Requires<[In64BitMode, HasINVPCID]>;
686686
} // SchedRW
687687

688688
let Predicates = [In64BitMode, HasINVPCID] in {

llvm/lib/Target/X86/X86InstrUtils.td

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,7 @@ class EVEX_CD8<int esize, CD8VForm form> {
8686
int CD8_EltSize = !srl(esize, 3);
8787
bits<3> CD8_Form = form.Value;
8888
}
89-
class EVEX_NoCD8 : EVEX { bits<7> CD8_Scale = 0; }
89+
class NoCD8 { bits<7> CD8_Scale = 0; }
9090
class XOP { Encoding OpEnc = EncXOP; }
9191
class XOP_4V : XOP { bit hasVEX_4V = 1; }
9292
class EVEX2VEXOverride<string VEXInstrName> {

llvm/lib/Target/X86/X86InstrVMX.td

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ def INVEPT64 : I<0x80, MRMSrcMem, (outs), (ins GR64:$src1, i128mem:$src2),
2424
Requires<[In64BitMode]>;
2525
def INVEPT64_EVEX : I<0xF0, MRMSrcMem, (outs), (ins GR64:$src1, i128mem:$src2),
2626
"invept\t{$src2, $src1|$src1, $src2}", []>,
27-
EVEX_NoCD8, T_MAP4XS, Requires<[In64BitMode]>;
27+
EVEX, NoCD8, T_MAP4XS, Requires<[In64BitMode]>;
2828

2929
// 66 0F 38 81
3030
def INVVPID32 : I<0x81, MRMSrcMem, (outs), (ins GR32:$src1, i128mem:$src2),
@@ -35,7 +35,7 @@ def INVVPID64 : I<0x81, MRMSrcMem, (outs), (ins GR64:$src1, i128mem:$src2),
3535
Requires<[In64BitMode]>;
3636
def INVVPID64_EVEX : I<0xF1, MRMSrcMem, (outs), (ins GR64:$src1, i128mem:$src2),
3737
"invvpid\t{$src2, $src1|$src1, $src2}", []>,
38-
EVEX_NoCD8, T_MAP4XS, Requires<[In64BitMode]>;
38+
EVEX, NoCD8, T_MAP4XS, Requires<[In64BitMode]>;
3939

4040
// 0F 01 C1
4141
def VMCALL : I<0x01, MRM_C1, (outs), (ins), "vmcall", []>, TB;

0 commit comments

Comments
 (0)