From: Roman Lebedev Date: Fri, 7 May 2021 12:43:32 +0000 (+0300) Subject: [NFC][X86] AMD Zen 3: move sched classes for renameables moves togeter X-Git-Tag: llvmorg-14-init~7323 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=c3cd8ed0097b07e5454255ffe5899ded21ca0bff;p=platform%2Fupstream%2Fllvm.git [NFC][X86] AMD Zen 3: move sched classes for renameables moves togeter --- diff --git a/llvm/lib/Target/X86/X86ScheduleZnver3.td b/llvm/lib/Target/X86/X86ScheduleZnver3.td index 3177a2d..7fa4ff0 100644 --- a/llvm/lib/Target/X86/X86ScheduleZnver3.td +++ b/llvm/lib/Target/X86/X86ScheduleZnver3.td @@ -504,15 +504,6 @@ defm : Zn3WriteResInt; defm : Zn3WriteResInt; -def Zn3WriteMoveRenameable : SchedWriteRes<[Zn3ALU0123]> { - let Latency = 0; - let ResourceCycles = [1]; - let NumMicroOps = 1; -} -def : InstRW<[Zn3WriteMoveRenameable], (instrs MOV32rr, MOV32rr_REV, - MOV64rr, MOV64rr_REV, - MOVSX32rr32)>; - def Zn3WriteMOVBE16rm : SchedWriteRes<[Zn3AGU012, Zn3Load, Zn3ALU0123]> { let Latency = Znver3Model.LoadLatency; let ResourceCycles = [1, 1, 4]; @@ -689,8 +680,6 @@ def Zn3WriteCMPXCHG16B_LCMPXCHG16B : SchedWriteRes<[Zn3ALU0123]> { } def : InstRW<[Zn3WriteCMPXCHG16B_LCMPXCHG16B], (instrs CMPXCHG16B, LCMPXCHG16B)>; -defm : Zn3WriteResInt; // Compare+Exchange - TODO RMW support. - def Zn3WriteWriteXCHGUnrenameable : SchedWriteRes<[Zn3ALU0123]> { let Latency = 1; let ResourceCycles = [2]; @@ -896,10 +885,6 @@ defm : Zn3WriteResXMM; defm : Zn3WriteResYMM; -defm : Zn3WriteResXMM; -defm : Zn3WriteResXMM; -defm : Zn3WriteResYMM; - defm : Zn3WriteResXMMPair; // Floating point add/sub. def Zn3WriteX87Arith : SchedWriteRes<[Zn3AGU012, Zn3Load, Zn3FPU0123]> { @@ -1049,9 +1034,7 @@ defm : Zn3WriteResXMM; defm : Zn3WriteResYMM; defm : Zn3WriteResYMM; -defm : Zn3WriteResXMM; -defm : Zn3WriteResXMM; -defm : Zn3WriteResYMM; + defm : Zn3WriteResXMM; defm : Zn3WriteResXMM; @@ -1459,6 +1442,25 @@ defm : Zn3WriteResInt; // FIXME: latency not // Zero Cycle Move /////////////////////////////////////////////////////////////////////////////// +def Zn3WriteMoveRenameable : SchedWriteRes<[Zn3ALU0123]> { + let Latency = 0; + let ResourceCycles = [1]; + let NumMicroOps = 1; +} +def : InstRW<[Zn3WriteMoveRenameable], (instrs MOV32rr, MOV32rr_REV, + MOV64rr, MOV64rr_REV, + MOVSX32rr32)>; + +defm : Zn3WriteResInt; // Compare+Exchange - TODO RMW support. + +defm : Zn3WriteResXMM; // Empty sched class +defm : Zn3WriteResXMM; +defm : Zn3WriteResYMM; + +defm : Zn3WriteResXMM; // MMX +defm : Zn3WriteResXMM; +defm : Zn3WriteResYMM; + def : IsOptimizableRegisterMove<[ InstructionEquivalenceClass<[ // GPR variants.