diff options
Diffstat (limited to 'llvm/lib/Target/X86/X86SchedSandyBridge.td')
-rw-r--r-- | llvm/lib/Target/X86/X86SchedSandyBridge.td | 21 |
1 files changed, 12 insertions, 9 deletions
diff --git a/llvm/lib/Target/X86/X86SchedSandyBridge.td b/llvm/lib/Target/X86/X86SchedSandyBridge.td index 26d4d8fa3549..ac32f1b19990 100644 --- a/llvm/lib/Target/X86/X86SchedSandyBridge.td +++ b/llvm/lib/Target/X86/X86SchedSandyBridge.td @@ -238,6 +238,7 @@ defm : SBWriteResPair<WriteFCmp64Y, [SBPort1], 3, [1], 1, 7>; defm : SBWriteResPair<WriteFCmp64Z, [SBPort1], 3, [1], 1, 7>; // Unsupported = 1 defm : SBWriteResPair<WriteFCom, [SBPort1], 3>; +defm : SBWriteResPair<WriteFComX, [SBPort1], 3>; defm : SBWriteResPair<WriteFMul, [SBPort0], 5, [1], 1, 6>; defm : SBWriteResPair<WriteFMulX, [SBPort0], 5, [1], 1, 6>; @@ -366,8 +367,10 @@ defm : X86WriteRes<WriteVecStoreX, [SBPort23,SBPort4], 1, [1,1], 1>; defm : X86WriteRes<WriteVecStoreY, [SBPort23,SBPort4], 1, [1,1], 1>; defm : X86WriteRes<WriteVecStoreNT, [SBPort23,SBPort4], 1, [1,1], 1>; defm : X86WriteRes<WriteVecStoreNTY, [SBPort23,SBPort4], 1, [1,1], 1>; -defm : X86WriteRes<WriteVecMaskedStore, [SBPort4,SBPort01,SBPort23], 5, [1,1,1], 3>; -defm : X86WriteRes<WriteVecMaskedStoreY, [SBPort4,SBPort01,SBPort23], 5, [1,1,1], 3>; +defm : X86WriteRes<WriteVecMaskedStore32, [SBPort4,SBPort01,SBPort23], 5, [1,1,1], 3>; +defm : X86WriteRes<WriteVecMaskedStore32Y, [SBPort4,SBPort01,SBPort23], 5, [1,1,1], 3>; +defm : X86WriteRes<WriteVecMaskedStore64, [SBPort4,SBPort01,SBPort23], 5, [1,1,1], 3>; +defm : X86WriteRes<WriteVecMaskedStore64Y, [SBPort4,SBPort01,SBPort23], 5, [1,1,1], 3>; defm : X86WriteRes<WriteVecMove, [SBPort05], 1, [1], 1>; defm : X86WriteRes<WriteVecMoveX, [SBPort015], 1, [1], 1>; defm : X86WriteRes<WriteVecMoveY, [SBPort05], 1, [1], 1>; @@ -481,7 +484,7 @@ def : WriteRes<WritePCmpEStrM, [SBPort015]> { let ResourceCycles = [8]; } def : WriteRes<WritePCmpEStrMLd, [SBPort015, SBPort23]> { - let Latency = 11; + let Latency = 17; let ResourceCycles = [7, 1]; } @@ -503,7 +506,7 @@ def : WriteRes<WritePCmpEStrI, [SBPort015]> { let ResourceCycles = [8]; } def : WriteRes<WritePCmpEStrILd, [SBPort015, SBPort23]> { - let Latency = 4; + let Latency = 10; let ResourceCycles = [7, 1]; } @@ -541,7 +544,7 @@ def : WriteRes<WriteAESKeyGen, [SBPort015]> { let ResourceCycles = [11]; } def : WriteRes<WriteAESKeyGenLd, [SBPort015, SBPort23]> { - let Latency = 8; + let Latency = 14; let ResourceCycles = [10, 1]; } @@ -551,7 +554,7 @@ def : WriteRes<WriteCLMul, [SBPort015]> { let ResourceCycles = [18]; } def : WriteRes<WriteCLMulLd, [SBPort015, SBPort23]> { - let Latency = 14; + let Latency = 20; let ResourceCycles = [17, 1]; } @@ -881,7 +884,7 @@ def SBWriteResGroup64 : SchedWriteRes<[SBPort5,SBPort01,SBPort23]> { let NumMicroOps = 3; let ResourceCycles = [1,1,1]; } -def: InstRW<[SBWriteResGroup64], (instrs FARJMP64)>; +def: InstRW<[SBWriteResGroup64], (instrs FARJMP64m)>; def SBWriteResGroup66 : SchedWriteRes<[SBPort0,SBPort4,SBPort23]> { let Latency = 7; @@ -967,7 +970,7 @@ def SBWriteResGroup87 : SchedWriteRes<[SBPort4,SBPort5,SBPort01,SBPort23]> { let NumMicroOps = 5; let ResourceCycles = [1,1,1,2]; } -def: InstRW<[SBWriteResGroup87], (instrs FARCALL64)>; +def: InstRW<[SBWriteResGroup87], (instrs FARCALL64m)>; def SBWriteResGroup93 : SchedWriteRes<[SBPort0,SBPort1,SBPort23]> { let Latency = 9; @@ -1105,7 +1108,7 @@ def: InstRW<[SBWriteResGroupVzeroupper], (instrs VZEROUPPER)>; def: InstRW<[WriteZero], (instrs CLC)>; -// Intruction variants handled by the renamer. These might not need execution +// Instruction variants handled by the renamer. These might not need execution // ports in certain conditions. // See Agner's Fog "The microarchitecture of Intel, AMD and VIA CPUs", // section "Sandy Bridge and Ivy Bridge Pipeline" > "Register allocation and |