From 820433f533bbb2310d172489bfbc4f277560dd2c Mon Sep 17 00:00:00 2001 From: Simon Pilgrim Date: Wed, 16 May 2018 22:14:29 +0000 Subject: [PATCH] [X86][SNB] Remove unnecessary CVT InstRW overrides llvm-svn: 332536 --- llvm/lib/Target/X86/X86SchedSandyBridge.td | 106 +++++---------------- 1 file changed, 24 insertions(+), 82 deletions(-) diff --git a/llvm/lib/Target/X86/X86SchedSandyBridge.td b/llvm/lib/Target/X86/X86SchedSandyBridge.td index bad755a97780..3cd62c3e0bb1 100644 --- a/llvm/lib/Target/X86/X86SchedSandyBridge.td +++ b/llvm/lib/Target/X86/X86SchedSandyBridge.td @@ -234,23 +234,30 @@ defm : SBWriteResPair; defm : SBWriteResPair; // Conversion between integer and float. -defm : SBWriteResPair; -defm : SBWriteResPair; -defm : SBWriteResPair; -defm : SBWriteResPair; -defm : SBWriteResPair; -defm : SBWriteResPair; - -defm : SBWriteResPair; -defm : SBWriteResPair; -defm : SBWriteResPair; -defm : SBWriteResPair; -defm : SBWriteResPair; -defm : SBWriteResPair; +defm : SBWriteResPair; +defm : SBWriteResPair; +defm : SBWriteResPair; +defm : SBWriteResPair; +defm : SBWriteResPair; +defm : X86WriteRes; +defm : X86WriteRes; + +defm : X86WriteRes; +defm : X86WriteRes; +defm : SBWriteResPair; +defm : SBWriteResPair; +defm : X86WriteRes; +defm : X86WriteRes; +defm : X86WriteRes; +defm : X86WriteRes; +defm : X86WriteRes; +defm : X86WriteRes; defm : SBWriteResPair; -defm : SBWriteResPair; -defm : SBWriteResPair; +defm : X86WriteRes; +defm : X86WriteRes; +defm : X86WriteRes; +defm : X86WriteRes; defm : SBWriteResPair; defm : SBWriteResPair; defm : SBWriteResPair; @@ -616,9 +623,7 @@ def SBWriteResGroup21 : SchedWriteRes<[SBPort1]> { let NumMicroOps = 1; let ResourceCycles = [1]; } -def: InstRW<[SBWriteResGroup21], (instregex "MMX_CVTPI2PSirr", - "PUSHFS64", - "(V?)CVTDQ2PS(Y?)rr")>; +def: InstRW<[SBWriteResGroup21], (instregex "PUSHFS64")>; def SBWriteResGroup21_16i : SchedWriteRes<[SBPort1, SBPort015]> { let Latency = 4; @@ -696,17 +701,6 @@ def SBWriteResGroup27_2 : SchedWriteRes<[SBPort1,SBPort05,SBPort015]> { } def: InstRW<[SBWriteResGroup27_2], (instrs IMUL16r, MUL16r)>; -def SBWriteResGroup28 : SchedWriteRes<[SBPort1,SBPort5]> { - let Latency = 4; - let NumMicroOps = 2; - let ResourceCycles = [1,1]; -} -def: InstRW<[SBWriteResGroup28], (instregex "MMX_CVTPI2PDirr", - "MMX_CVT(T?)PD2PIirr", - "(V?)CVTDQ2PD(Y?)rr", - "(V?)CVTSI(64)?2SDrr", - "(V?)CVT(T?)PD2DQ(Y?)rr")>; - def SBWriteResGroup29 : SchedWriteRes<[SBPort1,SBPort015]> { let Latency = 4; let NumMicroOps = 2; @@ -744,14 +738,6 @@ def SBWriteResGroup31 : SchedWriteRes<[SBPort23]> { def: InstRW<[SBWriteResGroup31], (instregex "MOVSX(16|32|64)rm(8|16|32)", "MOVZX(16|32|64)rm(8|16)")>; -def SBWriteResGroup32 : SchedWriteRes<[SBPort0,SBPort1]> { - let Latency = 5; - let NumMicroOps = 2; - let ResourceCycles = [1,1]; -} -def: InstRW<[SBWriteResGroup32], (instregex "(V?)CVT(T?)SD2SI(64)?rr", - "(V?)CVT(T?)SS2SI(64)?rr")>; - def SBWriteResGroup33 : SchedWriteRes<[SBPort4,SBPort23]> { let Latency = 5; let NumMicroOps = 2; @@ -766,7 +752,6 @@ def SBWriteResGroup35 : SchedWriteRes<[SBPort1,SBPort5]> { let ResourceCycles = [1,2]; } def: InstRW<[SBWriteResGroup35], (instrs CLI)>; -def: InstRW<[SBWriteResGroup35], (instregex "(V?)CVTSI(64)?2SSrr")>; def SBWriteResGroup35_2 : SchedWriteRes<[SBPort1,SBPort4,SBPort23]> { let Latency = 5; @@ -901,13 +886,6 @@ def: InstRW<[SBWriteResGroup54], (instregex "VBROADCASTSDYrm", "VMOVSHDUPYrm", "VMOVSLDUPYrm")>; -def SBWriteResGroup55 : SchedWriteRes<[SBPort0,SBPort23]> { - let Latency = 7; - let NumMicroOps = 2; - let ResourceCycles = [1,1]; -} -def: InstRW<[SBWriteResGroup55], (instregex "(V?)CVTPS2PD(Y?)rm")>; - def SBWriteResGroup58 : SchedWriteRes<[SBPort23,SBPort05]> { let Latency = 7; let NumMicroOps = 2; @@ -1060,14 +1038,6 @@ def SBWriteResGroup88 : SchedWriteRes<[SBPort4,SBPort23,SBPort05,SBPort015]> { def: InstRW<[SBWriteResGroup88], (instregex "SHLD(16|32|64)mri8", "SHRD(16|32|64)mri8")>; -def SBWriteResGroup90 : SchedWriteRes<[SBPort1,SBPort23]> { - let Latency = 9; - let NumMicroOps = 2; - let ResourceCycles = [1,1]; -} -def: InstRW<[SBWriteResGroup90], (instregex "MMX_CVT(T?)PS2PIirm", - "(V?)CVT(T?)PS2DQrm")>; - def SBWriteResGroup93 : SchedWriteRes<[SBPort0,SBPort1,SBPort23]> { let Latency = 9; let NumMicroOps = 3; @@ -1162,28 +1132,7 @@ def SBWriteResGroup101 : SchedWriteRes<[SBPort1,SBPort23]> { let ResourceCycles = [1,1]; } def: InstRW<[SBWriteResGroup101], (instregex "(ADD|SUB|SUBR)_F(32|64)m", - "ILD_F(16|32|64)m", - "VCVTDQ2PSYrm", - "VCVT(T?)PS2DQYrm")>; - -def SBWriteResGroup102 : SchedWriteRes<[SBPort0,SBPort1,SBPort23]> { - let Latency = 10; - let NumMicroOps = 3; - let ResourceCycles = [1,1,1]; -} -def: InstRW<[SBWriteResGroup102], (instregex "VCVT(T?)SD2SI(64)?rm", - "VCVT(T?)SS2SI(64)?rm")>; - -def SBWriteResGroup103 : SchedWriteRes<[SBPort1,SBPort5,SBPort23]> { - let Latency = 10; - let NumMicroOps = 3; - let ResourceCycles = [1,1,1]; -} -def: InstRW<[SBWriteResGroup103], (instregex "MMX_CVTPI2PDirm", - "MMX_CVT(T?)PD2PIirm", - "(V?)CVTDQ2PD(Y?)rm", - "(V?)CVTSI(64)?2SSrm", - "(V?)CVT(T?)PD2DQrm")>; + "ILD_F(16|32|64)m")>; def SBWriteResGroup103_2 : SchedWriteRes<[SBPort4,SBPort23,SBPort05,SBPort015]> { let Latency = 10; @@ -1207,13 +1156,6 @@ def SBWriteResGroup106 : SchedWriteRes<[SBPort1,SBPort23]> { } def: InstRW<[SBWriteResGroup106], (instregex "FICOM(P?)(16|32)m")>; -def SBWriteResGroup107 : SchedWriteRes<[SBPort1,SBPort5,SBPort23]> { - let Latency = 11; - let NumMicroOps = 3; - let ResourceCycles = [1,1,1]; -} -def: InstRW<[SBWriteResGroup107], (instregex "VCVT(T?)PD2DQYrm")>; - def SBWriteResGroup111 : SchedWriteRes<[SBPort0,SBPort23]> { let Latency = 12; let NumMicroOps = 2; -- 2.34.1