From: Simon Pilgrim Date: Mon, 24 Oct 2022 13:42:40 +0000 (+0100) Subject: [X86] Treat PSLLDQ/PSRLDQ as a shuffle not a shift X-Git-Tag: upstream/17.0.6~29700 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=e28e214e4f225080104811aec5295fa062006515;p=platform%2Fupstream%2Fllvm.git [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 --- diff --git a/llvm/lib/Target/X86/X86ScheduleZnver1.td b/llvm/lib/Target/X86/X86ScheduleZnver1.td index 18becc2..43f9377 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 f44cc3a..b4f72a9 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 27d18c2..47f86d0 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 c77fe3c..ffd0102 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 188f746..7b2c3e1 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 03401ab..b171030 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 0ac2239..93eb00e 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 c72bad9..78f3262 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