Skip to content

Commit cb5bdf8

Browse files
committed
[X86] Remove HSW/BDW incorrect MOVQ2DQ override
MOVQ2DQ is treated the same as other vector moves on Port015 (matches SandyBridge, not Skylake or later). Confirmed by augner/uops.info
1 parent 6e720df commit cb5bdf8

File tree

4 files changed

+6
-20
lines changed

4 files changed

+6
-20
lines changed

llvm/lib/Target/X86/X86SchedBroadwell.td

-7
Original file line numberDiff line numberDiff line change
@@ -648,13 +648,6 @@ def BWWriteResGroup2 : SchedWriteRes<[BWPort1]> {
648648
def: InstRW<[BWWriteResGroup2], (instregex "COM(P?)_FST0r",
649649
"UCOM_F(P?)r")>;
650650

651-
def BWWriteResGroup3 : SchedWriteRes<[BWPort5]> {
652-
let Latency = 1;
653-
let NumMicroOps = 1;
654-
let ReleaseAtCycles = [1];
655-
}
656-
def: InstRW<[BWWriteResGroup3], (instrs MMX_MOVQ2DQrr)>;
657-
658651
def BWWriteResGroup4 : SchedWriteRes<[BWPort6]> {
659652
let Latency = 1;
660653
let NumMicroOps = 1;

llvm/lib/Target/X86/X86SchedHaswell.td

-7
Original file line numberDiff line numberDiff line change
@@ -919,13 +919,6 @@ def HWWriteResGroup3 : SchedWriteRes<[HWPort1]> {
919919
def: InstRW<[HWWriteResGroup3], (instregex "COM(P?)_FST0r",
920920
"UCOM_F(P?)r")>;
921921

922-
def HWWriteResGroup4 : SchedWriteRes<[HWPort5]> {
923-
let Latency = 1;
924-
let NumMicroOps = 1;
925-
let ReleaseAtCycles = [1];
926-
}
927-
def: InstRW<[HWWriteResGroup4], (instrs MMX_MOVQ2DQrr)>;
928-
929922
def HWWriteResGroup5 : SchedWriteRes<[HWPort6]> {
930923
let Latency = 1;
931924
let NumMicroOps = 1;

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

+3-3
Original file line numberDiff line numberDiff line change
@@ -503,7 +503,7 @@ xorpd (%rax), %xmm2
503503
# CHECK-NEXT: 1 5 0.50 * movq (%rax), %xmm2
504504
# CHECK-NEXT: 1 1 1.00 movq %xmm0, %rcx
505505
# CHECK-NEXT: 2 1 1.00 * movq %xmm0, (%rax)
506-
# CHECK-NEXT: 1 1 1.00 movq2dq %mm0, %xmm2
506+
# CHECK-NEXT: 1 1 0.33 movq2dq %mm0, %xmm2
507507
# CHECK-NEXT: 1 1 1.00 movsd %xmm0, %xmm2
508508
# CHECK-NEXT: 2 1 1.00 * movsd %xmm0, (%rax)
509509
# CHECK-NEXT: 1 5 0.50 * movsd (%rax), %xmm2
@@ -689,7 +689,7 @@ xorpd (%rax), %xmm2
689689

690690
# CHECK: Resource pressure per iteration:
691691
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9]
692-
# CHECK-NEXT: - 78.00 70.25 95.25 63.67 63.67 15.00 116.75 1.75 4.67
692+
# CHECK-NEXT: - 78.00 70.58 95.58 63.67 63.67 15.00 116.08 1.75 4.67
693693

694694
# CHECK: Resource pressure by instruction:
695695
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] Instructions:
@@ -789,7 +789,7 @@ xorpd (%rax), %xmm2
789789
# CHECK-NEXT: - - - - 0.50 0.50 - - - - movq (%rax), %xmm2
790790
# CHECK-NEXT: - - 1.00 - - - - - - - movq %xmm0, %rcx
791791
# CHECK-NEXT: - - - - 0.33 0.33 1.00 - - 0.33 movq %xmm0, (%rax)
792-
# CHECK-NEXT: - - - - - - - 1.00 - - movq2dq %mm0, %xmm2
792+
# CHECK-NEXT: - - 0.33 0.33 - - - 0.33 - - movq2dq %mm0, %xmm2
793793
# CHECK-NEXT: - - - - - - - 1.00 - - movsd %xmm0, %xmm2
794794
# CHECK-NEXT: - - - - 0.33 0.33 1.00 - - 0.33 movsd %xmm0, (%rax)
795795
# CHECK-NEXT: - - - - 0.50 0.50 - - - - movsd (%rax), %xmm2

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

+3-3
Original file line numberDiff line numberDiff line change
@@ -503,7 +503,7 @@ xorpd (%rax), %xmm2
503503
# CHECK-NEXT: 1 5 0.50 * movq (%rax), %xmm2
504504
# CHECK-NEXT: 1 1 1.00 movq %xmm0, %rcx
505505
# CHECK-NEXT: 2 1 1.00 * movq %xmm0, (%rax)
506-
# CHECK-NEXT: 1 1 1.00 movq2dq %mm0, %xmm2
506+
# CHECK-NEXT: 1 1 0.33 movq2dq %mm0, %xmm2
507507
# CHECK-NEXT: 1 1 1.00 movsd %xmm0, %xmm2
508508
# CHECK-NEXT: 2 1 1.00 * movsd %xmm0, (%rax)
509509
# CHECK-NEXT: 1 5 0.50 * movsd (%rax), %xmm2
@@ -689,7 +689,7 @@ xorpd (%rax), %xmm2
689689

690690
# CHECK: Resource pressure per iteration:
691691
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9]
692-
# CHECK-NEXT: - 112.00 70.25 95.25 63.67 63.67 15.00 116.75 1.75 4.67
692+
# CHECK-NEXT: - 112.00 70.58 95.58 63.67 63.67 15.00 116.08 1.75 4.67
693693

694694
# CHECK: Resource pressure by instruction:
695695
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] Instructions:
@@ -789,7 +789,7 @@ xorpd (%rax), %xmm2
789789
# CHECK-NEXT: - - - - 0.50 0.50 - - - - movq (%rax), %xmm2
790790
# CHECK-NEXT: - - 1.00 - - - - - - - movq %xmm0, %rcx
791791
# CHECK-NEXT: - - - - 0.33 0.33 1.00 - - 0.33 movq %xmm0, (%rax)
792-
# CHECK-NEXT: - - - - - - - 1.00 - - movq2dq %mm0, %xmm2
792+
# CHECK-NEXT: - - 0.33 0.33 - - - 0.33 - - movq2dq %mm0, %xmm2
793793
# CHECK-NEXT: - - - - - - - 1.00 - - movsd %xmm0, %xmm2
794794
# CHECK-NEXT: - - - - 0.33 0.33 1.00 - - 0.33 movsd %xmm0, (%rax)
795795
# CHECK-NEXT: - - - - 0.50 0.50 - - - - movsd (%rax), %xmm2

0 commit comments

Comments
 (0)