[llvm] e28e214 - [X86] Treat PSLLDQ/PSRLDQ as a shuffle not a shift
Simon Pilgrim via llvm-commits
llvm-commits at lists.llvm.org
Mon Oct 24 06:42:56 PDT 2022
Author: Simon Pilgrim
Date: 2022-10-24T14:42:45+01:00
New Revision: e28e214e4f225080104811aec5295fa062006515
URL: https://github.com/llvm/llvm-project/commit/e28e214e4f225080104811aec5295fa062006515
DIFF: https://github.com/llvm/llvm-project/commit/e28e214e4f225080104811aec5295fa062006515.diff
LOG: [X86] Treat PSLLDQ/PSRLDQ as a shuffle not a shift
This appears to be a copy+paste typo in the znver1/2 AMD SoG tables, treating the byte shift instructions like bit shifts
Older AMD SoG referred to PSLLDQ/PSRLDQ as shuffles, and Agner/instlatx64 both report they are integer shuffles
Added:
Modified:
llvm/lib/Target/X86/X86ScheduleZnver1.td
llvm/lib/Target/X86/X86ScheduleZnver2.td
llvm/test/tools/llvm-mca/X86/Znver1/resources-avx1.s
llvm/test/tools/llvm-mca/X86/Znver1/resources-avx2.s
llvm/test/tools/llvm-mca/X86/Znver1/resources-sse2.s
llvm/test/tools/llvm-mca/X86/Znver2/resources-avx1.s
llvm/test/tools/llvm-mca/X86/Znver2/resources-avx2.s
llvm/test/tools/llvm-mca/X86/Znver2/resources-sse2.s
Removed:
################################################################################
diff --git a/llvm/lib/Target/X86/X86ScheduleZnver1.td b/llvm/lib/Target/X86/X86ScheduleZnver1.td
index 18becc2f26414..43f93773c320a 100644
--- a/llvm/lib/Target/X86/X86ScheduleZnver1.td
+++ b/llvm/lib/Target/X86/X86ScheduleZnver1.td
@@ -1109,19 +1109,6 @@ def ZnWritePCMPGTQYm : SchedWriteRes<[ZnAGU, ZnFPU03]> {
def : InstRW<[ZnWritePCMPGTQm], (instregex "(V?)PCMPGTQrm")>;
def : InstRW<[ZnWritePCMPGTQYm], (instrs VPCMPGTQYrm)>;
-//-- Logic instructions --//
-
-// PSLL,PSRL,PSRA W/D/Q.
-// x,x / v,v,x.
-def ZnWritePShift : SchedWriteRes<[ZnFPU2]> ;
-def ZnWritePShiftY : SchedWriteRes<[ZnFPU2]> {
- let Latency = 2;
-}
-
-// PSLL,PSRL DQ.
-def : InstRW<[ZnWritePShift], (instregex "(V?)PS(R|L)LDQri")>;
-def : InstRW<[ZnWritePShiftY], (instregex "(V?)PS(R|L)LDQYri")>;
-
//=== Floating Point XMM and YMM Instructions ===//
//-- Move instructions --//
diff --git a/llvm/lib/Target/X86/X86ScheduleZnver2.td b/llvm/lib/Target/X86/X86ScheduleZnver2.td
index f44cc3aa8d9ad..b4f72a968959b 100644
--- a/llvm/lib/Target/X86/X86ScheduleZnver2.td
+++ b/llvm/lib/Target/X86/X86ScheduleZnver2.td
@@ -1127,21 +1127,6 @@ def Zn2WritePCMPGTQYm : SchedWriteRes<[Zn2AGU, Zn2FPU03]> {
def : InstRW<[Zn2WritePCMPGTQm], (instregex "(V?)PCMPGTQrm")>;
def : InstRW<[Zn2WritePCMPGTQYm], (instrs VPCMPGTQYrm)>;
-//-- Logic instructions --//
-
-// PSLL,PSRL,PSRA W/D/Q.
-// x,x / v,v,x.
-def Zn2WritePShift : SchedWriteRes<[Zn2FPU2]> {
- let Latency = 3;
-}
-def Zn2WritePShiftY : SchedWriteRes<[Zn2FPU2]> {
- let Latency = 3;
-}
-
-// PSLL,PSRL DQ.
-def : InstRW<[Zn2WritePShift], (instregex "(V?)PS(R|L)LDQri")>;
-def : InstRW<[Zn2WritePShiftY], (instregex "(V?)PS(R|L)LDQYri")>;
-
//=== Floating Point XMM and YMM Instructions ===//
//-- Move instructions --//
diff --git a/llvm/test/tools/llvm-mca/X86/Znver1/resources-avx1.s b/llvm/test/tools/llvm-mca/X86/Znver1/resources-avx1.s
index 27d18c2a7c47f..47f86d072125b 100644
--- a/llvm/test/tools/llvm-mca/X86/Znver1/resources-avx1.s
+++ b/llvm/test/tools/llvm-mca/X86/Znver1/resources-avx1.s
@@ -1565,7 +1565,7 @@ vzeroupper
# CHECK-NEXT: 1 1 1.00 vpslld $1, %xmm0, %xmm2
# CHECK-NEXT: 1 1 1.00 vpslld %xmm0, %xmm1, %xmm2
# CHECK-NEXT: 1 8 1.00 * vpslld (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 1 1.00 vpslldq $1, %xmm1, %xmm2
+# CHECK-NEXT: 1 1 0.25 vpslldq $1, %xmm1, %xmm2
# CHECK-NEXT: 1 1 1.00 vpsllq $1, %xmm0, %xmm2
# CHECK-NEXT: 1 1 1.00 vpsllq %xmm0, %xmm1, %xmm2
# CHECK-NEXT: 1 8 1.00 * vpsllq (%rax), %xmm1, %xmm2
@@ -1581,7 +1581,7 @@ vzeroupper
# CHECK-NEXT: 1 1 1.00 vpsrld $1, %xmm0, %xmm2
# CHECK-NEXT: 1 1 1.00 vpsrld %xmm0, %xmm1, %xmm2
# CHECK-NEXT: 1 8 1.00 * vpsrld (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 1 1.00 vpsrldq $1, %xmm1, %xmm2
+# CHECK-NEXT: 1 1 0.25 vpsrldq $1, %xmm1, %xmm2
# CHECK-NEXT: 1 1 1.00 vpsrlq $1, %xmm0, %xmm2
# CHECK-NEXT: 1 1 1.00 vpsrlq %xmm0, %xmm1, %xmm2
# CHECK-NEXT: 1 8 1.00 * vpsrlq (%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: 175.00 175.00 - - - - - 153.58 191.58 218.75 321.08 -
+# CHECK-NEXT: 175.00 175.00 - - - - - 154.08 192.08 217.25 321.58 -
# CHECK: Resource pressure by instruction:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] Instructions:
@@ -2277,7 +2277,7 @@ vzeroupper
# CHECK-NEXT: - - - - - - - - - 1.00 - - vpslld $1, %xmm0, %xmm2
# CHECK-NEXT: - - - - - - - - - 1.00 - - vpslld %xmm0, %xmm1, %xmm2
# CHECK-NEXT: 0.50 0.50 - - - - - - - 1.00 - - vpslld (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - - - - 1.00 - - vpslldq $1, %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - vpslldq $1, %xmm1, %xmm2
# CHECK-NEXT: - - - - - - - - - 1.00 - - vpsllq $1, %xmm0, %xmm2
# CHECK-NEXT: - - - - - - - - - 1.00 - - vpsllq %xmm0, %xmm1, %xmm2
# CHECK-NEXT: 0.50 0.50 - - - - - - - 1.00 - - vpsllq (%rax), %xmm1, %xmm2
@@ -2293,7 +2293,7 @@ vzeroupper
# CHECK-NEXT: - - - - - - - - - 1.00 - - vpsrld $1, %xmm0, %xmm2
# CHECK-NEXT: - - - - - - - - - 1.00 - - vpsrld %xmm0, %xmm1, %xmm2
# CHECK-NEXT: 0.50 0.50 - - - - - - - 1.00 - - vpsrld (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - - - - 1.00 - - vpsrldq $1, %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - vpsrldq $1, %xmm1, %xmm2
# CHECK-NEXT: - - - - - - - - - 1.00 - - vpsrlq $1, %xmm0, %xmm2
# CHECK-NEXT: - - - - - - - - - 1.00 - - vpsrlq %xmm0, %xmm1, %xmm2
# CHECK-NEXT: 0.50 0.50 - - - - - - - 1.00 - - vpsrlq (%rax), %xmm1, %xmm2
diff --git a/llvm/test/tools/llvm-mca/X86/Znver1/resources-avx2.s b/llvm/test/tools/llvm-mca/X86/Znver1/resources-avx2.s
index c77fe3cbad666..ffd0102beda84 100644
--- a/llvm/test/tools/llvm-mca/X86/Znver1/resources-avx2.s
+++ b/llvm/test/tools/llvm-mca/X86/Znver1/resources-avx2.s
@@ -684,7 +684,7 @@ vpxor (%rax), %ymm1, %ymm2
# CHECK-NEXT: 2 1 2.00 vpslld $1, %ymm0, %ymm2
# CHECK-NEXT: 2 1 2.00 vpslld %xmm0, %ymm1, %ymm2
# CHECK-NEXT: 2 8 2.00 * vpslld (%rax), %ymm1, %ymm2
-# CHECK-NEXT: 1 2 1.00 vpslldq $1, %ymm1, %ymm2
+# CHECK-NEXT: 1 1 0.25 vpslldq $1, %ymm1, %ymm2
# CHECK-NEXT: 2 1 2.00 vpsllq $1, %ymm0, %ymm2
# CHECK-NEXT: 2 1 2.00 vpsllq %xmm0, %ymm1, %ymm2
# CHECK-NEXT: 2 8 2.00 * vpsllq (%rax), %ymm1, %ymm2
@@ -712,7 +712,7 @@ vpxor (%rax), %ymm1, %ymm2
# CHECK-NEXT: 2 1 2.00 vpsrld $1, %ymm0, %ymm2
# CHECK-NEXT: 2 1 2.00 vpsrld %xmm0, %ymm1, %ymm2
# CHECK-NEXT: 2 8 2.00 * vpsrld (%rax), %ymm1, %ymm2
-# CHECK-NEXT: 1 2 1.00 vpsrldq $1, %ymm1, %ymm2
+# CHECK-NEXT: 1 1 0.25 vpsrldq $1, %ymm1, %ymm2
# CHECK-NEXT: 2 1 2.00 vpsrlq $1, %ymm0, %ymm2
# CHECK-NEXT: 2 1 2.00 vpsrlq %xmm0, %ymm1, %ymm2
# CHECK-NEXT: 2 8 2.00 * vpsrlq (%rax), %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: 67.00 67.00 - - - - - 116.67 183.17 164.50 64.67 -
+# CHECK-NEXT: 67.00 67.00 - - - - - 117.17 183.67 163.00 65.17 -
# CHECK: Resource pressure by instruction:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] Instructions:
@@ -1006,7 +1006,7 @@ vpxor (%rax), %ymm1, %ymm2
# CHECK-NEXT: - - - - - - - - - 2.00 - - vpslld $1, %ymm0, %ymm2
# CHECK-NEXT: - - - - - - - - - 2.00 - - vpslld %xmm0, %ymm1, %ymm2
# CHECK-NEXT: 0.50 0.50 - - - - - - - 2.00 - - vpslld (%rax), %ymm1, %ymm2
-# CHECK-NEXT: - - - - - - - - - 1.00 - - vpslldq $1, %ymm1, %ymm2
+# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - vpslldq $1, %ymm1, %ymm2
# CHECK-NEXT: - - - - - - - - - 2.00 - - vpsllq $1, %ymm0, %ymm2
# CHECK-NEXT: - - - - - - - - - 2.00 - - vpsllq %xmm0, %ymm1, %ymm2
# CHECK-NEXT: 0.50 0.50 - - - - - - - 2.00 - - vpsllq (%rax), %ymm1, %ymm2
@@ -1034,7 +1034,7 @@ vpxor (%rax), %ymm1, %ymm2
# CHECK-NEXT: - - - - - - - - - 2.00 - - vpsrld $1, %ymm0, %ymm2
# CHECK-NEXT: - - - - - - - - - 2.00 - - vpsrld %xmm0, %ymm1, %ymm2
# CHECK-NEXT: 0.50 0.50 - - - - - - - 2.00 - - vpsrld (%rax), %ymm1, %ymm2
-# CHECK-NEXT: - - - - - - - - - 1.00 - - vpsrldq $1, %ymm1, %ymm2
+# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - vpsrldq $1, %ymm1, %ymm2
# CHECK-NEXT: - - - - - - - - - 2.00 - - vpsrlq $1, %ymm0, %ymm2
# CHECK-NEXT: - - - - - - - - - 2.00 - - vpsrlq %xmm0, %ymm1, %ymm2
# CHECK-NEXT: 0.50 0.50 - - - - - - - 2.00 - - vpsrlq (%rax), %ymm1, %ymm2
diff --git a/llvm/test/tools/llvm-mca/X86/Znver1/resources-sse2.s b/llvm/test/tools/llvm-mca/X86/Znver1/resources-sse2.s
index 188f74653a9ef..7b2c3e12da748 100644
--- a/llvm/test/tools/llvm-mca/X86/Znver1/resources-sse2.s
+++ b/llvm/test/tools/llvm-mca/X86/Znver1/resources-sse2.s
@@ -597,7 +597,7 @@ xorpd (%rax), %xmm2
# CHECK-NEXT: 1 1 1.00 pslld $1, %xmm2
# CHECK-NEXT: 1 1 1.00 pslld %xmm0, %xmm2
# CHECK-NEXT: 1 8 1.00 * pslld (%rax), %xmm2
-# CHECK-NEXT: 1 1 1.00 pslldq $1, %xmm2
+# CHECK-NEXT: 1 1 0.25 pslldq $1, %xmm2
# CHECK-NEXT: 1 1 1.00 psllq $1, %xmm2
# CHECK-NEXT: 1 1 1.00 psllq %xmm0, %xmm2
# CHECK-NEXT: 1 8 1.00 * psllq (%rax), %xmm2
@@ -613,7 +613,7 @@ xorpd (%rax), %xmm2
# CHECK-NEXT: 1 1 1.00 psrld $1, %xmm2
# CHECK-NEXT: 1 1 1.00 psrld %xmm0, %xmm2
# CHECK-NEXT: 1 8 1.00 * psrld (%rax), %xmm2
-# CHECK-NEXT: 1 1 1.00 psrldq $1, %xmm2
+# CHECK-NEXT: 1 1 0.25 psrldq $1, %xmm2
# CHECK-NEXT: 1 1 1.00 psrlq $1, %xmm2
# CHECK-NEXT: 1 1 1.00 psrlq %xmm0, %xmm2
# CHECK-NEXT: 1 8 1.00 * psrlq (%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: 66.50 66.50 - - - - - 54.92 46.42 85.75 123.92 -
+# CHECK-NEXT: 66.50 66.50 - - - - - 55.42 46.92 84.25 124.42 -
# CHECK: Resource pressure by instruction:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] Instructions:
@@ -885,7 +885,7 @@ xorpd (%rax), %xmm2
# CHECK-NEXT: - - - - - - - - - 1.00 - - pslld $1, %xmm2
# CHECK-NEXT: - - - - - - - - - 1.00 - - pslld %xmm0, %xmm2
# CHECK-NEXT: 0.50 0.50 - - - - - - - 1.00 - - pslld (%rax), %xmm2
-# CHECK-NEXT: - - - - - - - - - 1.00 - - pslldq $1, %xmm2
+# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - pslldq $1, %xmm2
# CHECK-NEXT: - - - - - - - - - 1.00 - - psllq $1, %xmm2
# CHECK-NEXT: - - - - - - - - - 1.00 - - psllq %xmm0, %xmm2
# CHECK-NEXT: 0.50 0.50 - - - - - - - 1.00 - - psllq (%rax), %xmm2
@@ -901,7 +901,7 @@ xorpd (%rax), %xmm2
# CHECK-NEXT: - - - - - - - - - 1.00 - - psrld $1, %xmm2
# CHECK-NEXT: - - - - - - - - - 1.00 - - psrld %xmm0, %xmm2
# CHECK-NEXT: 0.50 0.50 - - - - - - - 1.00 - - psrld (%rax), %xmm2
-# CHECK-NEXT: - - - - - - - - - 1.00 - - psrldq $1, %xmm2
+# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - psrldq $1, %xmm2
# CHECK-NEXT: - - - - - - - - - 1.00 - - psrlq $1, %xmm2
# CHECK-NEXT: - - - - - - - - - 1.00 - - psrlq %xmm0, %xmm2
# CHECK-NEXT: 0.50 0.50 - - - - - - - 1.00 - - psrlq (%rax), %xmm2
diff --git a/llvm/test/tools/llvm-mca/X86/Znver2/resources-avx1.s b/llvm/test/tools/llvm-mca/X86/Znver2/resources-avx1.s
index 03401ab2f1f90..b171030c318f1 100644
--- a/llvm/test/tools/llvm-mca/X86/Znver2/resources-avx1.s
+++ b/llvm/test/tools/llvm-mca/X86/Znver2/resources-avx1.s
@@ -1565,7 +1565,7 @@ vzeroupper
# CHECK-NEXT: 1 1 1.00 vpslld $1, %xmm0, %xmm2
# CHECK-NEXT: 1 1 1.00 vpslld %xmm0, %xmm1, %xmm2
# CHECK-NEXT: 1 8 1.00 * vpslld (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 3 1.00 vpslldq $1, %xmm1, %xmm2
+# CHECK-NEXT: 1 1 0.25 vpslldq $1, %xmm1, %xmm2
# CHECK-NEXT: 1 1 1.00 vpsllq $1, %xmm0, %xmm2
# CHECK-NEXT: 1 1 1.00 vpsllq %xmm0, %xmm1, %xmm2
# CHECK-NEXT: 1 8 1.00 * vpsllq (%rax), %xmm1, %xmm2
@@ -1581,7 +1581,7 @@ vzeroupper
# CHECK-NEXT: 1 1 1.00 vpsrld $1, %xmm0, %xmm2
# CHECK-NEXT: 1 1 1.00 vpsrld %xmm0, %xmm1, %xmm2
# CHECK-NEXT: 1 8 1.00 * vpsrld (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 3 1.00 vpsrldq $1, %xmm1, %xmm2
+# CHECK-NEXT: 1 1 0.25 vpsrldq $1, %xmm1, %xmm2
# CHECK-NEXT: 1 1 1.00 vpsrlq $1, %xmm0, %xmm2
# CHECK-NEXT: 1 1 1.00 vpsrlq %xmm0, %xmm1, %xmm2
# CHECK-NEXT: 1 8 1.00 * vpsrlq (%rax), %xmm1, %xmm2
@@ -1739,7 +1739,7 @@ vzeroupper
# CHECK: Resource pressure per iteration:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12]
-# CHECK-NEXT: 117.00 117.00 117.00 0.25 0.25 0.25 0.25 - 134.92 169.92 204.75 311.42 -
+# CHECK-NEXT: 117.00 117.00 117.00 0.25 0.25 0.25 0.25 - 135.42 170.42 203.25 311.92 -
# CHECK: Resource pressure by instruction:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] Instructions:
@@ -2278,7 +2278,7 @@ vzeroupper
# CHECK-NEXT: - - - - - - - - - - 1.00 - - vpslld $1, %xmm0, %xmm2
# CHECK-NEXT: - - - - - - - - - - 1.00 - - vpslld %xmm0, %xmm1, %xmm2
# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - 1.00 - - vpslld (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - - - - - 1.00 - - vpslldq $1, %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - 0.25 0.25 0.25 0.25 - vpslldq $1, %xmm1, %xmm2
# CHECK-NEXT: - - - - - - - - - - 1.00 - - vpsllq $1, %xmm0, %xmm2
# CHECK-NEXT: - - - - - - - - - - 1.00 - - vpsllq %xmm0, %xmm1, %xmm2
# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - 1.00 - - vpsllq (%rax), %xmm1, %xmm2
@@ -2294,7 +2294,7 @@ vzeroupper
# CHECK-NEXT: - - - - - - - - - - 1.00 - - vpsrld $1, %xmm0, %xmm2
# CHECK-NEXT: - - - - - - - - - - 1.00 - - vpsrld %xmm0, %xmm1, %xmm2
# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - 1.00 - - vpsrld (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - - - - - 1.00 - - vpsrldq $1, %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - 0.25 0.25 0.25 0.25 - vpsrldq $1, %xmm1, %xmm2
# CHECK-NEXT: - - - - - - - - - - 1.00 - - vpsrlq $1, %xmm0, %xmm2
# CHECK-NEXT: - - - - - - - - - - 1.00 - - vpsrlq %xmm0, %xmm1, %xmm2
# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - 1.00 - - vpsrlq (%rax), %xmm1, %xmm2
diff --git a/llvm/test/tools/llvm-mca/X86/Znver2/resources-avx2.s b/llvm/test/tools/llvm-mca/X86/Znver2/resources-avx2.s
index 0ac2239faf0bd..93eb00e7e9b07 100644
--- a/llvm/test/tools/llvm-mca/X86/Znver2/resources-avx2.s
+++ b/llvm/test/tools/llvm-mca/X86/Znver2/resources-avx2.s
@@ -684,7 +684,7 @@ vpxor (%rax), %ymm1, %ymm2
# CHECK-NEXT: 1 1 1.00 vpslld $1, %ymm0, %ymm2
# CHECK-NEXT: 1 1 1.00 vpslld %xmm0, %ymm1, %ymm2
# CHECK-NEXT: 1 8 1.00 * vpslld (%rax), %ymm1, %ymm2
-# CHECK-NEXT: 1 3 1.00 vpslldq $1, %ymm1, %ymm2
+# CHECK-NEXT: 1 1 0.25 vpslldq $1, %ymm1, %ymm2
# CHECK-NEXT: 1 1 1.00 vpsllq $1, %ymm0, %ymm2
# CHECK-NEXT: 1 1 1.00 vpsllq %xmm0, %ymm1, %ymm2
# CHECK-NEXT: 1 8 1.00 * vpsllq (%rax), %ymm1, %ymm2
@@ -712,7 +712,7 @@ vpxor (%rax), %ymm1, %ymm2
# CHECK-NEXT: 1 1 1.00 vpsrld $1, %ymm0, %ymm2
# CHECK-NEXT: 1 1 1.00 vpsrld %xmm0, %ymm1, %ymm2
# CHECK-NEXT: 1 8 1.00 * vpsrld (%rax), %ymm1, %ymm2
-# CHECK-NEXT: 1 3 1.00 vpsrldq $1, %ymm1, %ymm2
+# CHECK-NEXT: 1 1 0.25 vpsrldq $1, %ymm1, %ymm2
# CHECK-NEXT: 1 1 1.00 vpsrlq $1, %ymm0, %ymm2
# CHECK-NEXT: 1 1 1.00 vpsrlq %xmm0, %ymm1, %ymm2
# CHECK-NEXT: 1 8 1.00 * vpsrlq (%rax), %ymm1, %ymm2
@@ -779,7 +779,7 @@ vpxor (%rax), %ymm1, %ymm2
# CHECK: Resource pressure per iteration:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12]
-# CHECK-NEXT: 44.67 44.67 44.67 - - - - - 70.17 103.17 81.00 40.67 -
+# CHECK-NEXT: 44.67 44.67 44.67 - - - - - 70.67 103.67 79.50 41.17 -
# CHECK: Resource pressure by instruction:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] Instructions:
@@ -1007,7 +1007,7 @@ vpxor (%rax), %ymm1, %ymm2
# CHECK-NEXT: - - - - - - - - - - 1.00 - - vpslld $1, %ymm0, %ymm2
# CHECK-NEXT: - - - - - - - - - - 1.00 - - vpslld %xmm0, %ymm1, %ymm2
# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - 1.00 - - vpslld (%rax), %ymm1, %ymm2
-# CHECK-NEXT: - - - - - - - - - - 1.00 - - vpslldq $1, %ymm1, %ymm2
+# CHECK-NEXT: - - - - - - - - 0.25 0.25 0.25 0.25 - vpslldq $1, %ymm1, %ymm2
# CHECK-NEXT: - - - - - - - - - - 1.00 - - vpsllq $1, %ymm0, %ymm2
# CHECK-NEXT: - - - - - - - - - - 1.00 - - vpsllq %xmm0, %ymm1, %ymm2
# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - 1.00 - - vpsllq (%rax), %ymm1, %ymm2
@@ -1035,7 +1035,7 @@ vpxor (%rax), %ymm1, %ymm2
# CHECK-NEXT: - - - - - - - - - - 1.00 - - vpsrld $1, %ymm0, %ymm2
# CHECK-NEXT: - - - - - - - - - - 1.00 - - vpsrld %xmm0, %ymm1, %ymm2
# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - 1.00 - - vpsrld (%rax), %ymm1, %ymm2
-# CHECK-NEXT: - - - - - - - - - - 1.00 - - vpsrldq $1, %ymm1, %ymm2
+# CHECK-NEXT: - - - - - - - - 0.25 0.25 0.25 0.25 - vpsrldq $1, %ymm1, %ymm2
# CHECK-NEXT: - - - - - - - - - - 1.00 - - vpsrlq $1, %ymm0, %ymm2
# CHECK-NEXT: - - - - - - - - - - 1.00 - - vpsrlq %xmm0, %ymm1, %ymm2
# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - 1.00 - - vpsrlq (%rax), %ymm1, %ymm2
diff --git a/llvm/test/tools/llvm-mca/X86/Znver2/resources-sse2.s b/llvm/test/tools/llvm-mca/X86/Znver2/resources-sse2.s
index c72bad9332025..78f32625b8cdf 100644
--- a/llvm/test/tools/llvm-mca/X86/Znver2/resources-sse2.s
+++ b/llvm/test/tools/llvm-mca/X86/Znver2/resources-sse2.s
@@ -597,7 +597,7 @@ xorpd (%rax), %xmm2
# CHECK-NEXT: 1 1 1.00 pslld $1, %xmm2
# CHECK-NEXT: 1 1 1.00 pslld %xmm0, %xmm2
# CHECK-NEXT: 1 8 1.00 * pslld (%rax), %xmm2
-# CHECK-NEXT: 1 3 1.00 pslldq $1, %xmm2
+# CHECK-NEXT: 1 1 0.25 pslldq $1, %xmm2
# CHECK-NEXT: 1 1 1.00 psllq $1, %xmm2
# CHECK-NEXT: 1 1 1.00 psllq %xmm0, %xmm2
# CHECK-NEXT: 1 8 1.00 * psllq (%rax), %xmm2
@@ -613,7 +613,7 @@ xorpd (%rax), %xmm2
# CHECK-NEXT: 1 1 1.00 psrld $1, %xmm2
# CHECK-NEXT: 1 1 1.00 psrld %xmm0, %xmm2
# CHECK-NEXT: 1 8 1.00 * psrld (%rax), %xmm2
-# CHECK-NEXT: 1 3 1.00 psrldq $1, %xmm2
+# CHECK-NEXT: 1 1 0.25 psrldq $1, %xmm2
# CHECK-NEXT: 1 1 1.00 psrlq $1, %xmm2
# CHECK-NEXT: 1 1 1.00 psrlq %xmm0, %xmm2
# CHECK-NEXT: 1 8 1.00 * psrlq (%rax), %xmm2
@@ -692,7 +692,7 @@ xorpd (%rax), %xmm2
# CHECK: Resource pressure per iteration:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12]
-# CHECK-NEXT: 44.33 44.33 44.33 - - - - - 53.92 47.92 87.25 134.92 -
+# CHECK-NEXT: 44.33 44.33 44.33 - - - - - 54.42 48.42 85.75 135.42 -
# CHECK: Resource pressure by instruction:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] Instructions:
@@ -886,7 +886,7 @@ xorpd (%rax), %xmm2
# CHECK-NEXT: - - - - - - - - - - 1.00 - - pslld $1, %xmm2
# CHECK-NEXT: - - - - - - - - - - 1.00 - - pslld %xmm0, %xmm2
# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - 1.00 - - pslld (%rax), %xmm2
-# CHECK-NEXT: - - - - - - - - - - 1.00 - - pslldq $1, %xmm2
+# CHECK-NEXT: - - - - - - - - 0.25 0.25 0.25 0.25 - pslldq $1, %xmm2
# CHECK-NEXT: - - - - - - - - - - 1.00 - - psllq $1, %xmm2
# CHECK-NEXT: - - - - - - - - - - 1.00 - - psllq %xmm0, %xmm2
# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - 1.00 - - psllq (%rax), %xmm2
@@ -902,7 +902,7 @@ xorpd (%rax), %xmm2
# CHECK-NEXT: - - - - - - - - - - 1.00 - - psrld $1, %xmm2
# CHECK-NEXT: - - - - - - - - - - 1.00 - - psrld %xmm0, %xmm2
# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - 1.00 - - psrld (%rax), %xmm2
-# CHECK-NEXT: - - - - - - - - - - 1.00 - - psrldq $1, %xmm2
+# CHECK-NEXT: - - - - - - - - 0.25 0.25 0.25 0.25 - psrldq $1, %xmm2
# CHECK-NEXT: - - - - - - - - - - 1.00 - - psrlq $1, %xmm2
# CHECK-NEXT: - - - - - - - - - - 1.00 - - psrlq %xmm0, %xmm2
# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - 1.00 - - psrlq (%rax), %xmm2
More information about the llvm-commits
mailing list