[llvm] 6a52a51 - [X86] IceLakeServer - fix port usage for PINSR instructions
Simon Pilgrim via llvm-commits
llvm-commits at lists.llvm.org
Mon Dec 9 02:50:19 PST 2024
Author: Simon Pilgrim
Date: 2024-12-09T10:50:01Z
New Revision: 6a52a51bdd7eefa2e31eeb4be3333325dfe0cd95
URL: https://github.com/llvm/llvm-project/commit/6a52a51bdd7eefa2e31eeb4be3333325dfe0cd95
DIFF: https://github.com/llvm/llvm-project/commit/6a52a51bdd7eefa2e31eeb4be3333325dfe0cd95.diff
LOG: [X86] IceLakeServer - fix port usage for PINSR instructions
Fix legacy of copying IceLakeServer from SkylakeServer - PINSR instructions now use Port15/Port5 pairs, not just heavy Port5 usage.
Matches uops.info + Agner.
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-avx512bw.s
llvm/test/tools/llvm-mca/X86/IceLakeServer/resources-avx512dq.s
llvm/test/tools/llvm-mca/X86/IceLakeServer/resources-sse1.s
llvm/test/tools/llvm-mca/X86/IceLakeServer/resources-sse2.s
llvm/test/tools/llvm-mca/X86/IceLakeServer/resources-sse41.s
Removed:
################################################################################
diff --git a/llvm/lib/Target/X86/X86SchedIceLake.td b/llvm/lib/Target/X86/X86SchedIceLake.td
index 60e14ae593f87f..1c57093c89796b 100644
--- a/llvm/lib/Target/X86/X86SchedIceLake.td
+++ b/llvm/lib/Target/X86/X86SchedIceLake.td
@@ -429,16 +429,14 @@ defm : ICXWriteResPair<WriteVarVecShiftY, [ICXPort01], 1, [1], 1, 7>;
defm : ICXWriteResPair<WriteVarVecShiftZ, [ICXPort0], 1, [1], 1, 7>;
// Vector insert/extract operations.
-def : WriteRes<WriteVecInsert, [ICXPort5]> {
+def : WriteRes<WriteVecInsert, [ICXPort15,ICXPort5]> {
let Latency = 2;
let NumMicroOps = 2;
- let ReleaseAtCycles = [2];
}
-def : WriteRes<WriteVecInsertLd, [ICXPort5,ICXPort23]> {
+def : WriteRes<WriteVecInsertLd, [ICXPort15,ICXPort23]> {
let Latency = 6;
let NumMicroOps = 2;
}
-def: InstRW<[WriteVecInsertLd], (instregex "(V?)MOV(H|L)(PD|PS)rm")>;
def : WriteRes<WriteVecExtract, [ICXPort0,ICXPort15]> {
let Latency = 3;
@@ -1297,7 +1295,8 @@ def ICXWriteResGroup92 : SchedWriteRes<[ICXPort5,ICXPort23]> {
let ReleaseAtCycles = [1,1];
}
def: InstRW<[ICXWriteResGroup92], (instregex "VMOV(SD|SS)Zrm(b?)",
- "VPBROADCAST(B|W)(Z128)?rm",
+ "VPBROADCAST(B|W)(Z128)?rm",
+ "(V?)MOV(H|L)(PD|PS)rm",
"(V?)INSERTPS(Z?)rm",
"(V?)PALIGNR(Z128)?rmi",
"(V?)PERMIL(PD|PS)(Z128)?m(b?)i",
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 0e7c5751e5c084..ca0e054389c887 100644
--- a/llvm/test/tools/llvm-mca/X86/IceLakeServer/resources-avx1.s
+++ b/llvm/test/tools/llvm-mca/X86/IceLakeServer/resources-avx1.s
@@ -1287,13 +1287,13 @@ vzeroupper
# CHECK-NEXT: 1 1 1.00 vmovhlps %xmm0, %xmm1, %xmm2
# CHECK-NEXT: 1 1 1.00 vmovlhps %xmm0, %xmm1, %xmm2
# CHECK-NEXT: 2 1 0.50 * vmovhpd %xmm0, (%rax)
-# CHECK-NEXT: 2 6 1.00 * vmovhpd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 2 7 1.00 * vmovhpd (%rax), %xmm1, %xmm2
# CHECK-NEXT: 2 1 0.50 * vmovhps %xmm0, (%rax)
-# CHECK-NEXT: 2 6 1.00 * vmovhps (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 2 7 1.00 * vmovhps (%rax), %xmm1, %xmm2
# CHECK-NEXT: 2 1 0.50 * vmovlpd %xmm0, (%rax)
-# CHECK-NEXT: 2 6 1.00 * vmovlpd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 2 7 1.00 * vmovlpd (%rax), %xmm1, %xmm2
# CHECK-NEXT: 2 1 0.50 * vmovlps %xmm0, (%rax)
-# CHECK-NEXT: 2 6 1.00 * vmovlps (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 2 7 1.00 * vmovlps (%rax), %xmm1, %xmm2
# CHECK-NEXT: 1 2 1.00 vmovmskpd %xmm0, %ecx
# CHECK-NEXT: 1 2 1.00 vmovmskpd %ymm0, %ecx
# CHECK-NEXT: 1 2 1.00 vmovmskps %xmm0, %ecx
@@ -1469,14 +1469,14 @@ vzeroupper
# 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
-# CHECK-NEXT: 2 6 1.00 * vpinsrd $1, (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 2 2 2.00 vpinsrq $1, %rax, %xmm1, %xmm2
-# CHECK-NEXT: 2 6 1.00 * vpinsrq $1, (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 2 2 2.00 vpinsrw $1, %eax, %xmm1, %xmm2
-# CHECK-NEXT: 2 6 1.00 * vpinsrw $1, (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 2 2 1.00 vpinsrb $1, %eax, %xmm1, %xmm2
+# CHECK-NEXT: 2 6 0.50 * vpinsrb $1, (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 2 2 1.00 vpinsrd $1, %eax, %xmm1, %xmm2
+# CHECK-NEXT: 2 6 0.50 * vpinsrd $1, (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 2 2 1.00 vpinsrq $1, %rax, %xmm1, %xmm2
+# CHECK-NEXT: 2 6 0.50 * vpinsrq $1, (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 2 2 1.00 vpinsrw $1, %eax, %xmm1, %xmm2
+# CHECK-NEXT: 2 6 0.50 * vpinsrw $1, (%rax), %xmm1, %xmm2
# CHECK-NEXT: 1 5 0.50 vpmaddubsw %xmm0, %xmm1, %xmm2
# CHECK-NEXT: 2 11 0.50 * vpmaddubsw (%rax), %xmm1, %xmm2
# CHECK-NEXT: 1 5 0.50 vpmaddwd %xmm0, %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 326.25 257.25 160.50 160.50 19.00 271.25 6.25 19.00 19.00 19.00
+# CHECK-NEXT: - 126.00 326.25 261.25 160.50 160.50 19.00 267.25 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:
@@ -2181,14 +2181,14 @@ vzeroupper
# 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
-# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpinsrd $1, (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - - 2.00 - - - - vpinsrq $1, %rax, %xmm1, %xmm2
-# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpinsrq $1, (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - - 2.00 - - - - vpinsrw $1, %eax, %xmm1, %xmm2
-# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpinsrw $1, (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - 0.50 - - - 1.50 - - - - vpinsrb $1, %eax, %xmm1, %xmm2
+# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpinsrb $1, (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - 0.50 - - - 1.50 - - - - vpinsrd $1, %eax, %xmm1, %xmm2
+# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpinsrd $1, (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - 0.50 - - - 1.50 - - - - vpinsrq $1, %rax, %xmm1, %xmm2
+# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpinsrq $1, (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - 0.50 - - - 1.50 - - - - vpinsrw $1, %eax, %xmm1, %xmm2
+# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpinsrw $1, (%rax), %xmm1, %xmm2
# CHECK-NEXT: - - 0.50 0.50 - - - - - - - - vpmaddubsw %xmm0, %xmm1, %xmm2
# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - - - vpmaddubsw (%rax), %xmm1, %xmm2
# CHECK-NEXT: - - 0.50 0.50 - - - - - - - - vpmaddwd %xmm0, %xmm1, %xmm2
diff --git a/llvm/test/tools/llvm-mca/X86/IceLakeServer/resources-avx512bw.s b/llvm/test/tools/llvm-mca/X86/IceLakeServer/resources-avx512bw.s
index ad81aeae31e4cc..720b2f1e6ef7bd 100644
--- a/llvm/test/tools/llvm-mca/X86/IceLakeServer/resources-avx512bw.s
+++ b/llvm/test/tools/llvm-mca/X86/IceLakeServer/resources-avx512bw.s
@@ -826,10 +826,10 @@ vpunpcklwd (%rax), %zmm17, %zmm19 {z}{k1}
# CHECK-NEXT: 3 2 0.50 * vpextrb $0, %xmm16, (%rax)
# CHECK-NEXT: 2 3 1.00 vpextrw $0, %xmm16, %eax
# CHECK-NEXT: 3 2 0.50 * vpextrw $0, %xmm16, (%rax)
-# CHECK-NEXT: 2 2 2.00 vpinsrb $0, %eax, %xmm16, %xmm19
-# CHECK-NEXT: 2 6 1.00 * vpinsrb $0, (%rax), %xmm16, %xmm19
-# CHECK-NEXT: 2 2 2.00 vpinsrw $0, %eax, %xmm16, %xmm19
-# CHECK-NEXT: 2 6 1.00 * vpinsrw $0, (%rax), %xmm16, %xmm19
+# CHECK-NEXT: 2 2 1.00 vpinsrb $0, %eax, %xmm16, %xmm19
+# CHECK-NEXT: 2 6 0.50 * vpinsrb $0, (%rax), %xmm16, %xmm19
+# CHECK-NEXT: 2 2 1.00 vpinsrw $0, %eax, %xmm16, %xmm19
+# CHECK-NEXT: 2 6 0.50 * vpinsrw $0, (%rax), %xmm16, %xmm19
# CHECK-NEXT: 2 6 2.00 vpermw %zmm16, %zmm17, %zmm19
# CHECK-NEXT: 3 13 2.00 * vpermw (%rax), %zmm17, %zmm19
# CHECK-NEXT: 2 6 2.00 vpermw %zmm16, %zmm17, %zmm19 {%k1}
@@ -1134,7 +1134,7 @@ vpunpcklwd (%rax), %zmm17, %zmm19 {z}{k1}
# CHECK: Resource pressure per iteration:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11]
-# CHECK-NEXT: - - 239.50 19.50 110.00 110.00 8.00 299.50 0.50 8.00 8.00 8.00
+# CHECK-NEXT: - - 239.50 21.50 110.00 110.00 8.00 297.50 0.50 8.00 8.00 8.00
# CHECK: Resource pressure by instruction:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] Instructions:
@@ -1350,10 +1350,10 @@ vpunpcklwd (%rax), %zmm17, %zmm19 {z}{k1}
# CHECK-NEXT: - - - 0.50 - - 0.50 0.50 - 0.50 0.50 0.50 vpextrb $0, %xmm16, (%rax)
# CHECK-NEXT: - - 1.00 0.50 - - - 0.50 - - - - vpextrw $0, %xmm16, %eax
# CHECK-NEXT: - - - 0.50 - - 0.50 0.50 - 0.50 0.50 0.50 vpextrw $0, %xmm16, (%rax)
-# CHECK-NEXT: - - - - - - - 2.00 - - - - vpinsrb $0, %eax, %xmm16, %xmm19
-# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpinsrb $0, (%rax), %xmm16, %xmm19
-# CHECK-NEXT: - - - - - - - 2.00 - - - - vpinsrw $0, %eax, %xmm16, %xmm19
-# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpinsrw $0, (%rax), %xmm16, %xmm19
+# CHECK-NEXT: - - - 0.50 - - - 1.50 - - - - vpinsrb $0, %eax, %xmm16, %xmm19
+# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpinsrb $0, (%rax), %xmm16, %xmm19
+# CHECK-NEXT: - - - 0.50 - - - 1.50 - - - - vpinsrw $0, %eax, %xmm16, %xmm19
+# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpinsrw $0, (%rax), %xmm16, %xmm19
# CHECK-NEXT: - - - - - - - 2.00 - - - - vpermw %zmm16, %zmm17, %zmm19
# CHECK-NEXT: - - - - 0.50 0.50 - 2.00 - - - - vpermw (%rax), %zmm17, %zmm19
# CHECK-NEXT: - - - - - - - 2.00 - - - - vpermw %zmm16, %zmm17, %zmm19 {%k1}
diff --git a/llvm/test/tools/llvm-mca/X86/IceLakeServer/resources-avx512dq.s b/llvm/test/tools/llvm-mca/X86/IceLakeServer/resources-avx512dq.s
index 8124c584832334..d20a53240ad9d8 100644
--- a/llvm/test/tools/llvm-mca/X86/IceLakeServer/resources-avx512dq.s
+++ b/llvm/test/tools/llvm-mca/X86/IceLakeServer/resources-avx512dq.s
@@ -739,10 +739,10 @@ vxorps (%rax){1to16}, %zmm17, %zmm19 {z}{k1}
# CHECK-NEXT: 3 2 0.50 * vpextrd $1, %xmm16, (%rax)
# CHECK-NEXT: 2 3 1.00 vpextrq $1, %xmm16, %rcx
# CHECK-NEXT: 3 2 0.50 * vpextrq $1, %xmm16, (%rax)
-# CHECK-NEXT: 2 2 2.00 vpinsrd $1, %ecx, %xmm16, %xmm19
-# CHECK-NEXT: 2 6 1.00 * vpinsrd $1, (%rax), %xmm16, %xmm19
-# CHECK-NEXT: 2 2 2.00 vpinsrq $1, %rcx, %xmm16, %xmm19
-# CHECK-NEXT: 2 6 1.00 * vpinsrq $1, (%rax), %xmm16, %xmm19
+# CHECK-NEXT: 2 2 1.00 vpinsrd $1, %ecx, %xmm16, %xmm19
+# CHECK-NEXT: 2 6 0.50 * vpinsrd $1, (%rax), %xmm16, %xmm19
+# CHECK-NEXT: 2 2 1.00 vpinsrq $1, %rcx, %xmm16, %xmm19
+# CHECK-NEXT: 2 6 0.50 * vpinsrq $1, (%rax), %xmm16, %xmm19
# CHECK-NEXT: 1 1 0.50 vpmovm2d %k0, %zmm0
# CHECK-NEXT: 1 1 0.50 vpmovm2q %k0, %zmm0
# CHECK-NEXT: 1 1 1.00 vpmovd2m %zmm0, %k0
@@ -872,7 +872,7 @@ vxorps (%rax){1to16}, %zmm17, %zmm19 {z}{k1}
# CHECK: Resource pressure per iteration:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11]
-# CHECK-NEXT: - - 209.25 75.25 102.00 102.00 5.50 195.25 0.25 5.50 5.50 5.50
+# CHECK-NEXT: - - 209.25 77.25 102.00 102.00 5.50 193.25 0.25 5.50 5.50 5.50
# CHECK: Resource pressure by instruction:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] Instructions:
@@ -1148,10 +1148,10 @@ vxorps (%rax){1to16}, %zmm17, %zmm19 {z}{k1}
# CHECK-NEXT: - - - 0.50 - - 0.50 0.50 - 0.50 0.50 0.50 vpextrd $1, %xmm16, (%rax)
# CHECK-NEXT: - - 1.00 0.50 - - - 0.50 - - - - vpextrq $1, %xmm16, %rcx
# CHECK-NEXT: - - - 0.50 - - 0.50 0.50 - 0.50 0.50 0.50 vpextrq $1, %xmm16, (%rax)
-# CHECK-NEXT: - - - - - - - 2.00 - - - - vpinsrd $1, %ecx, %xmm16, %xmm19
-# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpinsrd $1, (%rax), %xmm16, %xmm19
-# CHECK-NEXT: - - - - - - - 2.00 - - - - vpinsrq $1, %rcx, %xmm16, %xmm19
-# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpinsrq $1, (%rax), %xmm16, %xmm19
+# CHECK-NEXT: - - - 0.50 - - - 1.50 - - - - vpinsrd $1, %ecx, %xmm16, %xmm19
+# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpinsrd $1, (%rax), %xmm16, %xmm19
+# CHECK-NEXT: - - - 0.50 - - - 1.50 - - - - vpinsrq $1, %rcx, %xmm16, %xmm19
+# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpinsrq $1, (%rax), %xmm16, %xmm19
# CHECK-NEXT: - - 0.50 - - - - 0.50 - - - - vpmovm2d %k0, %zmm0
# CHECK-NEXT: - - 0.50 - - - - 0.50 - - - - vpmovm2q %k0, %zmm0
# CHECK-NEXT: - - 1.00 - - - - - - - - - vpmovd2m %zmm0, %k0
diff --git a/llvm/test/tools/llvm-mca/X86/IceLakeServer/resources-sse1.s b/llvm/test/tools/llvm-mca/X86/IceLakeServer/resources-sse1.s
index 840f325494bd10..9817fc2410daf1 100644
--- a/llvm/test/tools/llvm-mca/X86/IceLakeServer/resources-sse1.s
+++ b/llvm/test/tools/llvm-mca/X86/IceLakeServer/resources-sse1.s
@@ -246,9 +246,9 @@ xorps (%rax), %xmm2
# CHECK-NEXT: 1 1 1.00 movhlps %xmm0, %xmm2
# CHECK-NEXT: 1 1 1.00 movlhps %xmm0, %xmm2
# CHECK-NEXT: 2 1 0.50 * movhps %xmm0, (%rax)
-# CHECK-NEXT: 2 6 1.00 * movhps (%rax), %xmm2
+# CHECK-NEXT: 2 7 1.00 * movhps (%rax), %xmm2
# CHECK-NEXT: 2 1 0.50 * movlps %xmm0, (%rax)
-# CHECK-NEXT: 2 6 1.00 * movlps (%rax), %xmm2
+# CHECK-NEXT: 2 7 1.00 * movlps (%rax), %xmm2
# CHECK-NEXT: 1 2 1.00 movmskps %xmm0, %ecx
# CHECK-NEXT: 2 1 0.50 * movntps %xmm0, (%rax)
# CHECK-NEXT: 2 1 0.50 * * U movntq %mm0, (%rax)
@@ -269,8 +269,8 @@ xorps (%rax), %xmm2
# CHECK-NEXT: 1 1 1.00 pavgw %mm0, %mm2
# CHECK-NEXT: 2 6 1.00 * pavgw (%rax), %mm2
# CHECK-NEXT: 2 3 1.00 pextrw $1, %mm0, %ecx
-# CHECK-NEXT: 2 2 2.00 pinsrw $1, %eax, %mm2
-# CHECK-NEXT: 2 6 1.00 * pinsrw $1, (%rax), %mm2
+# CHECK-NEXT: 2 2 1.00 pinsrw $1, %eax, %mm2
+# CHECK-NEXT: 2 6 0.50 * pinsrw $1, (%rax), %mm2
# CHECK-NEXT: 1 1 1.00 pmaxsw %mm0, %mm2
# CHECK-NEXT: 2 6 1.00 * pmaxsw (%rax), %mm2
# CHECK-NEXT: 1 1 1.00 pmaxub %mm0, %mm2
@@ -335,7 +335,7 @@ xorps (%rax), %xmm2
# CHECK: Resource pressure per iteration:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11]
-# CHECK-NEXT: - 24.00 66.92 29.42 29.00 29.00 4.50 31.42 0.25 4.50 4.50 4.50
+# CHECK-NEXT: - 24.00 66.92 30.42 29.00 29.00 4.50 30.42 0.25 4.50 4.50 4.50
# CHECK: Resource pressure by instruction:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] Instructions:
@@ -414,8 +414,8 @@ xorps (%rax), %xmm2
# CHECK-NEXT: - - 1.00 - - - - - - - - - pavgw %mm0, %mm2
# CHECK-NEXT: - - 1.00 - 0.50 0.50 - - - - - - pavgw (%rax), %mm2
# CHECK-NEXT: - - 1.00 0.50 - - - 0.50 - - - - pextrw $1, %mm0, %ecx
-# CHECK-NEXT: - - - - - - - 2.00 - - - - pinsrw $1, %eax, %mm2
-# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - pinsrw $1, (%rax), %mm2
+# CHECK-NEXT: - - - 0.50 - - - 1.50 - - - - pinsrw $1, %eax, %mm2
+# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - pinsrw $1, (%rax), %mm2
# CHECK-NEXT: - - 1.00 - - - - - - - - - pmaxsw %mm0, %mm2
# CHECK-NEXT: - - 1.00 - 0.50 0.50 - - - - - - pmaxsw (%rax), %mm2
# CHECK-NEXT: - - 1.00 - - - - - - - - - pmaxub %mm0, %mm2
diff --git a/llvm/test/tools/llvm-mca/X86/IceLakeServer/resources-sse2.s b/llvm/test/tools/llvm-mca/X86/IceLakeServer/resources-sse2.s
index 6f60cfd1b9fefb..d039f7c611fbb7 100644
--- a/llvm/test/tools/llvm-mca/X86/IceLakeServer/resources-sse2.s
+++ b/llvm/test/tools/llvm-mca/X86/IceLakeServer/resources-sse2.s
@@ -490,9 +490,9 @@ xorpd (%rax), %xmm2
# CHECK-NEXT: 1 6 0.50 * movdqu (%rax), %xmm2
# CHECK-NEXT: 2 2 1.00 movdq2q %xmm0, %mm2
# CHECK-NEXT: 2 1 0.50 * movhpd %xmm0, (%rax)
-# CHECK-NEXT: 2 6 1.00 * movhpd (%rax), %xmm2
+# CHECK-NEXT: 2 7 1.00 * movhpd (%rax), %xmm2
# CHECK-NEXT: 2 1 0.50 * movlpd %xmm0, (%rax)
-# CHECK-NEXT: 2 6 1.00 * movlpd (%rax), %xmm2
+# CHECK-NEXT: 2 7 1.00 * movlpd (%rax), %xmm2
# CHECK-NEXT: 1 2 1.00 movmskpd %xmm0, %ecx
# CHECK-NEXT: 2 1 0.50 * movntil %eax, (%rax)
# CHECK-NEXT: 2 1 0.50 * movntiq %rax, (%rax)
@@ -561,8 +561,8 @@ xorpd (%rax), %xmm2
# CHECK-NEXT: 1 1 0.50 pcmpgtw %xmm0, %xmm2
# CHECK-NEXT: 2 7 0.50 * pcmpgtw (%rax), %xmm2
# CHECK-NEXT: 2 3 1.00 pextrw $1, %xmm0, %ecx
-# CHECK-NEXT: 2 2 2.00 pinsrw $1, %eax, %xmm0
-# CHECK-NEXT: 2 6 1.00 * pinsrw $1, (%rax), %xmm0
+# CHECK-NEXT: 2 2 1.00 pinsrw $1, %eax, %xmm0
+# CHECK-NEXT: 2 6 0.50 * pinsrw $1, (%rax), %xmm0
# CHECK-NEXT: 1 5 0.50 pmaddwd %xmm0, %xmm2
# CHECK-NEXT: 2 11 0.50 * pmaddwd (%rax), %xmm2
# CHECK-NEXT: 1 1 0.50 pmaxsw %xmm0, %xmm2
@@ -691,7 +691,7 @@ xorpd (%rax), %xmm2
# CHECK: Resource pressure per iteration:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11]
-# CHECK-NEXT: - 40.00 106.92 103.42 58.50 58.50 7.50 71.92 1.75 7.50 7.50 7.50
+# CHECK-NEXT: - 40.00 106.92 104.42 58.50 58.50 7.50 70.92 1.75 7.50 7.50 7.50
# CHECK: Resource pressure by instruction:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] Instructions:
@@ -849,8 +849,8 @@ xorpd (%rax), %xmm2
# CHECK-NEXT: - - 0.50 0.50 - - - - - - - - pcmpgtw %xmm0, %xmm2
# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - - - pcmpgtw (%rax), %xmm2
# CHECK-NEXT: - - 1.00 0.50 - - - 0.50 - - - - pextrw $1, %xmm0, %ecx
-# CHECK-NEXT: - - - - - - - 2.00 - - - - pinsrw $1, %eax, %xmm0
-# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - pinsrw $1, (%rax), %xmm0
+# CHECK-NEXT: - - - 0.50 - - - 1.50 - - - - pinsrw $1, %eax, %xmm0
+# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - pinsrw $1, (%rax), %xmm0
# CHECK-NEXT: - - 0.50 0.50 - - - - - - - - pmaddwd %xmm0, %xmm2
# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - - - pmaddwd (%rax), %xmm2
# CHECK-NEXT: - - 0.50 0.50 - - - - - - - - pmaxsw %xmm0, %xmm2
diff --git a/llvm/test/tools/llvm-mca/X86/IceLakeServer/resources-sse41.s b/llvm/test/tools/llvm-mca/X86/IceLakeServer/resources-sse41.s
index 9748a278487704..229134cf912851 100644
--- a/llvm/test/tools/llvm-mca/X86/IceLakeServer/resources-sse41.s
+++ b/llvm/test/tools/llvm-mca/X86/IceLakeServer/resources-sse41.s
@@ -191,12 +191,12 @@ roundss $1, (%rax), %xmm2
# CHECK-NEXT: 3 2 0.50 * pextrw $1, %xmm0, (%rax)
# CHECK-NEXT: 1 4 1.00 phminposuw %xmm0, %xmm2
# CHECK-NEXT: 2 10 1.00 * phminposuw (%rax), %xmm2
-# CHECK-NEXT: 2 2 2.00 pinsrb $1, %eax, %xmm1
-# CHECK-NEXT: 2 6 1.00 * pinsrb $1, (%rax), %xmm1
-# CHECK-NEXT: 2 2 2.00 pinsrd $1, %eax, %xmm1
-# CHECK-NEXT: 2 6 1.00 * pinsrd $1, (%rax), %xmm1
-# CHECK-NEXT: 2 2 2.00 pinsrq $1, %rax, %xmm1
-# CHECK-NEXT: 2 6 1.00 * pinsrq $1, (%rax), %xmm1
+# CHECK-NEXT: 2 2 1.00 pinsrb $1, %eax, %xmm1
+# CHECK-NEXT: 2 6 0.50 * pinsrb $1, (%rax), %xmm1
+# CHECK-NEXT: 2 2 1.00 pinsrd $1, %eax, %xmm1
+# CHECK-NEXT: 2 6 0.50 * pinsrd $1, (%rax), %xmm1
+# CHECK-NEXT: 2 2 1.00 pinsrq $1, %rax, %xmm1
+# CHECK-NEXT: 2 6 0.50 * pinsrq $1, (%rax), %xmm1
# CHECK-NEXT: 1 1 0.50 pmaxsb %xmm0, %xmm2
# CHECK-NEXT: 2 7 0.50 * pmaxsb (%rax), %xmm2
# CHECK-NEXT: 1 1 0.50 pmaxsd %xmm0, %xmm2
@@ -268,7 +268,7 @@ roundss $1, (%rax), %xmm2
# CHECK: Resource pressure per iteration:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11]
-# CHECK-NEXT: - - 37.00 46.50 22.00 22.00 2.50 49.50 - 2.50 2.50 2.50
+# CHECK-NEXT: - - 37.00 49.50 22.00 22.00 2.50 46.50 - 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:
@@ -308,12 +308,12 @@ roundss $1, (%rax), %xmm2
# CHECK-NEXT: - - - 0.50 - - 0.50 0.50 - 0.50 0.50 0.50 pextrw $1, %xmm0, (%rax)
# CHECK-NEXT: - - 1.00 - - - - - - - - - phminposuw %xmm0, %xmm2
# CHECK-NEXT: - - 1.00 - 0.50 0.50 - - - - - - phminposuw (%rax), %xmm2
-# CHECK-NEXT: - - - - - - - 2.00 - - - - pinsrb $1, %eax, %xmm1
-# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - pinsrb $1, (%rax), %xmm1
-# CHECK-NEXT: - - - - - - - 2.00 - - - - pinsrd $1, %eax, %xmm1
-# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - pinsrd $1, (%rax), %xmm1
-# CHECK-NEXT: - - - - - - - 2.00 - - - - pinsrq $1, %rax, %xmm1
-# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - pinsrq $1, (%rax), %xmm1
+# CHECK-NEXT: - - - 0.50 - - - 1.50 - - - - pinsrb $1, %eax, %xmm1
+# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - pinsrb $1, (%rax), %xmm1
+# CHECK-NEXT: - - - 0.50 - - - 1.50 - - - - pinsrd $1, %eax, %xmm1
+# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - pinsrd $1, (%rax), %xmm1
+# CHECK-NEXT: - - - 0.50 - - - 1.50 - - - - pinsrq $1, %rax, %xmm1
+# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - pinsrq $1, (%rax), %xmm1
# CHECK-NEXT: - - 0.50 0.50 - - - - - - - - pmaxsb %xmm0, %xmm2
# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - - - pmaxsb (%rax), %xmm2
# CHECK-NEXT: - - 0.50 0.50 - - - - - - - - pmaxsd %xmm0, %xmm2
More information about the llvm-commits
mailing list