diff options
Diffstat (limited to 'llvm/lib/Target/X86/X86SchedSkylakeClient.td')
| -rw-r--r-- | llvm/lib/Target/X86/X86SchedSkylakeClient.td | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/llvm/lib/Target/X86/X86SchedSkylakeClient.td b/llvm/lib/Target/X86/X86SchedSkylakeClient.td index dfb5654aa06..b5d842a52b5 100644 --- a/llvm/lib/Target/X86/X86SchedSkylakeClient.td +++ b/llvm/lib/Target/X86/X86SchedSkylakeClient.td @@ -71,10 +71,16 @@ def SKLPortAny : ProcResGroup<[SKLPort0, SKLPort1, SKLPort2, SKLPort3, SKLPort4, let BufferSize=60; } -// Loads are 5 cycles, so ReadAfterLd registers needn't be available until 5 +// Integer loads are 5 cycles, so ReadAfterLd registers needn't be available until 5 // cycles after the memory operand. def : ReadAdvance<ReadAfterLd, 5>; +// Vector loads are 5/6/7 cycles, so ReadAfterVec*Ld registers needn't be available +// until 5/6/7 cycles after the memory operand. +def : ReadAdvance<ReadAfterVecLd, 5>; +def : ReadAdvance<ReadAfterVecXLd, 6>; +def : ReadAdvance<ReadAfterVecYLd, 7>; + // Many SchedWrites are defined in pairs with and without a folded load. // Instructions with folded loads are usually micro-fused, so they only appear // as two micro-ops when queued in the reservation station. |

