[llvm] 24a39f3 - [X86] Fix pipe resources for HADD/SUB instructions
Simon Pilgrim via llvm-commits
llvm-commits at lists.llvm.org
Thu Jun 6 06:11:11 PDT 2024
Author: Simon Pilgrim
Date: 2024-06-06T14:11:00+01:00
New Revision: 24a39f364dbef7e18d36be3919eacde32125df5e
URL: https://github.com/llvm/llvm-project/commit/24a39f364dbef7e18d36be3919eacde32125df5e
DIFF: https://github.com/llvm/llvm-project/commit/24a39f364dbef7e18d36be3919eacde32125df5e.diff
LOG: [X86] Fix pipe resources for HADD/SUB instructions
IceLakeServer was copying these from SkylakeServer, but integer HADD/SUB can now run on an extra port
Added:
Modified:
llvm/lib/Target/X86/X86SchedIceLake.td
llvm/test/tools/llvm-mca/X86/IceLakeServer/resources-avx1.s
llvm/test/tools/llvm-mca/X86/IceLakeServer/resources-avx2.s
llvm/test/tools/llvm-mca/X86/IceLakeServer/resources-ssse3.s
Removed:
################################################################################
diff --git a/llvm/lib/Target/X86/X86SchedIceLake.td b/llvm/lib/Target/X86/X86SchedIceLake.td
index 2d296771b1c07..5c3f5f61c8967 100644
--- a/llvm/lib/Target/X86/X86SchedIceLake.td
+++ b/llvm/lib/Target/X86/X86SchedIceLake.td
@@ -623,8 +623,8 @@ def : WriteRes<WriteNop, []>;
defm : ICXWriteResPair<WriteFHAdd, [ICXPort5,ICXPort015], 6, [2,1], 3, 6>;
defm : ICXWriteResPair<WriteFHAddY, [ICXPort5,ICXPort015], 6, [2,1], 3, 7>;
defm : ICXWriteResPair<WritePHAdd, [ICXPort5,ICXPort05], 3, [2,1], 3, 5>;
-defm : ICXWriteResPair<WritePHAddX, [ICXPort5,ICXPort015], 3, [2,1], 3, 6>;
-defm : ICXWriteResPair<WritePHAddY, [ICXPort5,ICXPort015], 3, [2,1], 3, 7>;
+defm : ICXWriteResPair<WritePHAddX, [ICXPort15,ICXPort015], 3, [2,1], 3, 6>;
+defm : ICXWriteResPair<WritePHAddY, [ICXPort15,ICXPort015], 3, [2,1], 3, 7>;
// Remaining instrs.
@@ -886,7 +886,7 @@ def ICXWriteResGroup37 : SchedWriteRes<[ICXPort0,ICXPort5]> {
}
def: InstRW<[ICXWriteResGroup37], (instregex "MMX_PH(ADD|SUB)SWrr")>;
-def ICXWriteResGroup38 : SchedWriteRes<[ICXPort5,ICXPort01]> {
+def ICXWriteResGroup38 : SchedWriteRes<[ICXPort15,ICXPort01]> {
let Latency = 3;
let NumMicroOps = 3;
let ReleaseAtCycles = [2,1];
@@ -1739,13 +1739,13 @@ def ICXWriteResGroup137 : SchedWriteRes<[ICXPort23,ICXPort01]> {
def: InstRW<[ICXWriteResGroup137], (instregex "MMX_CVT(T?)PS2PIrm",
"(V?)CVTPS2PDrm")>;
-def ICXWriteResGroup143 : SchedWriteRes<[ICXPort5,ICXPort01,ICXPort23]> {
+def ICXWriteResGroup143 : SchedWriteRes<[ICXPort15,ICXPort01,ICXPort23]> {
let Latency = 9;
let NumMicroOps = 4;
let ReleaseAtCycles = [2,1,1];
}
-def: InstRW<[ICXWriteResGroup143], (instregex "(V?)PHADDSWrm",
- "(V?)PHSUBSWrm")>;
+def: InstRW<[ICXWriteResGroup143], (instrs PHADDSWrm, VPHADDSWrm,
+ PHSUBSWrm, VPHSUBSWrm)>;
def ICXWriteResGroup146 : SchedWriteRes<[ICXPort1,ICXPort6,ICXPort23,ICXPort0156]> {
let Latency = 9;
@@ -1842,7 +1842,7 @@ def: InstRW<[ICXWriteResGroup151], (instregex "VEXPANDPDZ128rm(b?)",
"VPEXPANDDZ128rm(b?)",
"VPEXPANDQZ128rm(b?)")>;
-def ICXWriteResGroup154 : SchedWriteRes<[ICXPort5,ICXPort01,ICXPort23]> {
+def ICXWriteResGroup154 : SchedWriteRes<[ICXPort15,ICXPort01,ICXPort23]> {
let Latency = 10;
let NumMicroOps = 4;
let ReleaseAtCycles = [2,1,1];
diff --git a/llvm/test/tools/llvm-mca/X86/IceLakeServer/resources-avx1.s b/llvm/test/tools/llvm-mca/X86/IceLakeServer/resources-avx1.s
index bd7a4894b45d6..76bc4ecc9326f 100644
--- a/llvm/test/tools/llvm-mca/X86/IceLakeServer/resources-avx1.s
+++ b/llvm/test/tools/llvm-mca/X86/IceLakeServer/resources-avx1.s
@@ -1455,20 +1455,20 @@ vzeroupper
# CHECK-NEXT: 3 2 1.00 * vpextrq $1, %xmm0, (%rax)
# CHECK-NEXT: 2 3 1.00 vpextrw $1, %xmm0, %ecx
# CHECK-NEXT: 3 2 1.00 * vpextrw $1, %xmm0, (%rax)
-# CHECK-NEXT: 3 3 2.00 vphaddd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 4 9 2.00 * vphaddd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 3 3 2.00 vphaddsw %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 4 9 2.00 * vphaddsw (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 3 3 2.00 vphaddw %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 4 9 2.00 * vphaddw (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 3 3 1.00 vphaddd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 4 9 1.00 * vphaddd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 3 3 1.00 vphaddsw %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 4 9 1.00 * vphaddsw (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 3 3 1.00 vphaddw %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 4 9 1.00 * vphaddw (%rax), %xmm1, %xmm2
# CHECK-NEXT: 1 4 1.00 vphminposuw %xmm0, %xmm2
# CHECK-NEXT: 2 10 1.00 * vphminposuw (%rax), %xmm2
-# CHECK-NEXT: 3 3 2.00 vphsubd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 4 9 2.00 * vphsubd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 3 3 2.00 vphsubsw %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 4 9 2.00 * vphsubsw (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 3 3 2.00 vphsubw %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 4 9 2.00 * vphsubw (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 3 3 1.00 vphsubd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 4 9 1.00 * vphsubd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 3 3 1.00 vphsubsw %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 4 9 1.00 * vphsubsw (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 3 3 1.00 vphsubw %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 4 9 1.00 * vphsubw (%rax), %xmm1, %xmm2
# CHECK-NEXT: 2 2 2.00 vpinsrb $1, %eax, %xmm1, %xmm2
# CHECK-NEXT: 2 6 1.00 * vpinsrb $1, (%rax), %xmm1, %xmm2
# CHECK-NEXT: 2 2 2.00 vpinsrd $1, %eax, %xmm1, %xmm2
@@ -1738,7 +1738,7 @@ vzeroupper
# CHECK: Resource pressure per iteration:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11]
-# CHECK-NEXT: - 126.00 322.92 237.92 160.50 160.50 19.00 291.92 6.25 19.00 19.00 19.00
+# CHECK-NEXT: - 126.00 322.92 249.92 160.50 160.50 19.00 279.92 6.25 19.00 19.00 19.00
# CHECK: Resource pressure by instruction:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] Instructions:
@@ -2167,20 +2167,20 @@ vzeroupper
# CHECK-NEXT: - - - - - - 0.50 1.00 - 0.50 0.50 0.50 vpextrq $1, %xmm0, (%rax)
# CHECK-NEXT: - - 1.00 - - - - 1.00 - - - - vpextrw $1, %xmm0, %ecx
# CHECK-NEXT: - - - - - - 0.50 1.00 - 0.50 0.50 0.50 vpextrw $1, %xmm0, (%rax)
-# CHECK-NEXT: - - 0.33 0.33 - - - 2.33 - - - - vphaddd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 2.33 - - - - vphaddd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - 0.50 0.50 - - - 2.00 - - - - vphaddsw %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - 2.00 - - - - vphaddsw (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - 0.33 0.33 - - - 2.33 - - - - vphaddw %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 2.33 - - - - vphaddw (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - 0.33 1.33 - - - 1.33 - - - - vphaddd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: - - 0.33 1.33 0.50 0.50 - 1.33 - - - - vphaddd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - 0.50 1.50 - - - 1.00 - - - - vphaddsw %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: - - 0.50 1.50 0.50 0.50 - 1.00 - - - - vphaddsw (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - 0.33 1.33 - - - 1.33 - - - - vphaddw %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: - - 0.33 1.33 0.50 0.50 - 1.33 - - - - vphaddw (%rax), %xmm1, %xmm2
# CHECK-NEXT: - - 1.00 - - - - - - - - - vphminposuw %xmm0, %xmm2
# CHECK-NEXT: - - 1.00 - 0.50 0.50 - - - - - - vphminposuw (%rax), %xmm2
-# CHECK-NEXT: - - 0.33 0.33 - - - 2.33 - - - - vphsubd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 2.33 - - - - vphsubd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - 0.50 0.50 - - - 2.00 - - - - vphsubsw %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - 2.00 - - - - vphsubsw (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - 0.33 0.33 - - - 2.33 - - - - vphsubw %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 2.33 - - - - vphsubw (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - 0.33 1.33 - - - 1.33 - - - - vphsubd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: - - 0.33 1.33 0.50 0.50 - 1.33 - - - - vphsubd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - 0.50 1.50 - - - 1.00 - - - - vphsubsw %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: - - 0.50 1.50 0.50 0.50 - 1.00 - - - - vphsubsw (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - 0.33 1.33 - - - 1.33 - - - - vphsubw %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: - - 0.33 1.33 0.50 0.50 - 1.33 - - - - vphsubw (%rax), %xmm1, %xmm2
# CHECK-NEXT: - - - - - - - 2.00 - - - - vpinsrb $1, %eax, %xmm1, %xmm2
# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpinsrb $1, (%rax), %xmm1, %xmm2
# CHECK-NEXT: - - - - - - - 2.00 - - - - vpinsrd $1, %eax, %xmm1, %xmm2
diff --git a/llvm/test/tools/llvm-mca/X86/IceLakeServer/resources-avx2.s b/llvm/test/tools/llvm-mca/X86/IceLakeServer/resources-avx2.s
index dcf883445ba4e..c251dc349587c 100644
--- a/llvm/test/tools/llvm-mca/X86/IceLakeServer/resources-avx2.s
+++ b/llvm/test/tools/llvm-mca/X86/IceLakeServer/resources-avx2.s
@@ -576,18 +576,18 @@ vpxor (%rax), %ymm1, %ymm2
# CHECK-NEXT: 5 20 2.00 * vpgatherqd %xmm0, (%rax,%ymm1,2), %xmm2
# CHECK-NEXT: 5 18 1.00 * vpgatherqq %xmm0, (%rax,%xmm1,2), %xmm2
# CHECK-NEXT: 5 20 2.00 * vpgatherqq %ymm0, (%rax,%ymm1,2), %ymm2
-# CHECK-NEXT: 3 3 2.00 vphaddd %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 4 10 2.00 * vphaddd (%rax), %ymm1, %ymm2
-# CHECK-NEXT: 3 3 2.00 vphaddsw %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 4 10 2.00 * vphaddsw (%rax), %ymm1, %ymm2
-# CHECK-NEXT: 3 3 2.00 vphaddw %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 4 10 2.00 * vphaddw (%rax), %ymm1, %ymm2
-# CHECK-NEXT: 3 3 2.00 vphsubd %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 4 10 2.00 * vphsubd (%rax), %ymm1, %ymm2
-# CHECK-NEXT: 3 3 2.00 vphsubsw %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 4 10 2.00 * vphsubsw (%rax), %ymm1, %ymm2
-# CHECK-NEXT: 3 3 2.00 vphsubw %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 4 10 2.00 * vphsubw (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 3 3 1.00 vphaddd %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 4 10 1.00 * vphaddd (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 3 3 1.00 vphaddsw %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 4 10 1.00 * vphaddsw (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 3 3 1.00 vphaddw %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 4 10 1.00 * vphaddw (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 3 3 1.00 vphsubd %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 4 10 1.00 * vphsubd (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 3 3 1.00 vphsubsw %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 4 10 1.00 * vphsubsw (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 3 3 1.00 vphsubw %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 4 10 1.00 * vphsubw (%rax), %ymm1, %ymm2
# CHECK-NEXT: 1 5 0.50 vpmaddubsw %ymm0, %ymm1, %ymm2
# CHECK-NEXT: 2 12 0.50 * vpmaddubsw (%rax), %ymm1, %ymm2
# CHECK-NEXT: 1 5 0.50 vpmaddwd %ymm0, %ymm1, %ymm2
@@ -778,7 +778,7 @@ vpxor (%rax), %ymm1, %ymm2
# CHECK: Resource pressure per iteration:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11]
-# CHECK-NEXT: - - 110.33 104.33 98.00 98.00 2.50 149.33 - 2.50 2.50 2.50
+# CHECK-NEXT: - - 110.33 116.33 98.00 98.00 2.50 137.33 - 2.50 2.50 2.50
# CHECK: Resource pressure by instruction:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] Instructions:
@@ -898,18 +898,18 @@ vpxor (%rax), %ymm1, %ymm2
# CHECK-NEXT: - - 1.33 0.33 2.00 2.00 - 1.33 - - - - vpgatherqd %xmm0, (%rax,%ymm1,2), %xmm2
# CHECK-NEXT: - - 1.33 0.33 1.00 1.00 - 1.33 - - - - vpgatherqq %xmm0, (%rax,%xmm1,2), %xmm2
# CHECK-NEXT: - - 1.33 0.33 2.00 2.00 - 1.33 - - - - vpgatherqq %ymm0, (%rax,%ymm1,2), %ymm2
-# CHECK-NEXT: - - 0.33 0.33 - - - 2.33 - - - - vphaddd %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 2.33 - - - - vphaddd (%rax), %ymm1, %ymm2
-# CHECK-NEXT: - - 0.50 0.50 - - - 2.00 - - - - vphaddsw %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - 2.00 - - - - vphaddsw (%rax), %ymm1, %ymm2
-# CHECK-NEXT: - - 0.33 0.33 - - - 2.33 - - - - vphaddw %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 2.33 - - - - vphaddw (%rax), %ymm1, %ymm2
-# CHECK-NEXT: - - 0.33 0.33 - - - 2.33 - - - - vphsubd %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 2.33 - - - - vphsubd (%rax), %ymm1, %ymm2
-# CHECK-NEXT: - - 0.50 0.50 - - - 2.00 - - - - vphsubsw %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - 2.00 - - - - vphsubsw (%rax), %ymm1, %ymm2
-# CHECK-NEXT: - - 0.33 0.33 - - - 2.33 - - - - vphsubw %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 2.33 - - - - vphsubw (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - 0.33 1.33 - - - 1.33 - - - - vphaddd %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: - - 0.33 1.33 0.50 0.50 - 1.33 - - - - vphaddd (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - 0.50 1.50 - - - 1.00 - - - - vphaddsw %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: - - 0.50 1.50 0.50 0.50 - 1.00 - - - - vphaddsw (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - 0.33 1.33 - - - 1.33 - - - - vphaddw %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: - - 0.33 1.33 0.50 0.50 - 1.33 - - - - vphaddw (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - 0.33 1.33 - - - 1.33 - - - - vphsubd %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: - - 0.33 1.33 0.50 0.50 - 1.33 - - - - vphsubd (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - 0.50 1.50 - - - 1.00 - - - - vphsubsw %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: - - 0.50 1.50 0.50 0.50 - 1.00 - - - - vphsubsw (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - 0.33 1.33 - - - 1.33 - - - - vphsubw %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: - - 0.33 1.33 0.50 0.50 - 1.33 - - - - vphsubw (%rax), %ymm1, %ymm2
# CHECK-NEXT: - - 0.50 0.50 - - - - - - - - vpmaddubsw %ymm0, %ymm1, %ymm2
# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - - - vpmaddubsw (%rax), %ymm1, %ymm2
# CHECK-NEXT: - - 0.50 0.50 - - - - - - - - vpmaddwd %ymm0, %ymm1, %ymm2
diff --git a/llvm/test/tools/llvm-mca/X86/IceLakeServer/resources-ssse3.s b/llvm/test/tools/llvm-mca/X86/IceLakeServer/resources-ssse3.s
index 3a6668cedb609..d034cbd0f6398 100644
--- a/llvm/test/tools/llvm-mca/X86/IceLakeServer/resources-ssse3.s
+++ b/llvm/test/tools/llvm-mca/X86/IceLakeServer/resources-ssse3.s
@@ -124,28 +124,28 @@ psignw (%rax), %xmm2
# CHECK-NEXT: 2 7 1.00 * palignr $1, (%rax), %xmm2
# CHECK-NEXT: 3 3 2.00 phaddd %mm0, %mm2
# CHECK-NEXT: 4 8 2.00 * phaddd (%rax), %mm2
-# CHECK-NEXT: 3 3 2.00 phaddd %xmm0, %xmm2
-# CHECK-NEXT: 4 9 2.00 * phaddd (%rax), %xmm2
+# CHECK-NEXT: 3 3 1.00 phaddd %xmm0, %xmm2
+# CHECK-NEXT: 4 9 1.00 * phaddd (%rax), %xmm2
# CHECK-NEXT: 3 3 2.00 phaddsw %mm0, %mm2
# CHECK-NEXT: 4 8 2.00 * phaddsw (%rax), %mm2
-# CHECK-NEXT: 3 3 2.00 phaddsw %xmm0, %xmm2
-# CHECK-NEXT: 4 9 2.00 * phaddsw (%rax), %xmm2
+# CHECK-NEXT: 3 3 1.00 phaddsw %xmm0, %xmm2
+# CHECK-NEXT: 4 9 1.00 * phaddsw (%rax), %xmm2
# CHECK-NEXT: 3 3 2.00 phaddw %mm0, %mm2
# CHECK-NEXT: 4 8 2.00 * phaddw (%rax), %mm2
-# CHECK-NEXT: 3 3 2.00 phaddw %xmm0, %xmm2
-# CHECK-NEXT: 4 9 2.00 * phaddw (%rax), %xmm2
+# CHECK-NEXT: 3 3 1.00 phaddw %xmm0, %xmm2
+# CHECK-NEXT: 4 9 1.00 * phaddw (%rax), %xmm2
# CHECK-NEXT: 3 3 2.00 phsubd %mm0, %mm2
# CHECK-NEXT: 4 8 2.00 * phsubd (%rax), %mm2
-# CHECK-NEXT: 3 3 2.00 phsubd %xmm0, %xmm2
-# CHECK-NEXT: 4 9 2.00 * phsubd (%rax), %xmm2
+# CHECK-NEXT: 3 3 1.00 phsubd %xmm0, %xmm2
+# CHECK-NEXT: 4 9 1.00 * phsubd (%rax), %xmm2
# CHECK-NEXT: 3 3 2.00 phsubsw %mm0, %mm2
# CHECK-NEXT: 4 8 2.00 * phsubsw (%rax), %mm2
-# CHECK-NEXT: 3 3 2.00 phsubsw %xmm0, %xmm2
-# CHECK-NEXT: 4 9 2.00 * phsubsw (%rax), %xmm2
+# CHECK-NEXT: 3 3 1.00 phsubsw %xmm0, %xmm2
+# CHECK-NEXT: 4 9 1.00 * phsubsw (%rax), %xmm2
# CHECK-NEXT: 3 3 2.00 phsubw %mm0, %mm2
# CHECK-NEXT: 4 8 2.00 * phsubw (%rax), %mm2
-# CHECK-NEXT: 3 3 2.00 phsubw %xmm0, %xmm2
-# CHECK-NEXT: 4 9 2.00 * phsubw (%rax), %xmm2
+# CHECK-NEXT: 3 3 1.00 phsubw %xmm0, %xmm2
+# CHECK-NEXT: 4 9 1.00 * phsubw (%rax), %xmm2
# CHECK-NEXT: 1 5 1.00 pmaddubsw %mm0, %mm2
# CHECK-NEXT: 2 10 1.00 * pmaddubsw (%rax), %mm2
# CHECK-NEXT: 1 5 0.50 pmaddubsw %xmm0, %xmm2
@@ -187,7 +187,7 @@ psignw (%rax), %xmm2
# CHECK: Resource pressure per iteration:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11]
-# CHECK-NEXT: - - 30.67 13.67 16.00 16.00 - 67.67 - - - -
+# CHECK-NEXT: - - 30.67 25.67 16.00 16.00 - 55.67 - - - -
# CHECK: Resource pressure by instruction:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] Instructions:
@@ -209,28 +209,28 @@ psignw (%rax), %xmm2
# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - palignr $1, (%rax), %xmm2
# CHECK-NEXT: - - 0.50 - - - - 2.50 - - - - phaddd %mm0, %mm2
# CHECK-NEXT: - - 0.50 - 0.50 0.50 - 2.50 - - - - phaddd (%rax), %mm2
-# CHECK-NEXT: - - 0.33 0.33 - - - 2.33 - - - - phaddd %xmm0, %xmm2
-# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 2.33 - - - - phaddd (%rax), %xmm2
+# CHECK-NEXT: - - 0.33 1.33 - - - 1.33 - - - - phaddd %xmm0, %xmm2
+# CHECK-NEXT: - - 0.33 1.33 0.50 0.50 - 1.33 - - - - phaddd (%rax), %xmm2
# CHECK-NEXT: - - 1.00 - - - - 2.00 - - - - phaddsw %mm0, %mm2
# CHECK-NEXT: - - 1.00 - 0.50 0.50 - 2.00 - - - - phaddsw (%rax), %mm2
-# CHECK-NEXT: - - 0.50 0.50 - - - 2.00 - - - - phaddsw %xmm0, %xmm2
-# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - 2.00 - - - - phaddsw (%rax), %xmm2
+# CHECK-NEXT: - - 0.50 1.50 - - - 1.00 - - - - phaddsw %xmm0, %xmm2
+# CHECK-NEXT: - - 0.50 1.50 0.50 0.50 - 1.00 - - - - phaddsw (%rax), %xmm2
# CHECK-NEXT: - - 0.50 - - - - 2.50 - - - - phaddw %mm0, %mm2
# CHECK-NEXT: - - 0.50 - 0.50 0.50 - 2.50 - - - - phaddw (%rax), %mm2
-# CHECK-NEXT: - - 0.33 0.33 - - - 2.33 - - - - phaddw %xmm0, %xmm2
-# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 2.33 - - - - phaddw (%rax), %xmm2
+# CHECK-NEXT: - - 0.33 1.33 - - - 1.33 - - - - phaddw %xmm0, %xmm2
+# CHECK-NEXT: - - 0.33 1.33 0.50 0.50 - 1.33 - - - - phaddw (%rax), %xmm2
# CHECK-NEXT: - - 0.50 - - - - 2.50 - - - - phsubd %mm0, %mm2
# CHECK-NEXT: - - 0.50 - 0.50 0.50 - 2.50 - - - - phsubd (%rax), %mm2
-# CHECK-NEXT: - - 0.33 0.33 - - - 2.33 - - - - phsubd %xmm0, %xmm2
-# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 2.33 - - - - phsubd (%rax), %xmm2
+# CHECK-NEXT: - - 0.33 1.33 - - - 1.33 - - - - phsubd %xmm0, %xmm2
+# CHECK-NEXT: - - 0.33 1.33 0.50 0.50 - 1.33 - - - - phsubd (%rax), %xmm2
# CHECK-NEXT: - - 1.00 - - - - 2.00 - - - - phsubsw %mm0, %mm2
# CHECK-NEXT: - - 1.00 - 0.50 0.50 - 2.00 - - - - phsubsw (%rax), %mm2
-# CHECK-NEXT: - - 0.50 0.50 - - - 2.00 - - - - phsubsw %xmm0, %xmm2
-# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - 2.00 - - - - phsubsw (%rax), %xmm2
+# CHECK-NEXT: - - 0.50 1.50 - - - 1.00 - - - - phsubsw %xmm0, %xmm2
+# CHECK-NEXT: - - 0.50 1.50 0.50 0.50 - 1.00 - - - - phsubsw (%rax), %xmm2
# CHECK-NEXT: - - 0.50 - - - - 2.50 - - - - phsubw %mm0, %mm2
# CHECK-NEXT: - - 0.50 - 0.50 0.50 - 2.50 - - - - phsubw (%rax), %mm2
-# CHECK-NEXT: - - 0.33 0.33 - - - 2.33 - - - - phsubw %xmm0, %xmm2
-# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 2.33 - - - - phsubw (%rax), %xmm2
+# CHECK-NEXT: - - 0.33 1.33 - - - 1.33 - - - - phsubw %xmm0, %xmm2
+# CHECK-NEXT: - - 0.33 1.33 0.50 0.50 - 1.33 - - - - phsubw (%rax), %xmm2
# CHECK-NEXT: - - 1.00 - - - - - - - - - pmaddubsw %mm0, %mm2
# CHECK-NEXT: - - 1.00 - 0.50 0.50 - - - - - - pmaddubsw (%rax), %mm2
# CHECK-NEXT: - - 0.50 0.50 - - - - - - - - pmaddubsw %xmm0, %xmm2
More information about the llvm-commits
mailing list