[llvm] 5d7e7ab - [X86] ICX - vector XMM splat use Port 1 or 5 when boradcasting the shift amount
Simon Pilgrim via llvm-commits
llvm-commits at lists.llvm.org
Tue Mar 26 03:44:04 PDT 2024
Author: Simon Pilgrim
Date: 2024-03-26T10:07:07Z
New Revision: 5d7e7abc82ec87fe0cca3bc2afe67b70be5d0151
URL: https://github.com/llvm/llvm-project/commit/5d7e7abc82ec87fe0cca3bc2afe67b70be5d0151
DIFF: https://github.com/llvm/llvm-project/commit/5d7e7abc82ec87fe0cca3bc2afe67b70be5d0151.diff
LOG: [X86] ICX - vector XMM splat use Port 1 or 5 when boradcasting the shift amount
Noticed while trying to compare splat vs per-element shift perf stats for #39424
Confirmed with uops.info
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-avx512bwvl.s
llvm/test/tools/llvm-mca/X86/IceLakeServer/resources-sse2.s
Removed:
################################################################################
diff --git a/llvm/lib/Target/X86/X86SchedIceLake.td b/llvm/lib/Target/X86/X86SchedIceLake.td
index 3981279abc3637..2d296771b1c07d 100644
--- a/llvm/lib/Target/X86/X86SchedIceLake.td
+++ b/llvm/lib/Target/X86/X86SchedIceLake.td
@@ -413,9 +413,9 @@ defm : ICXWriteResPair<WritePHMINPOS, [ICXPort0], 4, [1], 1, 6>; // Vector PHMIN
// Vector integer shifts.
defm : ICXWriteResPair<WriteVecShift, [ICXPort0], 1, [1], 1, 5>;
-defm : X86WriteRes<WriteVecShiftX, [ICXPort5,ICXPort01], 2, [1,1], 2>;
-defm : X86WriteRes<WriteVecShiftY, [ICXPort5,ICXPort01], 4, [1,1], 2>;
-defm : X86WriteRes<WriteVecShiftZ, [ICXPort5,ICXPort0], 4, [1,1], 2>;
+defm : X86WriteRes<WriteVecShiftX, [ICXPort01,ICXPort15], 2, [1,1], 2>;
+defm : X86WriteRes<WriteVecShiftY, [ICXPort01,ICXPort5], 4, [1,1], 2>;
+defm : X86WriteRes<WriteVecShiftZ, [ICXPort0,ICXPort5], 4, [1,1], 2>;
defm : X86WriteRes<WriteVecShiftXLd, [ICXPort01,ICXPort23], 7, [1,1], 2>;
defm : X86WriteRes<WriteVecShiftYLd, [ICXPort01,ICXPort23], 8, [1,1], 2>;
defm : X86WriteRes<WriteVecShiftZLd, [ICXPort0,ICXPort23], 8, [1,1], 2>;
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 f184d5579d06e5..bd7a4894b45d6b 100644
--- a/llvm/test/tools/llvm-mca/X86/IceLakeServer/resources-avx1.s
+++ b/llvm/test/tools/llvm-mca/X86/IceLakeServer/resources-avx1.s
@@ -1563,30 +1563,30 @@ vzeroupper
# CHECK-NEXT: 1 1 0.50 vpsignw %xmm0, %xmm1, %xmm2
# CHECK-NEXT: 2 7 0.50 * vpsignw (%rax), %xmm1, %xmm2
# CHECK-NEXT: 1 1 0.50 vpslld $1, %xmm0, %xmm2
-# CHECK-NEXT: 2 2 1.00 vpslld %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 2 2 0.67 vpslld %xmm0, %xmm1, %xmm2
# CHECK-NEXT: 2 7 0.50 * vpslld (%rax), %xmm1, %xmm2
# CHECK-NEXT: 1 1 0.50 vpslldq $1, %xmm1, %xmm2
# CHECK-NEXT: 1 1 0.50 vpsllq $1, %xmm0, %xmm2
-# CHECK-NEXT: 2 2 1.00 vpsllq %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 2 2 0.67 vpsllq %xmm0, %xmm1, %xmm2
# CHECK-NEXT: 2 7 0.50 * vpsllq (%rax), %xmm1, %xmm2
# CHECK-NEXT: 1 1 0.50 vpsllw $1, %xmm0, %xmm2
-# CHECK-NEXT: 2 2 1.00 vpsllw %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 2 2 0.67 vpsllw %xmm0, %xmm1, %xmm2
# CHECK-NEXT: 2 7 0.50 * vpsllw (%rax), %xmm1, %xmm2
# CHECK-NEXT: 1 1 0.50 vpsrad $1, %xmm0, %xmm2
-# CHECK-NEXT: 2 2 1.00 vpsrad %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 2 2 0.67 vpsrad %xmm0, %xmm1, %xmm2
# CHECK-NEXT: 2 7 0.50 * vpsrad (%rax), %xmm1, %xmm2
# CHECK-NEXT: 1 1 0.50 vpsraw $1, %xmm0, %xmm2
-# CHECK-NEXT: 2 2 1.00 vpsraw %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 2 2 0.67 vpsraw %xmm0, %xmm1, %xmm2
# CHECK-NEXT: 2 7 0.50 * vpsraw (%rax), %xmm1, %xmm2
# CHECK-NEXT: 1 1 0.50 vpsrld $1, %xmm0, %xmm2
-# CHECK-NEXT: 2 2 1.00 vpsrld %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 2 2 0.67 vpsrld %xmm0, %xmm1, %xmm2
# CHECK-NEXT: 2 7 0.50 * vpsrld (%rax), %xmm1, %xmm2
# CHECK-NEXT: 1 1 0.50 vpsrldq $1, %xmm1, %xmm2
# CHECK-NEXT: 1 1 0.50 vpsrlq $1, %xmm0, %xmm2
-# CHECK-NEXT: 2 2 1.00 vpsrlq %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 2 2 0.67 vpsrlq %xmm0, %xmm1, %xmm2
# CHECK-NEXT: 2 7 0.50 * vpsrlq (%rax), %xmm1, %xmm2
# CHECK-NEXT: 1 1 0.50 vpsrlw $1, %xmm0, %xmm2
-# CHECK-NEXT: 2 2 1.00 vpsrlw %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 2 2 0.67 vpsrlw %xmm0, %xmm1, %xmm2
# CHECK-NEXT: 2 7 0.50 * vpsrlw (%rax), %xmm1, %xmm2
# CHECK-NEXT: 1 1 0.33 vpsubb %xmm0, %xmm1, %xmm2
# CHECK-NEXT: 2 7 0.50 * vpsubb (%rax), %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 233.92 160.50 160.50 19.00 295.92 6.25 19.00 19.00 19.00
+# 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: Resource pressure by instruction:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] Instructions:
@@ -2275,30 +2275,30 @@ vzeroupper
# CHECK-NEXT: - - 0.50 0.50 - - - - - - - - vpsignw %xmm0, %xmm1, %xmm2
# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - - - vpsignw (%rax), %xmm1, %xmm2
# CHECK-NEXT: - - 0.50 0.50 - - - - - - - - vpslld $1, %xmm0, %xmm2
-# CHECK-NEXT: - - 0.50 0.50 - - - 1.00 - - - - vpslld %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: - - 0.50 1.00 - - - 0.50 - - - - vpslld %xmm0, %xmm1, %xmm2
# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - - - vpslld (%rax), %xmm1, %xmm2
# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - vpslldq $1, %xmm1, %xmm2
# CHECK-NEXT: - - 0.50 0.50 - - - - - - - - vpsllq $1, %xmm0, %xmm2
-# CHECK-NEXT: - - 0.50 0.50 - - - 1.00 - - - - vpsllq %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: - - 0.50 1.00 - - - 0.50 - - - - vpsllq %xmm0, %xmm1, %xmm2
# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - - - vpsllq (%rax), %xmm1, %xmm2
# CHECK-NEXT: - - 0.50 0.50 - - - - - - - - vpsllw $1, %xmm0, %xmm2
-# CHECK-NEXT: - - 0.50 0.50 - - - 1.00 - - - - vpsllw %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: - - 0.50 1.00 - - - 0.50 - - - - vpsllw %xmm0, %xmm1, %xmm2
# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - - - vpsllw (%rax), %xmm1, %xmm2
# CHECK-NEXT: - - 0.50 0.50 - - - - - - - - vpsrad $1, %xmm0, %xmm2
-# CHECK-NEXT: - - 0.50 0.50 - - - 1.00 - - - - vpsrad %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: - - 0.50 1.00 - - - 0.50 - - - - vpsrad %xmm0, %xmm1, %xmm2
# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - - - vpsrad (%rax), %xmm1, %xmm2
# CHECK-NEXT: - - 0.50 0.50 - - - - - - - - vpsraw $1, %xmm0, %xmm2
-# CHECK-NEXT: - - 0.50 0.50 - - - 1.00 - - - - vpsraw %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: - - 0.50 1.00 - - - 0.50 - - - - vpsraw %xmm0, %xmm1, %xmm2
# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - - - vpsraw (%rax), %xmm1, %xmm2
# CHECK-NEXT: - - 0.50 0.50 - - - - - - - - vpsrld $1, %xmm0, %xmm2
-# CHECK-NEXT: - - 0.50 0.50 - - - 1.00 - - - - vpsrld %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: - - 0.50 1.00 - - - 0.50 - - - - vpsrld %xmm0, %xmm1, %xmm2
# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - - - vpsrld (%rax), %xmm1, %xmm2
# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - vpsrldq $1, %xmm1, %xmm2
# CHECK-NEXT: - - 0.50 0.50 - - - - - - - - vpsrlq $1, %xmm0, %xmm2
-# CHECK-NEXT: - - 0.50 0.50 - - - 1.00 - - - - vpsrlq %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: - - 0.50 1.00 - - - 0.50 - - - - vpsrlq %xmm0, %xmm1, %xmm2
# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - - - vpsrlq (%rax), %xmm1, %xmm2
# CHECK-NEXT: - - 0.50 0.50 - - - - - - - - vpsrlw $1, %xmm0, %xmm2
-# CHECK-NEXT: - - 0.50 0.50 - - - 1.00 - - - - vpsrlw %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: - - 0.50 1.00 - - - 0.50 - - - - vpsrlw %xmm0, %xmm1, %xmm2
# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - - - vpsrlw (%rax), %xmm1, %xmm2
# CHECK-NEXT: - - 0.33 0.33 - - - 0.33 - - - - vpsubb %xmm0, %xmm1, %xmm2
# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - - - vpsubb (%rax), %xmm1, %xmm2
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 a0715cef8b00c8..ee095f0d3bfc15 100644
--- a/llvm/test/tools/llvm-mca/X86/IceLakeServer/resources-avx512bwvl.s
+++ b/llvm/test/tools/llvm-mca/X86/IceLakeServer/resources-avx512bwvl.s
@@ -1768,11 +1768,11 @@ vpunpcklwd (%rax), %ymm17, %ymm19 {z}{k1}
# CHECK-NEXT: 2 8 0.50 * vpsllw $0, (%rax), %ymm19 {%k1}
# CHECK-NEXT: 1 1 0.50 vpsllw $0, %ymm16, %ymm19 {%k1} {z}
# CHECK-NEXT: 2 8 0.50 * vpsllw $0, (%rax), %ymm19 {%k1} {z}
-# CHECK-NEXT: 2 2 1.00 vpsllw %xmm16, %xmm17, %xmm19
+# CHECK-NEXT: 2 2 0.67 vpsllw %xmm16, %xmm17, %xmm19
# CHECK-NEXT: 2 7 0.50 * vpsllw (%rax), %xmm17, %xmm19
-# CHECK-NEXT: 2 2 1.00 vpsllw %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT: 2 2 0.67 vpsllw %xmm16, %xmm17, %xmm19 {%k1}
# CHECK-NEXT: 2 7 0.50 * vpsllw (%rax), %xmm17, %xmm19 {%k1}
-# CHECK-NEXT: 2 2 1.00 vpsllw %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT: 2 2 0.67 vpsllw %xmm16, %xmm17, %xmm19 {%k1} {z}
# CHECK-NEXT: 2 7 0.50 * vpsllw (%rax), %xmm17, %xmm19 {%k1} {z}
# CHECK-NEXT: 2 4 1.00 vpsllw %xmm16, %ymm17, %ymm19
# CHECK-NEXT: 2 8 0.50 * vpsllw (%rax), %ymm17, %ymm19
@@ -1804,11 +1804,11 @@ vpunpcklwd (%rax), %ymm17, %ymm19 {z}{k1}
# CHECK-NEXT: 2 8 0.50 * vpsraw $0, (%rax), %ymm19 {%k1}
# CHECK-NEXT: 1 1 0.50 vpsraw $0, %ymm16, %ymm19 {%k1} {z}
# CHECK-NEXT: 2 8 0.50 * vpsraw $0, (%rax), %ymm19 {%k1} {z}
-# CHECK-NEXT: 2 2 1.00 vpsraw %xmm16, %xmm17, %xmm19
+# CHECK-NEXT: 2 2 0.67 vpsraw %xmm16, %xmm17, %xmm19
# CHECK-NEXT: 2 7 0.50 * vpsraw (%rax), %xmm17, %xmm19
-# CHECK-NEXT: 2 2 1.00 vpsraw %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT: 2 2 0.67 vpsraw %xmm16, %xmm17, %xmm19 {%k1}
# CHECK-NEXT: 2 7 0.50 * vpsraw (%rax), %xmm17, %xmm19 {%k1}
-# CHECK-NEXT: 2 2 1.00 vpsraw %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT: 2 2 0.67 vpsraw %xmm16, %xmm17, %xmm19 {%k1} {z}
# CHECK-NEXT: 2 7 0.50 * vpsraw (%rax), %xmm17, %xmm19 {%k1} {z}
# CHECK-NEXT: 2 4 1.00 vpsraw %xmm16, %ymm17, %ymm19
# CHECK-NEXT: 2 8 0.50 * vpsraw (%rax), %ymm17, %ymm19
@@ -1844,11 +1844,11 @@ vpunpcklwd (%rax), %ymm17, %ymm19 {z}{k1}
# CHECK-NEXT: 2 8 0.50 * vpsrlw $0, (%rax), %ymm19 {%k1}
# CHECK-NEXT: 1 1 0.50 vpsrlw $0, %ymm16, %ymm19 {%k1} {z}
# CHECK-NEXT: 2 8 0.50 * vpsrlw $0, (%rax), %ymm19 {%k1} {z}
-# CHECK-NEXT: 2 2 1.00 vpsrlw %xmm16, %xmm17, %xmm19
+# CHECK-NEXT: 2 2 0.67 vpsrlw %xmm16, %xmm17, %xmm19
# CHECK-NEXT: 2 7 0.50 * vpsrlw (%rax), %xmm17, %xmm19
-# CHECK-NEXT: 2 2 1.00 vpsrlw %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT: 2 2 0.67 vpsrlw %xmm16, %xmm17, %xmm19 {%k1}
# CHECK-NEXT: 2 7 0.50 * vpsrlw (%rax), %xmm17, %xmm19 {%k1}
-# CHECK-NEXT: 2 2 1.00 vpsrlw %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT: 2 2 0.67 vpsrlw %xmm16, %xmm17, %xmm19 {%k1} {z}
# CHECK-NEXT: 2 7 0.50 * vpsrlw (%rax), %xmm17, %xmm19 {%k1} {z}
# CHECK-NEXT: 2 4 1.00 vpsrlw %xmm16, %ymm17, %ymm19
# CHECK-NEXT: 2 8 0.50 * vpsrlw (%rax), %ymm17, %ymm19
@@ -2025,7 +2025,7 @@ vpunpcklwd (%rax), %ymm17, %ymm19 {z}{k1}
# CHECK: Resource pressure per iteration:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11]
-# CHECK-NEXT: - - 255.33 303.33 216.00 216.00 10.00 451.33 - 10.00 10.00 10.00
+# CHECK-NEXT: - - 255.33 307.83 216.00 216.00 10.00 446.83 - 10.00 10.00 10.00
# CHECK: Resource pressure by instruction:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] Instructions:
@@ -2705,11 +2705,11 @@ vpunpcklwd (%rax), %ymm17, %ymm19 {z}{k1}
# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - - - vpsllw $0, (%rax), %ymm19 {%k1}
# CHECK-NEXT: - - 0.50 0.50 - - - - - - - - vpsllw $0, %ymm16, %ymm19 {%k1} {z}
# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - - - vpsllw $0, (%rax), %ymm19 {%k1} {z}
-# CHECK-NEXT: - - 0.50 0.50 - - - 1.00 - - - - vpsllw %xmm16, %xmm17, %xmm19
+# CHECK-NEXT: - - 0.50 1.00 - - - 0.50 - - - - vpsllw %xmm16, %xmm17, %xmm19
# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - - - vpsllw (%rax), %xmm17, %xmm19
-# CHECK-NEXT: - - 0.50 0.50 - - - 1.00 - - - - vpsllw %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT: - - 0.50 1.00 - - - 0.50 - - - - vpsllw %xmm16, %xmm17, %xmm19 {%k1}
# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - - - vpsllw (%rax), %xmm17, %xmm19 {%k1}
-# CHECK-NEXT: - - 0.50 0.50 - - - 1.00 - - - - vpsllw %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT: - - 0.50 1.00 - - - 0.50 - - - - vpsllw %xmm16, %xmm17, %xmm19 {%k1} {z}
# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - - - vpsllw (%rax), %xmm17, %xmm19 {%k1} {z}
# CHECK-NEXT: - - 0.50 0.50 - - - 1.00 - - - - vpsllw %xmm16, %ymm17, %ymm19
# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - - - vpsllw (%rax), %ymm17, %ymm19
@@ -2741,11 +2741,11 @@ vpunpcklwd (%rax), %ymm17, %ymm19 {z}{k1}
# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - - - vpsraw $0, (%rax), %ymm19 {%k1}
# CHECK-NEXT: - - 0.50 0.50 - - - - - - - - vpsraw $0, %ymm16, %ymm19 {%k1} {z}
# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - - - vpsraw $0, (%rax), %ymm19 {%k1} {z}
-# CHECK-NEXT: - - 0.50 0.50 - - - 1.00 - - - - vpsraw %xmm16, %xmm17, %xmm19
+# CHECK-NEXT: - - 0.50 1.00 - - - 0.50 - - - - vpsraw %xmm16, %xmm17, %xmm19
# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - - - vpsraw (%rax), %xmm17, %xmm19
-# CHECK-NEXT: - - 0.50 0.50 - - - 1.00 - - - - vpsraw %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT: - - 0.50 1.00 - - - 0.50 - - - - vpsraw %xmm16, %xmm17, %xmm19 {%k1}
# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - - - vpsraw (%rax), %xmm17, %xmm19 {%k1}
-# CHECK-NEXT: - - 0.50 0.50 - - - 1.00 - - - - vpsraw %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT: - - 0.50 1.00 - - - 0.50 - - - - vpsraw %xmm16, %xmm17, %xmm19 {%k1} {z}
# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - - - vpsraw (%rax), %xmm17, %xmm19 {%k1} {z}
# CHECK-NEXT: - - 0.50 0.50 - - - 1.00 - - - - vpsraw %xmm16, %ymm17, %ymm19
# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - - - vpsraw (%rax), %ymm17, %ymm19
@@ -2781,11 +2781,11 @@ vpunpcklwd (%rax), %ymm17, %ymm19 {z}{k1}
# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - - - vpsrlw $0, (%rax), %ymm19 {%k1}
# CHECK-NEXT: - - 0.50 0.50 - - - - - - - - vpsrlw $0, %ymm16, %ymm19 {%k1} {z}
# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - - - vpsrlw $0, (%rax), %ymm19 {%k1} {z}
-# CHECK-NEXT: - - 0.50 0.50 - - - 1.00 - - - - vpsrlw %xmm16, %xmm17, %xmm19
+# CHECK-NEXT: - - 0.50 1.00 - - - 0.50 - - - - vpsrlw %xmm16, %xmm17, %xmm19
# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - - - vpsrlw (%rax), %xmm17, %xmm19
-# CHECK-NEXT: - - 0.50 0.50 - - - 1.00 - - - - vpsrlw %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT: - - 0.50 1.00 - - - 0.50 - - - - vpsrlw %xmm16, %xmm17, %xmm19 {%k1}
# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - - - vpsrlw (%rax), %xmm17, %xmm19 {%k1}
-# CHECK-NEXT: - - 0.50 0.50 - - - 1.00 - - - - vpsrlw %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT: - - 0.50 1.00 - - - 0.50 - - - - vpsrlw %xmm16, %xmm17, %xmm19 {%k1} {z}
# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - - - vpsrlw (%rax), %xmm17, %xmm19 {%k1} {z}
# CHECK-NEXT: - - 0.50 0.50 - - - 1.00 - - - - vpsrlw %xmm16, %ymm17, %ymm19
# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - - - vpsrlw (%rax), %ymm17, %ymm19
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 a4a51280b8ca94..a1bf6c1e986202 100644
--- a/llvm/test/tools/llvm-mca/X86/IceLakeServer/resources-sse2.s
+++ b/llvm/test/tools/llvm-mca/X86/IceLakeServer/resources-sse2.s
@@ -595,30 +595,30 @@ xorpd (%rax), %xmm2
# CHECK-NEXT: 1 1 0.50 pshuflw $1, %xmm0, %xmm2
# CHECK-NEXT: 2 7 0.50 * pshuflw $1, (%rax), %xmm2
# CHECK-NEXT: 1 1 0.50 pslld $1, %xmm2
-# CHECK-NEXT: 2 2 1.00 pslld %xmm0, %xmm2
+# CHECK-NEXT: 2 2 0.67 pslld %xmm0, %xmm2
# CHECK-NEXT: 2 7 0.50 * pslld (%rax), %xmm2
# CHECK-NEXT: 1 1 0.50 pslldq $1, %xmm2
# CHECK-NEXT: 1 1 0.50 psllq $1, %xmm2
-# CHECK-NEXT: 2 2 1.00 psllq %xmm0, %xmm2
+# CHECK-NEXT: 2 2 0.67 psllq %xmm0, %xmm2
# CHECK-NEXT: 2 7 0.50 * psllq (%rax), %xmm2
# CHECK-NEXT: 1 1 0.50 psllw $1, %xmm2
-# CHECK-NEXT: 2 2 1.00 psllw %xmm0, %xmm2
+# CHECK-NEXT: 2 2 0.67 psllw %xmm0, %xmm2
# CHECK-NEXT: 2 7 0.50 * psllw (%rax), %xmm2
# CHECK-NEXT: 1 1 0.50 psrad $1, %xmm2
-# CHECK-NEXT: 2 2 1.00 psrad %xmm0, %xmm2
+# CHECK-NEXT: 2 2 0.67 psrad %xmm0, %xmm2
# CHECK-NEXT: 2 7 0.50 * psrad (%rax), %xmm2
# CHECK-NEXT: 1 1 0.50 psraw $1, %xmm2
-# CHECK-NEXT: 2 2 1.00 psraw %xmm0, %xmm2
+# CHECK-NEXT: 2 2 0.67 psraw %xmm0, %xmm2
# CHECK-NEXT: 2 7 0.50 * psraw (%rax), %xmm2
# CHECK-NEXT: 1 1 0.50 psrld $1, %xmm2
-# CHECK-NEXT: 2 2 1.00 psrld %xmm0, %xmm2
+# CHECK-NEXT: 2 2 0.67 psrld %xmm0, %xmm2
# CHECK-NEXT: 2 7 0.50 * psrld (%rax), %xmm2
# CHECK-NEXT: 1 1 0.50 psrldq $1, %xmm2
# CHECK-NEXT: 1 1 0.50 psrlq $1, %xmm2
-# CHECK-NEXT: 2 2 1.00 psrlq %xmm0, %xmm2
+# CHECK-NEXT: 2 2 0.67 psrlq %xmm0, %xmm2
# CHECK-NEXT: 2 7 0.50 * psrlq (%rax), %xmm2
# CHECK-NEXT: 1 1 0.50 psrlw $1, %xmm2
-# CHECK-NEXT: 2 2 1.00 psrlw %xmm0, %xmm2
+# CHECK-NEXT: 2 2 0.67 psrlw %xmm0, %xmm2
# CHECK-NEXT: 2 7 0.50 * psrlw (%rax), %xmm2
# CHECK-NEXT: 1 1 0.33 psubb %xmm0, %xmm2
# CHECK-NEXT: 2 7 0.50 * psubb (%rax), %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 98.92 58.50 58.50 7.50 76.42 1.75 8.00 8.00 7.50
+# CHECK-NEXT: - 40.00 106.92 102.92 58.50 58.50 7.50 72.42 1.75 8.00 8.00 7.50
# CHECK: Resource pressure by instruction:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] Instructions:
@@ -883,30 +883,30 @@ xorpd (%rax), %xmm2
# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - pshuflw $1, %xmm0, %xmm2
# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - pshuflw $1, (%rax), %xmm2
# CHECK-NEXT: - - 0.50 0.50 - - - - - - - - pslld $1, %xmm2
-# CHECK-NEXT: - - 0.50 0.50 - - - 1.00 - - - - pslld %xmm0, %xmm2
+# CHECK-NEXT: - - 0.50 1.00 - - - 0.50 - - - - pslld %xmm0, %xmm2
# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - - - pslld (%rax), %xmm2
# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - pslldq $1, %xmm2
# CHECK-NEXT: - - 0.50 0.50 - - - - - - - - psllq $1, %xmm2
-# CHECK-NEXT: - - 0.50 0.50 - - - 1.00 - - - - psllq %xmm0, %xmm2
+# CHECK-NEXT: - - 0.50 1.00 - - - 0.50 - - - - psllq %xmm0, %xmm2
# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - - - psllq (%rax), %xmm2
# CHECK-NEXT: - - 0.50 0.50 - - - - - - - - psllw $1, %xmm2
-# CHECK-NEXT: - - 0.50 0.50 - - - 1.00 - - - - psllw %xmm0, %xmm2
+# CHECK-NEXT: - - 0.50 1.00 - - - 0.50 - - - - psllw %xmm0, %xmm2
# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - - - psllw (%rax), %xmm2
# CHECK-NEXT: - - 0.50 0.50 - - - - - - - - psrad $1, %xmm2
-# CHECK-NEXT: - - 0.50 0.50 - - - 1.00 - - - - psrad %xmm0, %xmm2
+# CHECK-NEXT: - - 0.50 1.00 - - - 0.50 - - - - psrad %xmm0, %xmm2
# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - - - psrad (%rax), %xmm2
# CHECK-NEXT: - - 0.50 0.50 - - - - - - - - psraw $1, %xmm2
-# CHECK-NEXT: - - 0.50 0.50 - - - 1.00 - - - - psraw %xmm0, %xmm2
+# CHECK-NEXT: - - 0.50 1.00 - - - 0.50 - - - - psraw %xmm0, %xmm2
# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - - - psraw (%rax), %xmm2
# CHECK-NEXT: - - 0.50 0.50 - - - - - - - - psrld $1, %xmm2
-# CHECK-NEXT: - - 0.50 0.50 - - - 1.00 - - - - psrld %xmm0, %xmm2
+# CHECK-NEXT: - - 0.50 1.00 - - - 0.50 - - - - psrld %xmm0, %xmm2
# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - - - psrld (%rax), %xmm2
# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - psrldq $1, %xmm2
# CHECK-NEXT: - - 0.50 0.50 - - - - - - - - psrlq $1, %xmm2
-# CHECK-NEXT: - - 0.50 0.50 - - - 1.00 - - - - psrlq %xmm0, %xmm2
+# CHECK-NEXT: - - 0.50 1.00 - - - 0.50 - - - - psrlq %xmm0, %xmm2
# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - - - psrlq (%rax), %xmm2
# CHECK-NEXT: - - 0.50 0.50 - - - - - - - - psrlw $1, %xmm2
-# CHECK-NEXT: - - 0.50 0.50 - - - 1.00 - - - - psrlw %xmm0, %xmm2
+# CHECK-NEXT: - - 0.50 1.00 - - - 0.50 - - - - psrlw %xmm0, %xmm2
# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - - - psrlw (%rax), %xmm2
# CHECK-NEXT: - - 0.33 0.33 - - - 0.33 - - - - psubb %xmm0, %xmm2
# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - - - psubb (%rax), %xmm2
More information about the llvm-commits
mailing list