Skip to content

Commit e7bd805

Browse files
committed
[X86] Add default LoadUOps argument to Intel models WriteResPair macro
This will make it easier to override the folded uop count on a class-by-class basis
1 parent fc61400 commit e7bd805

File tree

7 files changed

+14
-14
lines changed

7 files changed

+14
-14
lines changed

llvm/lib/Target/X86/X86SchedAlderlakeP.td

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -99,7 +99,7 @@ def : ReadAdvance<ReadInt2Fpu, 0>;
9999
multiclass ADLPWriteResPair<X86FoldableSchedWrite SchedRW,
100100
list<ProcResourceKind> ExePorts,
101101
int Lat, list<int> Res = [1], int UOps = 1,
102-
int LoadLat = 5> {
102+
int LoadLat = 5, int LoadUOps = 1> {
103103
// Register variant is using a single cycle on ExePort.
104104
def : WriteRes<SchedRW, ExePorts> {
105105
let Latency = Lat;
@@ -112,7 +112,7 @@ multiclass ADLPWriteResPair<X86FoldableSchedWrite SchedRW,
112112
def : WriteRes<SchedRW.Folded, !listconcat([ADLPPort02_03_11], ExePorts)> {
113113
let Latency = !add(Lat, LoadLat);
114114
let ResourceCycles = !listconcat([1], Res);
115-
let NumMicroOps = !add(UOps, 1);
115+
let NumMicroOps = !add(UOps, LoadUOps);
116116
}
117117
}
118118

llvm/lib/Target/X86/X86SchedBroadwell.td

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -91,7 +91,7 @@ def : ReadAdvance<ReadInt2Fpu, 0>;
9191
multiclass BWWriteResPair<X86FoldableSchedWrite SchedRW,
9292
list<ProcResourceKind> ExePorts,
9393
int Lat, list<int> Res = [1], int UOps = 1,
94-
int LoadLat = 5> {
94+
int LoadLat = 5, int LoadUOps = 1> {
9595
// Register variant is using a single cycle on ExePort.
9696
def : WriteRes<SchedRW, ExePorts> {
9797
let Latency = Lat;
@@ -104,7 +104,7 @@ multiclass BWWriteResPair<X86FoldableSchedWrite SchedRW,
104104
def : WriteRes<SchedRW.Folded, !listconcat([BWPort23], ExePorts)> {
105105
let Latency = !add(Lat, LoadLat);
106106
let ResourceCycles = !listconcat([1], Res);
107-
let NumMicroOps = !add(UOps, 1);
107+
let NumMicroOps = !add(UOps, LoadUOps);
108108
}
109109
}
110110

llvm/lib/Target/X86/X86SchedHaswell.td

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -96,7 +96,7 @@ def : ReadAdvance<ReadInt2Fpu, 0>;
9696
multiclass HWWriteResPair<X86FoldableSchedWrite SchedRW,
9797
list<ProcResourceKind> ExePorts,
9898
int Lat, list<int> Res = [1], int UOps = 1,
99-
int LoadLat = 5> {
99+
int LoadLat = 5, int LoadUOps = 1> {
100100
// Register variant is using a single cycle on ExePort.
101101
def : WriteRes<SchedRW, ExePorts> {
102102
let Latency = Lat;
@@ -109,7 +109,7 @@ multiclass HWWriteResPair<X86FoldableSchedWrite SchedRW,
109109
def : WriteRes<SchedRW.Folded, !listconcat([HWPort23], ExePorts)> {
110110
let Latency = !add(Lat, LoadLat);
111111
let ResourceCycles = !listconcat([1], Res);
112-
let NumMicroOps = !add(UOps, 1);
112+
let NumMicroOps = !add(UOps, LoadUOps);
113113
}
114114
}
115115

llvm/lib/Target/X86/X86SchedIceLake.td

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -98,7 +98,7 @@ def : ReadAdvance<ReadInt2Fpu, 0>;
9898
multiclass ICXWriteResPair<X86FoldableSchedWrite SchedRW,
9999
list<ProcResourceKind> ExePorts,
100100
int Lat, list<int> Res = [1], int UOps = 1,
101-
int LoadLat = 5> {
101+
int LoadLat = 5, int LoadUOps = 1> {
102102
// Register variant is using a single cycle on ExePort.
103103
def : WriteRes<SchedRW, ExePorts> {
104104
let Latency = Lat;
@@ -111,7 +111,7 @@ multiclass ICXWriteResPair<X86FoldableSchedWrite SchedRW,
111111
def : WriteRes<SchedRW.Folded, !listconcat([ICXPort23], ExePorts)> {
112112
let Latency = !add(Lat, LoadLat);
113113
let ResourceCycles = !listconcat([1], Res);
114-
let NumMicroOps = !add(UOps, 1);
114+
let NumMicroOps = !add(UOps, LoadUOps);
115115
}
116116
}
117117

llvm/lib/Target/X86/X86SchedSandyBridge.td

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,7 @@ def : ReadAdvance<ReadInt2Fpu, 0>;
8686
multiclass SBWriteResPair<X86FoldableSchedWrite SchedRW,
8787
list<ProcResourceKind> ExePorts,
8888
int Lat, list<int> Res = [1], int UOps = 1,
89-
int LoadLat = 5> {
89+
int LoadLat = 5, int LoadUOps = 1> {
9090
// Register variant is using a single cycle on ExePort.
9191
def : WriteRes<SchedRW, ExePorts> {
9292
let Latency = Lat;
@@ -99,7 +99,7 @@ multiclass SBWriteResPair<X86FoldableSchedWrite SchedRW,
9999
def : WriteRes<SchedRW.Folded, !listconcat([SBPort23], ExePorts)> {
100100
let Latency = !add(Lat, LoadLat);
101101
let ResourceCycles = !listconcat([1], Res);
102-
let NumMicroOps = !add(UOps, 1);
102+
let NumMicroOps = !add(UOps, LoadUOps);
103103
}
104104
}
105105

llvm/lib/Target/X86/X86SchedSkylakeClient.td

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,7 @@ def : ReadAdvance<ReadInt2Fpu, 0>;
9090
multiclass SKLWriteResPair<X86FoldableSchedWrite SchedRW,
9191
list<ProcResourceKind> ExePorts,
9292
int Lat, list<int> Res = [1], int UOps = 1,
93-
int LoadLat = 5> {
93+
int LoadLat = 5, int LoadUOps = 1> {
9494
// Register variant is using a single cycle on ExePort.
9595
def : WriteRes<SchedRW, ExePorts> {
9696
let Latency = Lat;
@@ -103,7 +103,7 @@ multiclass SKLWriteResPair<X86FoldableSchedWrite SchedRW,
103103
def : WriteRes<SchedRW.Folded, !listconcat([SKLPort23], ExePorts)> {
104104
let Latency = !add(Lat, LoadLat);
105105
let ResourceCycles = !listconcat([1], Res);
106-
let NumMicroOps = !add(UOps, 1);
106+
let NumMicroOps = !add(UOps, LoadUOps);
107107
}
108108
}
109109

llvm/lib/Target/X86/X86SchedSkylakeServer.td

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,7 @@ def : ReadAdvance<ReadInt2Fpu, 0>;
9090
multiclass SKXWriteResPair<X86FoldableSchedWrite SchedRW,
9191
list<ProcResourceKind> ExePorts,
9292
int Lat, list<int> Res = [1], int UOps = 1,
93-
int LoadLat = 5> {
93+
int LoadLat = 5, int LoadUOps = 1> {
9494
// Register variant is using a single cycle on ExePort.
9595
def : WriteRes<SchedRW, ExePorts> {
9696
let Latency = Lat;
@@ -103,7 +103,7 @@ multiclass SKXWriteResPair<X86FoldableSchedWrite SchedRW,
103103
def : WriteRes<SchedRW.Folded, !listconcat([SKXPort23], ExePorts)> {
104104
let Latency = !add(Lat, LoadLat);
105105
let ResourceCycles = !listconcat([1], Res);
106-
let NumMicroOps = !add(UOps, 1);
106+
let NumMicroOps = !add(UOps, LoadUOps);
107107
}
108108
}
109109

0 commit comments

Comments
 (0)