@@ -1497,11 +1497,19 @@ let SchedRW = [WriteStore] in {
14971497def MOVDIRI32 : I<0xF9, MRMDestMem, (outs), (ins i32mem:$dst, GR32:$src),
14981498 "movdiri\t{$src, $dst|$dst, $src}",
14991499 [(int_x86_directstore32 addr:$dst, GR32:$src)]>,
1500- T8PS, Requires<[HasMOVDIRI]>;
1500+ T8PS, Requires<[HasMOVDIRI, NoEGPR ]>;
15011501def MOVDIRI64 : RI<0xF9, MRMDestMem, (outs), (ins i64mem:$dst, GR64:$src),
15021502 "movdiri\t{$src, $dst|$dst, $src}",
15031503 [(int_x86_directstore64 addr:$dst, GR64:$src)]>,
1504- T8PS, Requires<[In64BitMode, HasMOVDIRI]>;
1504+ T8PS, Requires<[In64BitMode, HasMOVDIRI, NoEGPR]>;
1505+ def MOVDIRI32_EVEX : I<0xF9, MRMDestMem, (outs), (ins i32mem:$dst, GR32:$src),
1506+ "movdiri\t{$src, $dst|$dst, $src}",
1507+ [(int_x86_directstore32 addr:$dst, GR32:$src)]>,
1508+ EVEX_NoCD8, T_MAP4PS, Requires<[In64BitMode, HasMOVDIRI, HasEGPR]>;
1509+ def MOVDIRI64_EVEX : RI<0xF9, MRMDestMem, (outs), (ins i64mem:$dst, GR64:$src),
1510+ "movdiri\t{$src, $dst|$dst, $src}",
1511+ [(int_x86_directstore64 addr:$dst, GR64:$src)]>,
1512+ EVEX_NoCD8, T_MAP4PS, Requires<[In64BitMode, HasMOVDIRI, HasEGPR]>;
15051513} // SchedRW
15061514
15071515//===----------------------------------------------------------------------===//
@@ -1514,11 +1522,19 @@ def MOVDIR64B16 : I<0xF8, MRMSrcMem, (outs), (ins GR16:$dst, i512mem_GR16:$src),
15141522def MOVDIR64B32 : I<0xF8, MRMSrcMem, (outs), (ins GR32:$dst, i512mem_GR32:$src),
15151523 "movdir64b\t{$src, $dst|$dst, $src}",
15161524 [(int_x86_movdir64b GR32:$dst, addr:$src)]>,
1517- T8PD, AdSize32, Requires<[HasMOVDIR64B]>;
1525+ T8PD, AdSize32, Requires<[HasMOVDIR64B, NoEGPR ]>;
15181526def MOVDIR64B64 : I<0xF8, MRMSrcMem, (outs), (ins GR64:$dst, i512mem_GR64:$src),
15191527 "movdir64b\t{$src, $dst|$dst, $src}",
15201528 [(int_x86_movdir64b GR64:$dst, addr:$src)]>,
1521- T8PD, AdSize64, Requires<[HasMOVDIR64B, In64BitMode]>;
1529+ T8PD, AdSize64, Requires<[HasMOVDIR64B, NoEGPR, In64BitMode]>;
1530+ def MOVDIR64B32_EVEX : I<0xF8, MRMSrcMem, (outs), (ins GR32:$dst, i512mem_GR32:$src),
1531+ "movdir64b\t{$src, $dst|$dst, $src}",
1532+ [(int_x86_movdir64b GR32:$dst, addr:$src)]>,
1533+ EVEX_NoCD8, T_MAP4PD, AdSize32, Requires<[HasMOVDIR64B, HasEGPR, In64BitMode]>;
1534+ def MOVDIR64B64_EVEX : I<0xF8, MRMSrcMem, (outs), (ins GR64:$dst, i512mem_GR64:$src),
1535+ "movdir64b\t{$src, $dst|$dst, $src}",
1536+ [(int_x86_movdir64b GR64:$dst, addr:$src)]>,
1537+ EVEX_NoCD8, T_MAP4PD, AdSize64, Requires<[HasMOVDIR64B, HasEGPR, In64BitMode]>;
15221538} // SchedRW
15231539
15241540//===----------------------------------------------------------------------===//
0 commit comments