Skip to content

Commit ed8c561

Browse files
committed
[X86] haswell/broadwell only uses port5 for mmx pack reg-reg instructions
Matches numbers from uops.info, Agner and instlatx64.
1 parent fda692b commit ed8c561

File tree

4 files changed

+20
-20
lines changed

4 files changed

+20
-20
lines changed

llvm/lib/Target/X86/X86SchedBroadwell.td

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -792,10 +792,10 @@ def BWWriteResGroup28 : SchedWriteRes<[BWPort5]> {
792792
def: InstRW<[BWWriteResGroup28], (instrs VPBROADCASTBrr,
793793
VPBROADCASTWrr)>;
794794

795-
def BWWriteResGroup33 : SchedWriteRes<[BWPort5,BWPort0156]> {
795+
def BWWriteResGroup33 : SchedWriteRes<[BWPort5]> {
796796
let Latency = 3;
797-
let NumMicroOps = 3;
798-
let ReleaseAtCycles = [2,1];
797+
let NumMicroOps = 2;
798+
let ReleaseAtCycles = [2];
799799
}
800800
def: InstRW<[BWWriteResGroup33], (instrs MMX_PACKSSDWrr,
801801
MMX_PACKSSWBrr,

llvm/lib/Target/X86/X86SchedHaswell.td

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1247,10 +1247,10 @@ def: InstRW<[HWWriteResGroup53_1], (instrs VPMOVSXBWYrm,
12471247
VPMOVSXWDYrm,
12481248
VPMOVZXWDYrm)>;
12491249

1250-
def HWWriteResGroup57 : SchedWriteRes<[HWPort5,HWPort0156]> {
1250+
def HWWriteResGroup57 : SchedWriteRes<[HWPort5]> {
12511251
let Latency = 3;
1252-
let NumMicroOps = 3;
1253-
let ReleaseAtCycles = [2,1];
1252+
let NumMicroOps = 2;
1253+
let ReleaseAtCycles = [2];
12541254
}
12551255
def: InstRW<[HWWriteResGroup57], (instrs MMX_PACKSSDWrr,
12561256
MMX_PACKSSWBrr,

llvm/test/tools/llvm-mca/X86/Broadwell/resources-mmx.s

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -173,11 +173,11 @@ pxor (%rax), %mm2
173173
# CHECK-NEXT: 1 5 0.50 * movq (%rax), %mm2
174174
# CHECK-NEXT: 1 1 1.00 movq %mm0, %rcx
175175
# CHECK-NEXT: 2 1 1.00 * movq %mm0, (%rax)
176-
# CHECK-NEXT: 3 3 2.00 packsswb %mm0, %mm2
176+
# CHECK-NEXT: 2 3 2.00 packsswb %mm0, %mm2
177177
# CHECK-NEXT: 3 7 2.00 * packsswb (%rax), %mm2
178-
# CHECK-NEXT: 3 3 2.00 packssdw %mm0, %mm2
178+
# CHECK-NEXT: 2 3 2.00 packssdw %mm0, %mm2
179179
# CHECK-NEXT: 3 7 2.00 * packssdw (%rax), %mm2
180-
# CHECK-NEXT: 3 3 2.00 packuswb %mm0, %mm2
180+
# CHECK-NEXT: 2 3 2.00 packuswb %mm0, %mm2
181181
# CHECK-NEXT: 3 7 2.00 * packuswb (%rax), %mm2
182182
# CHECK-NEXT: 1 1 0.50 paddb %mm0, %mm2
183183
# CHECK-NEXT: 2 6 0.50 * paddb (%rax), %mm2
@@ -284,7 +284,7 @@ pxor (%rax), %mm2
284284

285285
# CHECK: Resource pressure per iteration:
286286
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9]
287-
# CHECK-NEXT: - - 46.67 35.17 23.67 23.67 2.00 57.17 1.00 0.67
287+
# CHECK-NEXT: - - 45.92 34.42 23.67 23.67 2.00 56.42 0.25 0.67
288288

289289
# CHECK: Resource pressure by instruction:
290290
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] Instructions:
@@ -297,11 +297,11 @@ pxor (%rax), %mm2
297297
# CHECK-NEXT: - - - - 0.50 0.50 - - - - movq (%rax), %mm2
298298
# CHECK-NEXT: - - 1.00 - - - - - - - movq %mm0, %rcx
299299
# CHECK-NEXT: - - - - 0.33 0.33 1.00 - - 0.33 movq %mm0, (%rax)
300-
# CHECK-NEXT: - - 0.25 0.25 - - - 2.25 0.25 - packsswb %mm0, %mm2
300+
# CHECK-NEXT: - - - - - - - 2.00 - - packsswb %mm0, %mm2
301301
# CHECK-NEXT: - - - - 0.50 0.50 - 2.00 - - packsswb (%rax), %mm2
302-
# CHECK-NEXT: - - 0.25 0.25 - - - 2.25 0.25 - packssdw %mm0, %mm2
302+
# CHECK-NEXT: - - - - - - - 2.00 - - packssdw %mm0, %mm2
303303
# CHECK-NEXT: - - - - 0.50 0.50 - 2.00 - - packssdw (%rax), %mm2
304-
# CHECK-NEXT: - - 0.25 0.25 - - - 2.25 0.25 - packuswb %mm0, %mm2
304+
# CHECK-NEXT: - - - - - - - 2.00 - - packuswb %mm0, %mm2
305305
# CHECK-NEXT: - - - - 0.50 0.50 - 2.00 - - packuswb (%rax), %mm2
306306
# CHECK-NEXT: - - - 0.50 - - - 0.50 - - paddb %mm0, %mm2
307307
# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - paddb (%rax), %mm2

llvm/test/tools/llvm-mca/X86/Haswell/resources-mmx.s

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -173,11 +173,11 @@ pxor (%rax), %mm2
173173
# CHECK-NEXT: 1 5 0.50 * movq (%rax), %mm2
174174
# CHECK-NEXT: 1 1 1.00 movq %mm0, %rcx
175175
# CHECK-NEXT: 2 1 1.00 * movq %mm0, (%rax)
176-
# CHECK-NEXT: 3 3 2.00 packsswb %mm0, %mm2
176+
# CHECK-NEXT: 2 3 2.00 packsswb %mm0, %mm2
177177
# CHECK-NEXT: 3 7 2.00 * packsswb (%rax), %mm2
178-
# CHECK-NEXT: 3 3 2.00 packssdw %mm0, %mm2
178+
# CHECK-NEXT: 2 3 2.00 packssdw %mm0, %mm2
179179
# CHECK-NEXT: 3 7 2.00 * packssdw (%rax), %mm2
180-
# CHECK-NEXT: 3 3 2.00 packuswb %mm0, %mm2
180+
# CHECK-NEXT: 2 3 2.00 packuswb %mm0, %mm2
181181
# CHECK-NEXT: 3 7 2.00 * packuswb (%rax), %mm2
182182
# CHECK-NEXT: 1 1 0.50 paddb %mm0, %mm2
183183
# CHECK-NEXT: 2 6 0.50 * paddb (%rax), %mm2
@@ -284,7 +284,7 @@ pxor (%rax), %mm2
284284

285285
# CHECK: Resource pressure per iteration:
286286
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9]
287-
# CHECK-NEXT: - - 46.67 35.17 23.67 23.67 2.00 57.17 1.00 0.67
287+
# CHECK-NEXT: - - 45.92 34.42 23.67 23.67 2.00 56.42 0.25 0.67
288288

289289
# CHECK: Resource pressure by instruction:
290290
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] Instructions:
@@ -297,11 +297,11 @@ pxor (%rax), %mm2
297297
# CHECK-NEXT: - - - - 0.50 0.50 - - - - movq (%rax), %mm2
298298
# CHECK-NEXT: - - 1.00 - - - - - - - movq %mm0, %rcx
299299
# CHECK-NEXT: - - - - 0.33 0.33 1.00 - - 0.33 movq %mm0, (%rax)
300-
# CHECK-NEXT: - - 0.25 0.25 - - - 2.25 0.25 - packsswb %mm0, %mm2
300+
# CHECK-NEXT: - - - - - - - 2.00 - - packsswb %mm0, %mm2
301301
# CHECK-NEXT: - - - - 0.50 0.50 - 2.00 - - packsswb (%rax), %mm2
302-
# CHECK-NEXT: - - 0.25 0.25 - - - 2.25 0.25 - packssdw %mm0, %mm2
302+
# CHECK-NEXT: - - - - - - - 2.00 - - packssdw %mm0, %mm2
303303
# CHECK-NEXT: - - - - 0.50 0.50 - 2.00 - - packssdw (%rax), %mm2
304-
# CHECK-NEXT: - - 0.25 0.25 - - - 2.25 0.25 - packuswb %mm0, %mm2
304+
# CHECK-NEXT: - - - - - - - 2.00 - - packuswb %mm0, %mm2
305305
# CHECK-NEXT: - - - - 0.50 0.50 - 2.00 - - packuswb (%rax), %mm2
306306
# CHECK-NEXT: - - - 0.50 - - - 0.50 - - paddb %mm0, %mm2
307307
# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - paddb (%rax), %mm2

0 commit comments

Comments
 (0)