[llvm] 89365b1 - [X86] IceLakeServer - PACKS instructions take latency 3cy
Simon Pilgrim via llvm-commits
llvm-commits at lists.llvm.org
Sun Nov 20 11:29:06 PST 2022
Author: Simon Pilgrim
Date: 2022-11-20T19:28:35Z
New Revision: 89365b159eae1be50dc8ec1f29f13406effe12ec
URL: https://github.com/llvm/llvm-project/commit/89365b159eae1be50dc8ec1f29f13406effe12ec
DIFF: https://github.com/llvm/llvm-project/commit/89365b159eae1be50dc8ec1f29f13406effe12ec.diff
LOG: [X86] IceLakeServer - PACKS instructions take latency 3cy
This appears to be a slow down vs Skylake (which the model was copied off) - confirmed with uops.info / instlatx64
Noticed as D138359 was reporting that many of the PACKS overrides were redundant, but were in fact incorrect
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-avx512bw.s
llvm/test/tools/llvm-mca/X86/IceLakeServer/resources-avx512bwvl.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 8b66b0275f5b4..3638051e5f46f 100644
--- a/llvm/lib/Target/X86/X86SchedIceLake.td
+++ b/llvm/lib/Target/X86/X86SchedIceLake.td
@@ -672,7 +672,6 @@ def: InstRW<[ICXWriteResGroup3], (instregex "COM(P?)_FST0r",
"(V?)PALIGNR(Y|Z128|Z256)?rri",
"(V?)PERMIL(PD|PS)(Y|Z128|Z256)?ri",
"(V?)PERMIL(PD|PS)(Y|Z128|Z256)?rr",
- "(V?)PACK(U|S)S(DW|WB)(Y|Z|Z128|Z256)?rr",
"(V?)UNPCK(L|H)(PD|PS)(Y|Z128|Z256)?rr")>;
def ICXWriteResGroup4 : SchedWriteRes<[ICXPort6]> {
@@ -848,6 +847,7 @@ def: InstRW<[ICXWriteResGroup32], (instregex "(ADD|SUB|SUBR)_(FPrST0|FST0r|FrST0
"VALIGND(Z|Z128|Z256)rri",
"VALIGNQ(Z|Z128|Z256)rri",
"VPBROADCAST(B|W)rr",
+ "(V?)PACK(U|S)S(DW|WB)(Y|Z|Z128|Z256)?rr",
"VP(MAX|MIN)(S|U)Q(Z|Z128|Z256)rr")>;
def ICXWriteResGroup33 : SchedWriteRes<[ICXPort5]> {
@@ -1303,7 +1303,6 @@ def: InstRW<[ICXWriteResGroup92], (instregex "VMOV(SD|SS)Zrm(b?)",
"(V?)PALIGNR(Z128)?rmi",
"(V?)PERMIL(PD|PS)(Z128)?m(b?)i",
"(V?)PERMIL(PD|PS)(Z128)?rm",
- "(V?)PACK(U|S)S(DW|WB)(Z128)?rm",
"(V?)UNPCK(L|H)(PD|PS)(Z128)?rm")>;
def ICXWriteResGroup93 : SchedWriteRes<[ICXPort5,ICXPort01]> {
@@ -1542,7 +1541,6 @@ def: InstRW<[ICXWriteResGroup119], (instregex "FCOM(P?)(32|64)m",
"(V?)PALIGNR(Y|Z256)rmi",
"(V?)PERMIL(PD|PS)(Y|Z256)m(b?)i",
"(V?)PERMIL(PD|PS)(Y|Z256)rm",
- "(V?)PACK(U|S)S(DW|WB)(Y|Z|Z256)rm",
"(V?)UNPCK(L|H)(PD|PS)(Y|Z256)rm")>;
def: InstRW<[ICXWriteResGroup119], (instrs VPBROADCASTBYrm,
VPBROADCASTWYrm,
@@ -1724,6 +1722,7 @@ def: InstRW<[ICXWriteResGroup136_2], (instregex "VCMP(PD|PS)Z128rm(b?)i",
"VPCMPQZ128rmi(b?)",
"VPCMPU(B|D|Q|W)Z128rmi(b?)",
"VPCMPWZ128rmi(b?)",
+ "(V?)PACK(U|S)S(DW|WB)(Z128)?rm",
"VPTESTMBZ128rm(b?)",
"VPTESTMDZ128rm(b?)",
"VPTESTMQZ128rm(b?)",
@@ -1795,6 +1794,7 @@ def: InstRW<[ICXWriteResGroup148_2], (instregex "VCMPPD(Z|Z256)rm(b?)i",
"VPCMPU(B|D|Q|W)Z256rmi(b?)",
"VPCMPU(B|D|Q|W)Zrmi(b?)",
"VPCMPW(Z|Z256)rmi(b?)",
+ "(V?)PACK(U|S)S(DW|WB)(Y|Z|Z256)rm",
"VPTESTM(B|D|Q|W)Z256rm(b?)",
"VPTESTM(B|D|Q|W)Zrm(b?)",
"VPTESTNM(B|D|Q|W)Z256rm(b?)",
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 e0fed378fcd6e..acdf4645c1d26 100644
--- a/llvm/test/tools/llvm-mca/X86/IceLakeServer/resources-avx1.s
+++ b/llvm/test/tools/llvm-mca/X86/IceLakeServer/resources-avx1.s
@@ -1365,14 +1365,14 @@ vzeroupper
# CHECK-NEXT: 2 7 0.50 * vpabsd (%rax), %xmm2
# CHECK-NEXT: 1 1 0.50 vpabsw %xmm0, %xmm2
# CHECK-NEXT: 2 7 0.50 * vpabsw (%rax), %xmm2
-# CHECK-NEXT: 1 1 1.00 vpackssdw %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 2 7 1.00 * vpackssdw (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 1 1.00 vpacksswb %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 2 7 1.00 * vpacksswb (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 1 1.00 vpackusdw %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 2 7 1.00 * vpackusdw (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 1 1.00 vpackuswb %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 2 7 1.00 * vpackuswb (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 3 1.00 vpackssdw %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 2 10 1.00 * vpackssdw (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 3 1.00 vpacksswb %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 2 10 1.00 * vpacksswb (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 3 1.00 vpackusdw %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 2 10 1.00 * vpackusdw (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 3 1.00 vpackuswb %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 2 10 1.00 * vpackuswb (%rax), %xmm1, %xmm2
# CHECK-NEXT: 1 1 0.33 vpaddb %xmm0, %xmm1, %xmm2
# CHECK-NEXT: 2 7 0.50 * vpaddb (%rax), %xmm1, %xmm2
# CHECK-NEXT: 1 1 0.33 vpaddd %xmm0, %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 85582e7e8befa..7934b3d121dc9 100644
--- a/llvm/test/tools/llvm-mca/X86/IceLakeServer/resources-avx2.s
+++ b/llvm/test/tools/llvm-mca/X86/IceLakeServer/resources-avx2.s
@@ -484,14 +484,14 @@ vpxor (%rax), %ymm1, %ymm2
# CHECK-NEXT: 2 8 0.50 * vpabsd (%rax), %ymm2
# CHECK-NEXT: 1 1 0.50 vpabsw %ymm0, %ymm2
# CHECK-NEXT: 2 8 0.50 * vpabsw (%rax), %ymm2
-# CHECK-NEXT: 1 1 1.00 vpackssdw %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 2 8 1.00 * vpackssdw (%rax), %ymm1, %ymm2
-# CHECK-NEXT: 1 1 1.00 vpacksswb %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 2 8 1.00 * vpacksswb (%rax), %ymm1, %ymm2
-# CHECK-NEXT: 1 1 1.00 vpackusdw %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 2 8 1.00 * vpackusdw (%rax), %ymm1, %ymm2
-# CHECK-NEXT: 1 1 1.00 vpackuswb %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 2 8 1.00 * vpackuswb (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 1 3 1.00 vpackssdw %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 2 11 1.00 * vpackssdw (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 1 3 1.00 vpacksswb %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 2 11 1.00 * vpacksswb (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 1 3 1.00 vpackusdw %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 2 11 1.00 * vpackusdw (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 1 3 1.00 vpackuswb %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 2 11 1.00 * vpackuswb (%rax), %ymm1, %ymm2
# CHECK-NEXT: 1 1 0.33 vpaddb %ymm0, %ymm1, %ymm2
# CHECK-NEXT: 2 8 0.50 * vpaddb (%rax), %ymm1, %ymm2
# CHECK-NEXT: 1 1 0.33 vpaddd %ymm0, %ymm1, %ymm2
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 5fb114b0997bf..e58280aed136e 100644
--- a/llvm/test/tools/llvm-mca/X86/IceLakeServer/resources-avx512bw.s
+++ b/llvm/test/tools/llvm-mca/X86/IceLakeServer/resources-avx512bw.s
@@ -679,30 +679,30 @@ vpunpcklwd (%rax), %zmm17, %zmm19 {z}{k1}
# CHECK-NEXT: 2 8 1.00 * vpabsw (%rax), %zmm19 {%k1}
# CHECK-NEXT: 1 1 1.00 vpabsw %zmm16, %zmm19 {%k1} {z}
# CHECK-NEXT: 2 8 1.00 * vpabsw (%rax), %zmm19 {%k1} {z}
-# CHECK-NEXT: 1 1 1.00 vpackssdw %zmm16, %zmm17, %zmm19
-# CHECK-NEXT: 2 8 1.00 * vpackssdw (%rax), %zmm17, %zmm19
-# CHECK-NEXT: 1 1 1.00 vpackssdw %zmm16, %zmm17, %zmm19 {%k1}
-# CHECK-NEXT: 2 8 1.00 * vpackssdw (%rax), %zmm17, %zmm19 {%k1}
-# CHECK-NEXT: 1 1 1.00 vpackssdw %zmm16, %zmm17, %zmm19 {%k1} {z}
-# CHECK-NEXT: 2 8 1.00 * vpackssdw (%rax), %zmm17, %zmm19 {%k1} {z}
-# CHECK-NEXT: 1 1 1.00 vpacksswb %zmm16, %zmm17, %zmm19
-# CHECK-NEXT: 2 8 1.00 * vpacksswb (%rax), %zmm17, %zmm19
-# CHECK-NEXT: 1 1 1.00 vpacksswb %zmm16, %zmm17, %zmm19 {%k1}
-# CHECK-NEXT: 2 8 1.00 * vpacksswb (%rax), %zmm17, %zmm19 {%k1}
-# CHECK-NEXT: 1 1 1.00 vpacksswb %zmm16, %zmm17, %zmm19 {%k1} {z}
-# CHECK-NEXT: 2 8 1.00 * vpacksswb (%rax), %zmm17, %zmm19 {%k1} {z}
-# CHECK-NEXT: 1 1 1.00 vpackusdw %zmm16, %zmm17, %zmm19
-# CHECK-NEXT: 2 8 1.00 * vpackusdw (%rax), %zmm17, %zmm19
-# CHECK-NEXT: 1 1 1.00 vpackusdw %zmm16, %zmm17, %zmm19 {%k1}
-# CHECK-NEXT: 2 8 1.00 * vpackusdw (%rax), %zmm17, %zmm19 {%k1}
-# CHECK-NEXT: 1 1 1.00 vpackusdw %zmm16, %zmm17, %zmm19 {%k1} {z}
-# CHECK-NEXT: 2 8 1.00 * vpackusdw (%rax), %zmm17, %zmm19 {%k1} {z}
-# CHECK-NEXT: 1 1 1.00 vpackuswb %zmm16, %zmm17, %zmm19
-# CHECK-NEXT: 2 8 1.00 * vpackuswb (%rax), %zmm17, %zmm19
-# CHECK-NEXT: 1 1 1.00 vpackuswb %zmm16, %zmm17, %zmm19 {%k1}
-# CHECK-NEXT: 2 8 1.00 * vpackuswb (%rax), %zmm17, %zmm19 {%k1}
-# CHECK-NEXT: 1 1 1.00 vpackuswb %zmm16, %zmm17, %zmm19 {%k1} {z}
-# CHECK-NEXT: 2 8 1.00 * vpackuswb (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: 1 3 1.00 vpackssdw %zmm16, %zmm17, %zmm19
+# CHECK-NEXT: 2 11 1.00 * vpackssdw (%rax), %zmm17, %zmm19
+# CHECK-NEXT: 1 3 1.00 vpackssdw %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT: 2 11 1.00 * vpackssdw (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT: 1 3 1.00 vpackssdw %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: 2 11 1.00 * vpackssdw (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: 1 3 1.00 vpacksswb %zmm16, %zmm17, %zmm19
+# CHECK-NEXT: 2 11 1.00 * vpacksswb (%rax), %zmm17, %zmm19
+# CHECK-NEXT: 1 3 1.00 vpacksswb %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT: 2 11 1.00 * vpacksswb (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT: 1 3 1.00 vpacksswb %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: 2 11 1.00 * vpacksswb (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: 1 3 1.00 vpackusdw %zmm16, %zmm17, %zmm19
+# CHECK-NEXT: 2 11 1.00 * vpackusdw (%rax), %zmm17, %zmm19
+# CHECK-NEXT: 1 3 1.00 vpackusdw %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT: 2 11 1.00 * vpackusdw (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT: 1 3 1.00 vpackusdw %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: 2 11 1.00 * vpackusdw (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: 1 3 1.00 vpackuswb %zmm16, %zmm17, %zmm19
+# CHECK-NEXT: 2 11 1.00 * vpackuswb (%rax), %zmm17, %zmm19
+# CHECK-NEXT: 1 3 1.00 vpackuswb %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT: 2 11 1.00 * vpackuswb (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT: 1 3 1.00 vpackuswb %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: 2 11 1.00 * vpackuswb (%rax), %zmm17, %zmm19 {%k1} {z}
# CHECK-NEXT: 1 1 0.33 vpaddb %zmm16, %zmm17, %zmm19
# CHECK-NEXT: 2 8 0.50 * vpaddb (%rax), %zmm17, %zmm19
# CHECK-NEXT: 1 1 0.33 vpaddb %zmm16, %zmm17, %zmm19 {%k1}
diff --git a/llvm/test/tools/llvm-mca/X86/IceLakeServer/resources-avx512bwvl.s b/llvm/test/tools/llvm-mca/X86/IceLakeServer/resources-avx512bwvl.s
index ba21db227ca5d..2a1fbcd945832 100644
--- a/llvm/test/tools/llvm-mca/X86/IceLakeServer/resources-avx512bwvl.s
+++ b/llvm/test/tools/llvm-mca/X86/IceLakeServer/resources-avx512bwvl.s
@@ -1160,54 +1160,54 @@ vpunpcklwd (%rax), %ymm17, %ymm19 {z}{k1}
# CHECK-NEXT: 2 8 0.50 * vpabsw (%rax), %ymm19 {%k1}
# CHECK-NEXT: 1 1 0.50 vpabsw %ymm16, %ymm19 {%k1} {z}
# CHECK-NEXT: 2 8 0.50 * vpabsw (%rax), %ymm19 {%k1} {z}
-# CHECK-NEXT: 1 1 1.00 vpackssdw %xmm16, %xmm17, %xmm19
-# CHECK-NEXT: 2 7 1.00 * vpackssdw (%rax), %xmm17, %xmm19
-# CHECK-NEXT: 1 1 1.00 vpackssdw %xmm16, %xmm17, %xmm19 {%k1}
-# CHECK-NEXT: 2 7 1.00 * vpackssdw (%rax), %xmm17, %xmm19 {%k1}
-# CHECK-NEXT: 1 1 1.00 vpackssdw %xmm16, %xmm17, %xmm19 {%k1} {z}
-# CHECK-NEXT: 2 7 1.00 * vpackssdw (%rax), %xmm17, %xmm19 {%k1} {z}
-# CHECK-NEXT: 1 1 1.00 vpackssdw %ymm16, %ymm17, %ymm19
-# CHECK-NEXT: 2 8 1.00 * vpackssdw (%rax), %ymm17, %ymm19
-# CHECK-NEXT: 1 1 1.00 vpackssdw %ymm16, %ymm17, %ymm19 {%k1}
-# CHECK-NEXT: 2 8 1.00 * vpackssdw (%rax), %ymm17, %ymm19 {%k1}
-# CHECK-NEXT: 1 1 1.00 vpackssdw %ymm16, %ymm17, %ymm19 {%k1} {z}
-# CHECK-NEXT: 2 8 1.00 * vpackssdw (%rax), %ymm17, %ymm19 {%k1} {z}
-# CHECK-NEXT: 1 1 1.00 vpacksswb %xmm16, %xmm17, %xmm19
-# CHECK-NEXT: 2 7 1.00 * vpacksswb (%rax), %xmm17, %xmm19
-# CHECK-NEXT: 1 1 1.00 vpacksswb %xmm16, %xmm17, %xmm19 {%k1}
-# CHECK-NEXT: 2 7 1.00 * vpacksswb (%rax), %xmm17, %xmm19 {%k1}
-# CHECK-NEXT: 1 1 1.00 vpacksswb %xmm16, %xmm17, %xmm19 {%k1} {z}
-# CHECK-NEXT: 2 7 1.00 * vpacksswb (%rax), %xmm17, %xmm19 {%k1} {z}
-# CHECK-NEXT: 1 1 1.00 vpacksswb %ymm16, %ymm17, %ymm19
-# CHECK-NEXT: 2 8 1.00 * vpacksswb (%rax), %ymm17, %ymm19
-# CHECK-NEXT: 1 1 1.00 vpacksswb %ymm16, %ymm17, %ymm19 {%k1}
-# CHECK-NEXT: 2 8 1.00 * vpacksswb (%rax), %ymm17, %ymm19 {%k1}
-# CHECK-NEXT: 1 1 1.00 vpacksswb %ymm16, %ymm17, %ymm19 {%k1} {z}
-# CHECK-NEXT: 2 8 1.00 * vpacksswb (%rax), %ymm17, %ymm19 {%k1} {z}
-# CHECK-NEXT: 1 1 1.00 vpackusdw %xmm16, %xmm17, %xmm19
-# CHECK-NEXT: 2 7 1.00 * vpackusdw (%rax), %xmm17, %xmm19
-# CHECK-NEXT: 1 1 1.00 vpackusdw %xmm16, %xmm17, %xmm19 {%k1}
-# CHECK-NEXT: 2 7 1.00 * vpackusdw (%rax), %xmm17, %xmm19 {%k1}
-# CHECK-NEXT: 1 1 1.00 vpackusdw %xmm16, %xmm17, %xmm19 {%k1} {z}
-# CHECK-NEXT: 2 7 1.00 * vpackusdw (%rax), %xmm17, %xmm19 {%k1} {z}
-# CHECK-NEXT: 1 1 1.00 vpackusdw %ymm16, %ymm17, %ymm19
-# CHECK-NEXT: 2 8 1.00 * vpackusdw (%rax), %ymm17, %ymm19
-# CHECK-NEXT: 1 1 1.00 vpackusdw %ymm16, %ymm17, %ymm19 {%k1}
-# CHECK-NEXT: 2 8 1.00 * vpackusdw (%rax), %ymm17, %ymm19 {%k1}
-# CHECK-NEXT: 1 1 1.00 vpackusdw %ymm16, %ymm17, %ymm19 {%k1} {z}
-# CHECK-NEXT: 2 8 1.00 * vpackusdw (%rax), %ymm17, %ymm19 {%k1} {z}
-# CHECK-NEXT: 1 1 1.00 vpackuswb %xmm16, %xmm17, %xmm19
-# CHECK-NEXT: 2 7 1.00 * vpackuswb (%rax), %xmm17, %xmm19
-# CHECK-NEXT: 1 1 1.00 vpackuswb %xmm16, %xmm17, %xmm19 {%k1}
-# CHECK-NEXT: 2 7 1.00 * vpackuswb (%rax), %xmm17, %xmm19 {%k1}
-# CHECK-NEXT: 1 1 1.00 vpackuswb %xmm16, %xmm17, %xmm19 {%k1} {z}
-# CHECK-NEXT: 2 7 1.00 * vpackuswb (%rax), %xmm17, %xmm19 {%k1} {z}
-# CHECK-NEXT: 1 1 1.00 vpackuswb %ymm16, %ymm17, %ymm19
-# CHECK-NEXT: 2 8 1.00 * vpackuswb (%rax), %ymm17, %ymm19
-# CHECK-NEXT: 1 1 1.00 vpackuswb %ymm16, %ymm17, %ymm19 {%k1}
-# CHECK-NEXT: 2 8 1.00 * vpackuswb (%rax), %ymm17, %ymm19 {%k1}
-# CHECK-NEXT: 1 1 1.00 vpackuswb %ymm16, %ymm17, %ymm19 {%k1} {z}
-# CHECK-NEXT: 2 8 1.00 * vpackuswb (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: 1 3 1.00 vpackssdw %xmm16, %xmm17, %xmm19
+# CHECK-NEXT: 2 10 1.00 * vpackssdw (%rax), %xmm17, %xmm19
+# CHECK-NEXT: 1 3 1.00 vpackssdw %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT: 2 10 1.00 * vpackssdw (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT: 1 3 1.00 vpackssdw %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT: 2 10 1.00 * vpackssdw (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT: 1 3 1.00 vpackssdw %ymm16, %ymm17, %ymm19
+# CHECK-NEXT: 2 11 1.00 * vpackssdw (%rax), %ymm17, %ymm19
+# CHECK-NEXT: 1 3 1.00 vpackssdw %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: 2 11 1.00 * vpackssdw (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: 1 3 1.00 vpackssdw %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: 2 11 1.00 * vpackssdw (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: 1 3 1.00 vpacksswb %xmm16, %xmm17, %xmm19
+# CHECK-NEXT: 2 10 1.00 * vpacksswb (%rax), %xmm17, %xmm19
+# CHECK-NEXT: 1 3 1.00 vpacksswb %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT: 2 10 1.00 * vpacksswb (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT: 1 3 1.00 vpacksswb %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT: 2 10 1.00 * vpacksswb (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT: 1 3 1.00 vpacksswb %ymm16, %ymm17, %ymm19
+# CHECK-NEXT: 2 11 1.00 * vpacksswb (%rax), %ymm17, %ymm19
+# CHECK-NEXT: 1 3 1.00 vpacksswb %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: 2 11 1.00 * vpacksswb (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: 1 3 1.00 vpacksswb %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: 2 11 1.00 * vpacksswb (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: 1 3 1.00 vpackusdw %xmm16, %xmm17, %xmm19
+# CHECK-NEXT: 2 10 1.00 * vpackusdw (%rax), %xmm17, %xmm19
+# CHECK-NEXT: 1 3 1.00 vpackusdw %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT: 2 10 1.00 * vpackusdw (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT: 1 3 1.00 vpackusdw %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT: 2 10 1.00 * vpackusdw (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT: 1 3 1.00 vpackusdw %ymm16, %ymm17, %ymm19
+# CHECK-NEXT: 2 11 1.00 * vpackusdw (%rax), %ymm17, %ymm19
+# CHECK-NEXT: 1 3 1.00 vpackusdw %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: 2 11 1.00 * vpackusdw (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: 1 3 1.00 vpackusdw %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: 2 11 1.00 * vpackusdw (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: 1 3 1.00 vpackuswb %xmm16, %xmm17, %xmm19
+# CHECK-NEXT: 2 10 1.00 * vpackuswb (%rax), %xmm17, %xmm19
+# CHECK-NEXT: 1 3 1.00 vpackuswb %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT: 2 10 1.00 * vpackuswb (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT: 1 3 1.00 vpackuswb %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT: 2 10 1.00 * vpackuswb (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT: 1 3 1.00 vpackuswb %ymm16, %ymm17, %ymm19
+# CHECK-NEXT: 2 11 1.00 * vpackuswb (%rax), %ymm17, %ymm19
+# CHECK-NEXT: 1 3 1.00 vpackuswb %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: 2 11 1.00 * vpackuswb (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: 1 3 1.00 vpackuswb %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: 2 11 1.00 * vpackuswb (%rax), %ymm17, %ymm19 {%k1} {z}
# CHECK-NEXT: 1 1 0.33 vpaddb %xmm16, %xmm17, %xmm19
# CHECK-NEXT: 2 7 0.50 * vpaddb (%rax), %xmm17, %xmm19
# CHECK-NEXT: 1 1 0.33 vpaddb %xmm16, %xmm17, %xmm19 {%k1}
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 0205aefa062ce..9303370916983 100644
--- a/llvm/test/tools/llvm-mca/X86/IceLakeServer/resources-sse2.s
+++ b/llvm/test/tools/llvm-mca/X86/IceLakeServer/resources-sse2.s
@@ -516,12 +516,12 @@ xorpd (%rax), %xmm2
# CHECK-NEXT: 2 9 0.50 * mulsd (%rax), %xmm2
# CHECK-NEXT: 1 1 0.33 orpd %xmm0, %xmm2
# CHECK-NEXT: 2 7 0.50 * orpd (%rax), %xmm2
-# CHECK-NEXT: 1 1 1.00 packssdw %xmm0, %xmm2
-# CHECK-NEXT: 2 7 1.00 * packssdw (%rax), %xmm2
-# CHECK-NEXT: 1 1 1.00 packsswb %xmm0, %xmm2
-# CHECK-NEXT: 2 7 1.00 * packsswb (%rax), %xmm2
-# CHECK-NEXT: 1 1 1.00 packuswb %xmm0, %xmm2
-# CHECK-NEXT: 2 7 1.00 * packuswb (%rax), %xmm2
+# CHECK-NEXT: 1 3 1.00 packssdw %xmm0, %xmm2
+# CHECK-NEXT: 2 10 1.00 * packssdw (%rax), %xmm2
+# CHECK-NEXT: 1 3 1.00 packsswb %xmm0, %xmm2
+# CHECK-NEXT: 2 10 1.00 * packsswb (%rax), %xmm2
+# CHECK-NEXT: 1 3 1.00 packuswb %xmm0, %xmm2
+# CHECK-NEXT: 2 10 1.00 * packuswb (%rax), %xmm2
# CHECK-NEXT: 1 1 0.33 paddb %xmm0, %xmm2
# CHECK-NEXT: 2 7 0.50 * paddb (%rax), %xmm2
# CHECK-NEXT: 1 1 0.33 paddd %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 eca84f3dc58c7..06b44336fe9af 100644
--- a/llvm/test/tools/llvm-mca/X86/IceLakeServer/resources-sse41.s
+++ b/llvm/test/tools/llvm-mca/X86/IceLakeServer/resources-sse41.s
@@ -174,8 +174,8 @@ roundss $1, (%rax), %xmm2
# CHECK-NEXT: 1 6 0.50 * movntdqa (%rax), %xmm2
# CHECK-NEXT: 2 4 2.00 mpsadbw $1, %xmm0, %xmm2
# CHECK-NEXT: 3 10 2.00 * mpsadbw $1, (%rax), %xmm2
-# CHECK-NEXT: 1 1 1.00 packusdw %xmm0, %xmm2
-# CHECK-NEXT: 2 7 1.00 * packusdw (%rax), %xmm2
+# CHECK-NEXT: 1 3 1.00 packusdw %xmm0, %xmm2
+# CHECK-NEXT: 2 10 1.00 * packusdw (%rax), %xmm2
# CHECK-NEXT: 2 2 0.67 pblendvb %xmm0, %xmm0, %xmm2
# CHECK-NEXT: 3 8 0.67 * pblendvb %xmm0, (%rax), %xmm2
# CHECK-NEXT: 1 1 1.00 pblendw $11, %xmm0, %xmm2
More information about the llvm-commits
mailing list