diff options
-rw-r--r-- | llvm/lib/Target/X86/X86ScheduleAtom.td | 106 |
1 files changed, 53 insertions, 53 deletions
diff --git a/llvm/lib/Target/X86/X86ScheduleAtom.td b/llvm/lib/Target/X86/X86ScheduleAtom.td index 51d74534302..bb57499426f 100644 --- a/llvm/lib/Target/X86/X86ScheduleAtom.td +++ b/llvm/lib/Target/X86/X86ScheduleAtom.td @@ -193,78 +193,78 @@ defm : X86WriteRes<WriteFLD0, [AtomPort01], 1, [1], 1>; defm : X86WriteRes<WriteFLD1, [AtomPort01], 6, [6], 1>; def : WriteRes<WriteFLoad, [AtomPort0]>; def : WriteRes<WriteFLoadX, [AtomPort0]>; -def : WriteRes<WriteFLoadY, [AtomPort0]>; -def : WriteRes<WriteFMaskedLoad, [AtomPort0]>; -def : WriteRes<WriteFMaskedLoadY, [AtomPort0]>; +defm : X86WriteResUnsupported<WriteFLoadY>; +defm : X86WriteResUnsupported<WriteFMaskedLoad>; +defm : X86WriteResUnsupported<WriteFMaskedLoadY>; def : WriteRes<WriteFStore, [AtomPort0]>; def : WriteRes<WriteFStoreX, [AtomPort0]>; -def : WriteRes<WriteFStoreY, [AtomPort0]>; +defm : X86WriteResUnsupported<WriteFStoreY>; def : WriteRes<WriteFStoreNT, [AtomPort0]>; def : WriteRes<WriteFStoreNTX, [AtomPort0]>; -def : WriteRes<WriteFStoreNTY, [AtomPort0]>; -def : WriteRes<WriteFMaskedStore, [AtomPort0]>; -def : WriteRes<WriteFMaskedStoreY, [AtomPort0]>; +defm : X86WriteResUnsupported<WriteFStoreNTY>; +defm : X86WriteResUnsupported<WriteFMaskedStore>; +defm : X86WriteResUnsupported<WriteFMaskedStoreY>; def : WriteRes<WriteFMove, [AtomPort01]>; def : WriteRes<WriteFMoveX, [AtomPort01]>; -def : WriteRes<WriteFMoveY, [AtomPort01]>; +defm : X86WriteResUnsupported<WriteFMoveY>; defm : X86WriteRes<WriteEMMS, [AtomPort01], 5, [5], 1>; defm : AtomWriteResPair<WriteFAdd, [AtomPort0], [AtomPort0], 5, 5, [5], [5]>; defm : AtomWriteResPair<WriteFAddX, [AtomPort0], [AtomPort0], 5, 5, [5], [5]>; -defm : AtomWriteResPair<WriteFAddY, [AtomPort0], [AtomPort0], 5, 5, [5], [5]>; +defm : X86WriteResPairUnsupported<WriteFAddY>; defm : X86WriteResPairUnsupported<WriteFAddZ>; defm : AtomWriteResPair<WriteFAdd64, [AtomPort0], [AtomPort0], 5, 5, [5], [5]>; defm : AtomWriteResPair<WriteFAdd64X, [AtomPort01], [AtomPort01], 6, 7, [6], [7]>; -defm : AtomWriteResPair<WriteFAdd64Y, [AtomPort01], [AtomPort01], 6, 7, [6], [7]>; +defm : X86WriteResPairUnsupported<WriteFAdd64Y>; defm : X86WriteResPairUnsupported<WriteFAdd64Z>; defm : AtomWriteResPair<WriteFCmp, [AtomPort0], [AtomPort0], 5, 5, [5], [5]>; defm : AtomWriteResPair<WriteFCmpX, [AtomPort0], [AtomPort0], 5, 5, [5], [5]>; -defm : AtomWriteResPair<WriteFCmpY, [AtomPort0], [AtomPort0], 5, 5, [5], [5]>; +defm : X86WriteResPairUnsupported<WriteFCmpY>; defm : X86WriteResPairUnsupported<WriteFCmpZ>; defm : AtomWriteResPair<WriteFCmp64, [AtomPort0], [AtomPort0], 5, 5, [5], [5]>; defm : AtomWriteResPair<WriteFCmp64X, [AtomPort01], [AtomPort01], 6, 7, [6], [7]>; -defm : AtomWriteResPair<WriteFCmp64Y, [AtomPort01], [AtomPort01], 6, 7, [6], [7]>; +defm : X86WriteResPairUnsupported<WriteFCmp64Y>; defm : X86WriteResPairUnsupported<WriteFCmp64Z>; defm : AtomWriteResPair<WriteFCom, [AtomPort0], [AtomPort0], 5, 5, [5], [5]>; defm : AtomWriteResPair<WriteFMul, [AtomPort0], [AtomPort0], 4, 4, [4], [4]>; defm : AtomWriteResPair<WriteFMulX, [AtomPort0], [AtomPort0], 5, 5, [5], [5]>; -defm : AtomWriteResPair<WriteFMulY, [AtomPort0], [AtomPort0], 4, 4, [4], [4]>; +defm : X86WriteResPairUnsupported<WriteFMulY>; defm : X86WriteResPairUnsupported<WriteFMulZ>; defm : AtomWriteResPair<WriteFMul64, [AtomPort0], [AtomPort0], 5, 5, [5], [5]>; defm : AtomWriteResPair<WriteFMul64X, [AtomPort01], [AtomPort01], 9, 10, [9], [10]>; -defm : AtomWriteResPair<WriteFMul64Y, [AtomPort01], [AtomPort01], 9, 10, [9], [10]>; +defm : X86WriteResPairUnsupported<WriteFMul64Y>; defm : X86WriteResPairUnsupported<WriteFMul64Z>; defm : AtomWriteResPair<WriteFRcp, [AtomPort0], [AtomPort0], 4, 4, [4], [4]>; defm : AtomWriteResPair<WriteFRcpX, [AtomPort01], [AtomPort01], 9, 10, [9], [10]>; -defm : AtomWriteResPair<WriteFRcpY, [AtomPort01], [AtomPort01], 9, 10, [9], [10]>; +defm : X86WriteResPairUnsupported<WriteFRcpY>; defm : X86WriteResPairUnsupported<WriteFRcpZ>; defm : AtomWriteResPair<WriteFRsqrt, [AtomPort0], [AtomPort0], 4, 4, [4], [4]>; defm : AtomWriteResPair<WriteFRsqrtX, [AtomPort01], [AtomPort01], 9, 10, [9], [10]>; -defm : AtomWriteResPair<WriteFRsqrtY, [AtomPort01], [AtomPort01], 9, 10, [9], [10]>; +defm : X86WriteResPairUnsupported<WriteFRsqrtY>; defm : X86WriteResPairUnsupported<WriteFRsqrtZ>; defm : AtomWriteResPair<WriteFDiv, [AtomPort01], [AtomPort01], 34, 34, [34], [34]>; defm : AtomWriteResPair<WriteFDivX, [AtomPort01], [AtomPort01], 70, 70, [70], [70]>; -defm : AtomWriteResPair<WriteFDivY, [AtomPort01], [AtomPort01], 70, 70, [70], [70]>; +defm : X86WriteResPairUnsupported<WriteFDivY>; defm : X86WriteResPairUnsupported<WriteFDivZ>; defm : AtomWriteResPair<WriteFDiv64, [AtomPort01], [AtomPort01], 62, 62, [62], [62]>; defm : AtomWriteResPair<WriteFDiv64X, [AtomPort01], [AtomPort01],125,125,[125],[125]>; -defm : AtomWriteResPair<WriteFDiv64Y, [AtomPort01], [AtomPort01],125,125,[125],[125]>; +defm : X86WriteResPairUnsupported<WriteFDiv64Y>; defm : X86WriteResPairUnsupported<WriteFDiv64Z>; defm : AtomWriteResPair<WriteFSqrt, [AtomPort01], [AtomPort01], 34, 34, [34], [34]>; defm : AtomWriteResPair<WriteFSqrtX, [AtomPort01], [AtomPort01], 70, 70, [70], [70]>; -defm : AtomWriteResPair<WriteFSqrtY, [AtomPort01], [AtomPort01], 70, 70, [70], [70]>; +defm : X86WriteResPairUnsupported<WriteFSqrtY>; defm : X86WriteResPairUnsupported<WriteFSqrtZ>; defm : AtomWriteResPair<WriteFSqrt64, [AtomPort01], [AtomPort01], 62, 62, [62], [62]>; defm : AtomWriteResPair<WriteFSqrt64X, [AtomPort01], [AtomPort01],125,125,[125],[125]>; -defm : AtomWriteResPair<WriteFSqrt64Y, [AtomPort01], [AtomPort01],125,125,[125],[125]>; +defm : X86WriteResPairUnsupported<WriteFSqrt64Y>; defm : X86WriteResPairUnsupported<WriteFSqrt64Z>; defm : AtomWriteResPair<WriteFSqrt80, [AtomPort01], [AtomPort01], 71, 71, [71], [71]>; defm : AtomWriteResPair<WriteFSign, [AtomPort1], [AtomPort1]>; defm : AtomWriteResPair<WriteFRnd, [AtomPort0], [AtomPort0], 5, 5, [5], [5]>; -defm : AtomWriteResPair<WriteFRndY, [AtomPort0], [AtomPort0], 5, 5, [5], [5]>; +defm : X86WriteResPairUnsupported<WriteFRndY>; defm : X86WriteResPairUnsupported<WriteFRndZ>; defm : AtomWriteResPair<WriteFLogic, [AtomPort01], [AtomPort0]>; defm : X86WriteResPairUnsupported<WriteFLogicY>; @@ -301,29 +301,29 @@ defm : X86WriteResPairUnsupported<WriteFVarShuffle256>; defm : AtomWriteResPair<WriteCvtSS2I, [AtomPort01], [AtomPort01], 8, 9, [8], [9]>; defm : AtomWriteResPair<WriteCvtPS2I, [AtomPort01], [AtomPort01], 6, 7, [6], [7]>; -defm : AtomWriteResPair<WriteCvtPS2IY, [AtomPort01], [AtomPort01], 6, 7, [6], [7]>; +defm : X86WriteResPairUnsupported<WriteCvtPS2IY>; defm : X86WriteResPairUnsupported<WriteCvtPS2IZ>; defm : AtomWriteResPair<WriteCvtSD2I, [AtomPort01], [AtomPort01], 8, 9, [8], [9]>; defm : AtomWriteResPair<WriteCvtPD2I, [AtomPort01], [AtomPort01], 7, 8, [7], [8]>; -defm : AtomWriteResPair<WriteCvtPD2IY, [AtomPort01], [AtomPort01], 7, 8, [7], [8]>; +defm : X86WriteResPairUnsupported<WriteCvtPD2IY>; defm : X86WriteResPairUnsupported<WriteCvtPD2IZ>; defm : AtomWriteResPair<WriteCvtI2SS, [AtomPort01], [AtomPort01], 6, 7, [6], [7]>; defm : AtomWriteResPair<WriteCvtI2PS, [AtomPort01], [AtomPort01], 6, 7, [6], [7]>; -defm : AtomWriteResPair<WriteCvtI2PSY, [AtomPort01], [AtomPort01], 6, 7, [6], [7]>; +defm : X86WriteResPairUnsupported<WriteCvtI2PSY>; defm : X86WriteResPairUnsupported<WriteCvtI2PSZ>; defm : AtomWriteResPair<WriteCvtI2SD, [AtomPort01], [AtomPort01], 6, 7, [6], [7]>; defm : AtomWriteResPair<WriteCvtI2PD, [AtomPort01], [AtomPort01], 7, 8, [7], [8]>; -defm : AtomWriteResPair<WriteCvtI2PDY, [AtomPort01], [AtomPort01], 7, 8, [7], [8]>; +defm : X86WriteResPairUnsupported<WriteCvtI2PDY>; defm : X86WriteResPairUnsupported<WriteCvtI2PDZ>; defm : AtomWriteResPair<WriteCvtSS2SD, [AtomPort01], [AtomPort01], 6, 7, [6], [7]>; defm : AtomWriteResPair<WriteCvtPS2PD, [AtomPort01], [AtomPort01], 7, 8, [7], [8]>; -defm : AtomWriteResPair<WriteCvtPS2PDY, [AtomPort01], [AtomPort01], 7, 8, [7], [8]>; +defm : X86WriteResPairUnsupported<WriteCvtPS2PDY>; defm : X86WriteResPairUnsupported<WriteCvtPS2PDZ>; defm : AtomWriteResPair<WriteCvtSD2SS, [AtomPort01], [AtomPort01], 6, 7, [6], [7]>; defm : AtomWriteResPair<WriteCvtPD2PS, [AtomPort01], [AtomPort01], 7, 8, [7], [8]>; -defm : AtomWriteResPair<WriteCvtPD2PSY, [AtomPort01], [AtomPort01], 7, 8, [7], [8]>; +defm : X86WriteResPairUnsupported<WriteCvtPD2PSY>; defm : X86WriteResPairUnsupported<WriteCvtPD2PSZ>; defm : X86WriteResPairUnsupported<WriteCvtPH2PS>; @@ -342,67 +342,67 @@ defm : X86WriteResUnsupported<WriteCvtPS2PHZSt>; def : WriteRes<WriteVecLoad, [AtomPort0]>; def : WriteRes<WriteVecLoadX, [AtomPort0]>; -def : WriteRes<WriteVecLoadY, [AtomPort0]>; +defm : X86WriteResUnsupported<WriteVecLoadY>; def : WriteRes<WriteVecLoadNT, [AtomPort0]>; -def : WriteRes<WriteVecLoadNTY, [AtomPort0]>; -def : WriteRes<WriteVecMaskedLoad, [AtomPort0]>; -def : WriteRes<WriteVecMaskedLoadY, [AtomPort0]>; +defm : X86WriteResUnsupported<WriteVecLoadNTY>; +defm : X86WriteResUnsupported<WriteVecMaskedLoad>; +defm : X86WriteResUnsupported<WriteVecMaskedLoadY>; def : WriteRes<WriteVecStore, [AtomPort0]>; def : WriteRes<WriteVecStoreX, [AtomPort0]>; -def : WriteRes<WriteVecStoreY, [AtomPort0]>; +defm : X86WriteResUnsupported<WriteVecStoreY>; def : WriteRes<WriteVecStoreNT, [AtomPort0]>; -def : WriteRes<WriteVecStoreNTY, [AtomPort0]>; +defm : X86WriteResUnsupported<WriteVecStoreNTY>; def : WriteRes<WriteVecMaskedStore, [AtomPort0]>; -def : WriteRes<WriteVecMaskedStoreY, [AtomPort0]>; +defm : X86WriteResUnsupported<WriteVecMaskedStoreY>; def : WriteRes<WriteVecMove, [AtomPort0]>; def : WriteRes<WriteVecMoveX, [AtomPort01]>; -def : WriteRes<WriteVecMoveY, [AtomPort01]>; +defm : X86WriteResUnsupported<WriteVecMoveY>; defm : X86WriteRes<WriteVecMoveToGpr, [AtomPort0], 3, [3], 1>; defm : X86WriteRes<WriteVecMoveFromGpr, [AtomPort0], 1, [1], 1>; defm : AtomWriteResPair<WriteVecALU, [AtomPort01], [AtomPort0], 1, 1>; defm : AtomWriteResPair<WriteVecALUX, [AtomPort01], [AtomPort0], 1, 1>; -defm : AtomWriteResPair<WriteVecALUY, [AtomPort01], [AtomPort0], 1, 1>; +defm : X86WriteResPairUnsupported<WriteVecALUY>; defm : X86WriteResPairUnsupported<WriteVecALUZ>; defm : AtomWriteResPair<WriteVecLogic, [AtomPort01], [AtomPort0], 1, 1>; defm : AtomWriteResPair<WriteVecLogicX, [AtomPort01], [AtomPort0], 1, 1>; -defm : AtomWriteResPair<WriteVecLogicY, [AtomPort01], [AtomPort0], 1, 1>; +defm : X86WriteResPairUnsupported<WriteVecLogicY>; defm : X86WriteResPairUnsupported<WriteVecLogicZ>; defm : AtomWriteResPair<WriteVecTest, [AtomPort01], [AtomPort0], 1, 1>; -defm : AtomWriteResPair<WriteVecTestY, [AtomPort01], [AtomPort0], 1, 1>; +defm : X86WriteResPairUnsupported<WriteVecTestY>; defm : X86WriteResPairUnsupported<WriteVecTestZ>; defm : AtomWriteResPair<WriteVecShift, [AtomPort01], [AtomPort01], 2, 3, [2], [3]>; defm : AtomWriteResPair<WriteVecShiftX, [AtomPort01], [AtomPort01], 2, 3, [2], [3]>; -defm : AtomWriteResPair<WriteVecShiftY, [AtomPort01], [AtomPort01], 2, 3, [2], [3]>; +defm : X86WriteResPairUnsupported<WriteVecShiftY>; defm : X86WriteResPairUnsupported<WriteVecShiftZ>; defm : AtomWriteResPair<WriteVecShiftImm, [AtomPort01], [AtomPort01], 1, 1, [1], [1]>; defm : AtomWriteResPair<WriteVecShiftImmX, [AtomPort01], [AtomPort01], 1, 1, [1], [1]>; -defm : AtomWriteResPair<WriteVecShiftImmY, [AtomPort01], [AtomPort01], 1, 1, [1], [1]>; +defm : X86WriteResPairUnsupported<WriteVecShiftImmY>; defm : X86WriteResPairUnsupported<WriteVecShiftImmZ>; defm : AtomWriteResPair<WriteVecIMul, [AtomPort0], [AtomPort0], 4, 4, [4], [4]>; defm : AtomWriteResPair<WriteVecIMulX, [AtomPort0], [AtomPort0], 5, 5, [5], [5]>; -defm : AtomWriteResPair<WriteVecIMulY, [AtomPort0], [AtomPort0], 5, 5, [5], [5]>; +defm : X86WriteResPairUnsupported<WriteVecIMulY>; defm : X86WriteResPairUnsupported<WriteVecIMulZ>; -defm : AtomWriteResPair<WritePMULLD, [AtomPort01], [AtomPort0], 1, 1>; -defm : AtomWriteResPair<WritePMULLDY, [AtomPort01], [AtomPort0], 1, 1>; +defm : X86WriteResPairUnsupported<WritePMULLD>; +defm : X86WriteResPairUnsupported<WritePMULLDY>; defm : X86WriteResPairUnsupported<WritePMULLDZ>; -defm : AtomWriteResPair<WritePHMINPOS, [AtomPort0], [AtomPort0], 5, 5, [5], [5]>; -defm : AtomWriteResPair<WriteMPSAD, [AtomPort01], [AtomPort0], 1, 1>; -defm : AtomWriteResPair<WriteMPSADY, [AtomPort01], [AtomPort0], 1, 1>; +defm : X86WriteResPairUnsupported<WritePHMINPOS>; +defm : X86WriteResPairUnsupported<WriteMPSAD>; +defm : X86WriteResPairUnsupported<WriteMPSADY>; defm : X86WriteResPairUnsupported<WriteMPSADZ>; defm : AtomWriteResPair<WritePSADBW, [AtomPort01], [AtomPort01], 4, 4, [4], [4]>; defm : AtomWriteResPair<WritePSADBWX, [AtomPort0], [AtomPort0], 5, 5, [5], [5]>; -defm : AtomWriteResPair<WritePSADBWY, [AtomPort0], [AtomPort0], 5, 5, [5], [5]>; +defm : X86WriteResPairUnsupported<WritePSADBWY>; defm : X86WriteResPairUnsupported<WritePSADBWZ>; defm : AtomWriteResPair<WriteShuffle, [AtomPort0], [AtomPort0], 1, 1>; defm : AtomWriteResPair<WriteShuffleX, [AtomPort0], [AtomPort0], 1, 1>; -defm : AtomWriteResPair<WriteShuffleY, [AtomPort0], [AtomPort0], 1, 1>; +defm : X86WriteResPairUnsupported<WriteShuffleY>; defm : X86WriteResPairUnsupported<WriteShuffleZ>; defm : AtomWriteResPair<WriteVarShuffle, [AtomPort0], [AtomPort0], 1, 1>; defm : AtomWriteResPair<WriteVarShuffleX, [AtomPort01], [AtomPort01], 4, 5, [4], [5]>; -defm : AtomWriteResPair<WriteVarShuffleY, [AtomPort01], [AtomPort01], 4, 5, [4], [5]>; +defm : X86WriteResPairUnsupported<WriteVarShuffleY>; defm : X86WriteResPairUnsupported<WriteVarShuffleZ>; defm : X86WriteResPairUnsupported<WriteBlend>; defm : X86WriteResPairUnsupported<WriteBlendY>; @@ -437,10 +437,10 @@ defm : X86WriteResPairUnsupported<WritePCmpEStrM>; // MOVMSK Instructions. //////////////////////////////////////////////////////////////////////////////// -def : WriteRes<WriteFMOVMSK, [AtomPort0]> { let Latency = 3; let ResourceCycles = [3]; } -def : WriteRes<WriteVecMOVMSK, [AtomPort0]> { let Latency = 3; let ResourceCycles = [3]; } -def : WriteRes<WriteVecMOVMSKY, [AtomPort0]> { let Latency = 3; let ResourceCycles = [3]; } -def : WriteRes<WriteMMXMOVMSK, [AtomPort0]> { let Latency = 3; let ResourceCycles = [3]; } +def : WriteRes<WriteFMOVMSK, [AtomPort0]> { let Latency = 3; let ResourceCycles = [3]; } +def : WriteRes<WriteVecMOVMSK, [AtomPort0]> { let Latency = 3; let ResourceCycles = [3]; } +defm : X86WriteResUnsupported<WriteVecMOVMSKY>; +def : WriteRes<WriteMMXMOVMSK, [AtomPort0]> { let Latency = 3; let ResourceCycles = [3]; } //////////////////////////////////////////////////////////////////////////////// // AES instructions. |