diff --git a/llvm/lib/Target/X86/X86SchedAlderlakeP.td b/llvm/lib/Target/X86/X86SchedAlderlakeP.td index 84eef847cbebe..e9d379f84dee5 100644 --- a/llvm/lib/Target/X86/X86SchedAlderlakeP.td +++ b/llvm/lib/Target/X86/X86SchedAlderlakeP.td @@ -99,7 +99,7 @@ def : ReadAdvance; multiclass ADLPWriteResPair ExePorts, int Lat, list Res = [1], int UOps = 1, - int LoadLat = 5> { + int LoadLat = 5, int LoadUOps = 1> { // Register variant is using a single cycle on ExePort. def : WriteRes { let Latency = Lat; @@ -112,7 +112,7 @@ multiclass ADLPWriteResPair { let Latency = !add(Lat, LoadLat); let ResourceCycles = !listconcat([1], Res); - let NumMicroOps = !add(UOps, 1); + let NumMicroOps = !add(UOps, LoadUOps); } } diff --git a/llvm/lib/Target/X86/X86SchedBroadwell.td b/llvm/lib/Target/X86/X86SchedBroadwell.td index 9ffc4d1ea540e..a9639e77712ef 100644 --- a/llvm/lib/Target/X86/X86SchedBroadwell.td +++ b/llvm/lib/Target/X86/X86SchedBroadwell.td @@ -91,7 +91,7 @@ def : ReadAdvance; multiclass BWWriteResPair ExePorts, int Lat, list Res = [1], int UOps = 1, - int LoadLat = 5> { + int LoadLat = 5, int LoadUOps = 1> { // Register variant is using a single cycle on ExePort. def : WriteRes { let Latency = Lat; @@ -104,7 +104,7 @@ multiclass BWWriteResPair { let Latency = !add(Lat, LoadLat); let ResourceCycles = !listconcat([1], Res); - let NumMicroOps = !add(UOps, 1); + let NumMicroOps = !add(UOps, LoadUOps); } } diff --git a/llvm/lib/Target/X86/X86SchedHaswell.td b/llvm/lib/Target/X86/X86SchedHaswell.td index 4d010bf558fb9..d871ef4c353ef 100644 --- a/llvm/lib/Target/X86/X86SchedHaswell.td +++ b/llvm/lib/Target/X86/X86SchedHaswell.td @@ -96,7 +96,7 @@ def : ReadAdvance; multiclass HWWriteResPair ExePorts, int Lat, list Res = [1], int UOps = 1, - int LoadLat = 5> { + int LoadLat = 5, int LoadUOps = 1> { // Register variant is using a single cycle on ExePort. def : WriteRes { let Latency = Lat; @@ -109,7 +109,7 @@ multiclass HWWriteResPair { let Latency = !add(Lat, LoadLat); let ResourceCycles = !listconcat([1], Res); - let NumMicroOps = !add(UOps, 1); + let NumMicroOps = !add(UOps, LoadUOps); } } diff --git a/llvm/lib/Target/X86/X86SchedIceLake.td b/llvm/lib/Target/X86/X86SchedIceLake.td index 3638051e5f46f..4dfeafbca793f 100644 --- a/llvm/lib/Target/X86/X86SchedIceLake.td +++ b/llvm/lib/Target/X86/X86SchedIceLake.td @@ -98,7 +98,7 @@ def : ReadAdvance; multiclass ICXWriteResPair ExePorts, int Lat, list Res = [1], int UOps = 1, - int LoadLat = 5> { + int LoadLat = 5, int LoadUOps = 1> { // Register variant is using a single cycle on ExePort. def : WriteRes { let Latency = Lat; @@ -111,7 +111,7 @@ multiclass ICXWriteResPair { let Latency = !add(Lat, LoadLat); let ResourceCycles = !listconcat([1], Res); - let NumMicroOps = !add(UOps, 1); + let NumMicroOps = !add(UOps, LoadUOps); } } diff --git a/llvm/lib/Target/X86/X86SchedSandyBridge.td b/llvm/lib/Target/X86/X86SchedSandyBridge.td index a67d707f83d0f..8c01119ed9b8c 100644 --- a/llvm/lib/Target/X86/X86SchedSandyBridge.td +++ b/llvm/lib/Target/X86/X86SchedSandyBridge.td @@ -86,7 +86,7 @@ def : ReadAdvance; multiclass SBWriteResPair ExePorts, int Lat, list Res = [1], int UOps = 1, - int LoadLat = 5> { + int LoadLat = 5, int LoadUOps = 1> { // Register variant is using a single cycle on ExePort. def : WriteRes { let Latency = Lat; @@ -99,7 +99,7 @@ multiclass SBWriteResPair { let Latency = !add(Lat, LoadLat); let ResourceCycles = !listconcat([1], Res); - let NumMicroOps = !add(UOps, 1); + let NumMicroOps = !add(UOps, LoadUOps); } } diff --git a/llvm/lib/Target/X86/X86SchedSkylakeClient.td b/llvm/lib/Target/X86/X86SchedSkylakeClient.td index 896e0cd6b8aba..114e9d1f5a563 100644 --- a/llvm/lib/Target/X86/X86SchedSkylakeClient.td +++ b/llvm/lib/Target/X86/X86SchedSkylakeClient.td @@ -90,7 +90,7 @@ def : ReadAdvance; multiclass SKLWriteResPair ExePorts, int Lat, list Res = [1], int UOps = 1, - int LoadLat = 5> { + int LoadLat = 5, int LoadUOps = 1> { // Register variant is using a single cycle on ExePort. def : WriteRes { let Latency = Lat; @@ -103,7 +103,7 @@ multiclass SKLWriteResPair { let Latency = !add(Lat, LoadLat); let ResourceCycles = !listconcat([1], Res); - let NumMicroOps = !add(UOps, 1); + let NumMicroOps = !add(UOps, LoadUOps); } } diff --git a/llvm/lib/Target/X86/X86SchedSkylakeServer.td b/llvm/lib/Target/X86/X86SchedSkylakeServer.td index ac5a7e5942364..36d5c76a1e503 100644 --- a/llvm/lib/Target/X86/X86SchedSkylakeServer.td +++ b/llvm/lib/Target/X86/X86SchedSkylakeServer.td @@ -90,7 +90,7 @@ def : ReadAdvance; multiclass SKXWriteResPair ExePorts, int Lat, list Res = [1], int UOps = 1, - int LoadLat = 5> { + int LoadLat = 5, int LoadUOps = 1> { // Register variant is using a single cycle on ExePort. def : WriteRes { let Latency = Lat; @@ -103,7 +103,7 @@ multiclass SKXWriteResPair { let Latency = !add(Lat, LoadLat); let ResourceCycles = !listconcat([1], Res); - let NumMicroOps = !add(UOps, 1); + let NumMicroOps = !add(UOps, LoadUOps); } }