Skip to content

Commit f6cdc37

Browse files
committed
resolve comment
1 parent 79d2fc0 commit f6cdc37

File tree

2 files changed

+26
-25
lines changed

2 files changed

+26
-25
lines changed

llvm/lib/Target/X86/X86InstrMisc.td

Lines changed: 25 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -229,7 +229,7 @@ def PUSHA16 : I<0x60, RawFrm, (outs), (ins), "pushaw", []>,
229229
OpSize16, Requires<[Not64BitMode]>;
230230
}
231231

232-
let Constraints = "$src = $dst", SchedRW = [WriteBSWAP32], Predicates = [NoEGPR] in {
232+
let Constraints = "$src = $dst", SchedRW = [WriteBSWAP32], Predicates = [NoNDD] in {
233233
// This instruction is a consequence of BSWAP32r observing operand size. The
234234
// encoding is valid, but the behavior is undefined.
235235
let isCodeGenOnly = 1, ForceDisassemble = 1, hasSideEffects = 0 in
@@ -1150,30 +1150,31 @@ let Predicates = [HasMOVBE, HasEGPR, In64BitMode] in {
11501150
[(store (bswap GR64:$src), addr:$dst)]>,
11511151
EVEX, NoCD8, T_MAP4;
11521152
}
1153-
let SchedRW = [WriteALU] in {
1154-
def MOVBE16rr_EVEX : I<0x61, MRMDestReg, (outs GR16:$dst), (ins GR16:$src),
1155-
"movbe{w}\t{$src, $dst|$dst, $src}",
1156-
[(set GR16:$dst, (bswap GR16:$src))]>,
1157-
EVEX, NoCD8, T_MAP4, PD;
1158-
def MOVBE32rr_EVEX : I<0x61, MRMDestReg, (outs GR32:$dst), (ins GR32:$src),
1159-
"movbe{l}\t{$src, $dst|$dst, $src}",
1160-
[(set GR32:$dst, (bswap GR32:$src))]>,
1161-
EVEX, NoCD8, T_MAP4;
1162-
def MOVBE64rr_EVEX : RI<0x61, MRMDestReg, (outs GR64:$dst), (ins GR64:$src),
1163-
"movbe{q}\t{$src, $dst|$dst, $src}",
1164-
[(set GR64:$dst, (bswap GR64:$src))]>,
1165-
EVEX, NoCD8, T_MAP4;
1153+
}
11661154

1167-
def MOVBE16rr_EVEX_REV : I<0x60, MRMSrcReg, (outs GR16:$dst), (ins GR16:$src),
1168-
"movbe{w}\t{$src, $dst|$dst, $src}", []>,
1169-
EVEX, NoCD8, T_MAP4, PD;
1170-
def MOVBE32rr_EVEX_REV : I<0x60, MRMSrcReg, (outs GR32:$dst), (ins GR32:$src),
1171-
"movbe{l}\t{$src, $dst|$dst, $src}", []>,
1172-
EVEX, NoCD8, T_MAP4;
1173-
def MOVBE64rr_EVEX_REV : RI<0x60, MRMSrcReg, (outs GR64:$dst), (ins GR64:$src),
1174-
"movbe{q}\t{$src, $dst|$dst, $src}", []>,
1175-
EVEX, NoCD8, T_MAP4;
1176-
}
1155+
let SchedRW = [WriteALU], Predicates = [HasMOVBE, HasNDD, In64BitMode] in {
1156+
def MOVBE16rr_EVEX : I<0x61, MRMDestReg, (outs GR16:$dst), (ins GR16:$src),
1157+
"movbe{w}\t{$src, $dst|$dst, $src}",
1158+
[(set GR16:$dst, (bswap GR16:$src))]>,
1159+
EVEX, NoCD8, T_MAP4, PD;
1160+
def MOVBE32rr_EVEX : I<0x61, MRMDestReg, (outs GR32:$dst), (ins GR32:$src),
1161+
"movbe{l}\t{$src, $dst|$dst, $src}",
1162+
[(set GR32:$dst, (bswap GR32:$src))]>,
1163+
EVEX, NoCD8, T_MAP4;
1164+
def MOVBE64rr_EVEX : RI<0x61, MRMDestReg, (outs GR64:$dst), (ins GR64:$src),
1165+
"movbe{q}\t{$src, $dst|$dst, $src}",
1166+
[(set GR64:$dst, (bswap GR64:$src))]>,
1167+
EVEX, NoCD8, T_MAP4;
1168+
1169+
def MOVBE16rr_EVEX_REV : I<0x60, MRMSrcReg, (outs GR16:$dst), (ins GR16:$src),
1170+
"movbe{w}\t{$src, $dst|$dst, $src}", []>,
1171+
EVEX, NoCD8, T_MAP4, PD;
1172+
def MOVBE32rr_EVEX_REV : I<0x60, MRMSrcReg, (outs GR32:$dst), (ins GR32:$src),
1173+
"movbe{l}\t{$src, $dst|$dst, $src}", []>,
1174+
EVEX, NoCD8, T_MAP4;
1175+
def MOVBE64rr_EVEX_REV : RI<0x60, MRMSrcReg, (outs GR64:$dst), (ins GR64:$src),
1176+
"movbe{q}\t{$src, $dst|$dst, $src}", []>,
1177+
EVEX, NoCD8, T_MAP4;
11771178
}
11781179

11791180
//===----------------------------------------------------------------------===//

llvm/test/CodeGen/X86/movbe.ll

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 4
22
; RUN: llc -mtriple=x86_64-linux -mcpu=atom < %s | FileCheck %s
33
; RUN: llc -mtriple=x86_64-linux -mcpu=slm < %s | FileCheck %s -check-prefix=SLM
4-
; RUN: llc -mtriple=x86_64-linux -mcpu=slm -mattr=+egpr --show-mc-encoding < %s | FileCheck %s -check-prefix=EGPR
4+
; RUN: llc -mtriple=x86_64-linux -mcpu=slm -mattr=+egpr,+ndd --show-mc-encoding < %s | FileCheck %s -check-prefix=EGPR
55

66
declare i16 @llvm.bswap.i16(i16) nounwind readnone
77
declare i32 @llvm.bswap.i32(i32) nounwind readnone

0 commit comments

Comments
 (0)