diff options
Diffstat (limited to 'llvm/lib/Target/X86/X86ScheduleBtVer2.td')
| -rw-r--r-- | llvm/lib/Target/X86/X86ScheduleBtVer2.td | 46 |
1 files changed, 16 insertions, 30 deletions
diff --git a/llvm/lib/Target/X86/X86ScheduleBtVer2.td b/llvm/lib/Target/X86/X86ScheduleBtVer2.td index 2f490e2c139..a38a2671dc6 100644 --- a/llvm/lib/Target/X86/X86ScheduleBtVer2.td +++ b/llvm/lib/Target/X86/X86ScheduleBtVer2.td @@ -311,8 +311,14 @@ def : WriteRes<WriteNop, [JALU01]> { let Latency = 1; } // Floating point. This covers both scalar and vector operations. //////////////////////////////////////////////////////////////////////////////// -def : WriteRes<WriteFLoad, [JLAGU, JFPU01, JFPX]> { let Latency = 5; } -def : WriteRes<WriteFStore, [JSAGU, JFPU1, JSTC]>; +defm : X86WriteRes<WriteFLoad, [JLAGU, JFPU01, JFPX], 5, [1, 1, 1], 1>; +defm : X86WriteRes<WriteFMaskedLoad, [JLAGU, JFPU01, JFPX], 6, [1, 1, 2], 1>; +defm : X86WriteRes<WriteFMaskedLoadY, [JLAGU, JFPU01, JFPX], 6, [2, 2, 4], 2>; + +defm : X86WriteRes<WriteFStore, [JSAGU, JFPU1, JSTC], 1, [1, 1, 1], 1>; +defm : X86WriteRes<WriteFMaskedStore, [JSAGU, JFPU01, JFPX], 6, [1, 1, 4], 1>; +defm : X86WriteRes<WriteFMaskedStoreY, [JSAGU, JFPU01, JFPX], 6, [2, 2, 4], 2>; + def : WriteRes<WriteFMove, [JFPU01, JFPX]>; def : WriteRes<WriteEMMS, [JFPU01, JFPX]> { let Latency = 2; } @@ -434,8 +440,14 @@ def : InstRW<[JWriteCVTSI2FLd], (instregex "(V)?CVTSI(64)?2S(D|S)rm")>; // Vector integer operations. //////////////////////////////////////////////////////////////////////////////// -def : WriteRes<WriteVecLoad, [JLAGU, JFPU01, JVALU]> { let Latency = 5; } -def : WriteRes<WriteVecStore, [JSAGU, JFPU1, JSTC]>; +defm : X86WriteRes<WriteVecLoad, [JLAGU, JFPU01, JVALU], 5, [1, 1, 1], 1>; +defm : X86WriteRes<WriteVecMaskedLoad, [JLAGU, JFPU01, JVALU], 6, [1, 1, 2], 1>; +defm : X86WriteRes<WriteVecMaskedLoadY, [JLAGU, JFPU01, JVALU], 6, [2, 2, 4], 2>; + +defm : X86WriteRes<WriteVecStore, [JSAGU, JFPU1, JSTC], 1, [1, 1, 1], 1>; +defm : X86WriteRes<WriteVecMaskedStore, [JSAGU, JFPU01, JVALU], 6, [1, 1, 4], 1>; +defm : X86WriteRes<WriteVecMaskedStoreY, [JSAGU, JFPU01, JVALU], 6, [2, 2, 4], 2>; + def : WriteRes<WriteVecMove, [JFPU01, JVALU]>; defm : JWriteResFpuPair<WriteVecALU, [JFPU01, JVALU], 1>; @@ -622,32 +634,6 @@ def JWriteVBROADCASTYLd: SchedWriteRes<[JLAGU, JFPU01, JFPX]> { def : InstRW<[JWriteVBROADCASTYLd, ReadAfterLd], (instrs VBROADCASTSDYrm, VBROADCASTSSYrm)>; -def JWriteVMaskMovLd: SchedWriteRes<[JLAGU, JFPU01, JFPX]> { - let Latency = 6; - let ResourceCycles = [1, 1, 2]; -} -def : InstRW<[JWriteVMaskMovLd], (instrs VMASKMOVPDrm, VMASKMOVPSrm)>; - -def JWriteVMaskMovYLd: SchedWriteRes<[JLAGU, JFPU01, JFPX]> { - let Latency = 6; - let ResourceCycles = [2, 2, 4]; - let NumMicroOps = 2; -} -def : InstRW<[JWriteVMaskMovYLd], (instrs VMASKMOVPDYrm, VMASKMOVPSYrm)>; - -def JWriteVMaskMovSt: SchedWriteRes<[JFPU01, JFPX, JSAGU]> { - let Latency = 6; - let ResourceCycles = [1, 4, 1]; -} -def : InstRW<[JWriteVMaskMovSt], (instrs VMASKMOVPDmr, VMASKMOVPSmr)>; - -def JWriteVMaskMovYSt: SchedWriteRes<[JFPU01, JFPX, JSAGU]> { - let Latency = 6; - let ResourceCycles = [2, 4, 2]; - let NumMicroOps = 2; -} -def : InstRW<[JWriteVMaskMovYSt], (instrs VMASKMOVPDYmr, VMASKMOVPSYmr)>; - def JWriteJVZEROALL: SchedWriteRes<[]> { let Latency = 90; let NumMicroOps = 73; |

