diff options
| author | Simon Pilgrim <llvm-dev@redking.me.uk> | 2019-11-06 19:07:54 +0000 |
|---|---|---|
| committer | Simon Pilgrim <llvm-dev@redking.me.uk> | 2019-11-06 19:08:15 +0000 |
| commit | 1786047b910506e5a2189cadb8791bd2504b855e (patch) | |
| tree | 75f2a7cd09e97bfe08cc0a9ff090111ab752cd66 /llvm/lib | |
| parent | ad70d5f39ae99d9f5be582ad8979830f588e6802 (diff) | |
| download | bcm5719-llvm-1786047b910506e5a2189cadb8791bd2504b855e.tar.gz bcm5719-llvm-1786047b910506e5a2189cadb8791bd2504b855e.zip | |
[X86] Fix SLM v2i64 ADD/Sub/CMPEQ instruction schedules
Noticed while fixing the reduction costs for D59710 - the SLM model doesn't account for the poor throughput of v2i64 ops.
Numbers taken from Intel AOM (+ checked against Agner)
Diffstat (limited to 'llvm/lib')
| -rw-r--r-- | llvm/lib/Target/X86/X86ScheduleSLM.td | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/llvm/lib/Target/X86/X86ScheduleSLM.td b/llvm/lib/Target/X86/X86ScheduleSLM.td index 84aac01ab38..dcd155ea0e0 100644 --- a/llvm/lib/Target/X86/X86ScheduleSLM.td +++ b/llvm/lib/Target/X86/X86ScheduleSLM.td @@ -511,4 +511,20 @@ defm : X86WriteResUnsupported<WriteCvtPS2PHSt>; defm : X86WriteResUnsupported<WriteCvtPS2PHYSt>; defm : X86WriteResUnsupported<WriteCvtPS2PHZSt>; +// Remaining SLM instrs. + +def SLMWriteResGroup1rr : SchedWriteRes<[SLM_FPC_RSV01]> { + let Latency = 4; + let NumMicroOps = 2; + let ResourceCycles = [4]; +} +def: InstRW<[SLMWriteResGroup1rr], (instrs PADDQrr, PSUBQrr, PCMPEQQrr)>; + +def SLMWriteResGroup1rm : SchedWriteRes<[SLM_MEC_RSV,SLM_FPC_RSV01]> { + let Latency = 7; + let NumMicroOps = 3; + let ResourceCycles = [1,4]; +} +def: InstRW<[SLMWriteResGroup1rm], (instrs PADDQrm, PSUBQrm, PCMPEQQrm)>; + } // SchedModel |

