diff --git a/llvm/lib/Target/X86/X86SchedBroadwell.td b/llvm/lib/Target/X86/X86SchedBroadwell.td index 61a8832000e2f..0027de851df75 100644 --- a/llvm/lib/Target/X86/X86SchedBroadwell.td +++ b/llvm/lib/Target/X86/X86SchedBroadwell.td @@ -471,9 +471,11 @@ defm : X86WriteResPairUnsupported; defm : BWWriteResPair; // Vector PHMINPOS. // Vector integer shifts. -defm : BWWriteResPair; -defm : BWWriteResPair; +defm : X86WriteRes; +defm : X86WriteRes; defm : X86WriteRes; +defm : X86WriteRes; +defm : X86WriteRes; defm : X86WriteRes; defm : X86WriteResPairUnsupported; diff --git a/llvm/lib/Target/X86/X86SchedHaswell.td b/llvm/lib/Target/X86/X86SchedHaswell.td index 8795ca95c5593..a11b470b1f518 100644 --- a/llvm/lib/Target/X86/X86SchedHaswell.td +++ b/llvm/lib/Target/X86/X86SchedHaswell.td @@ -469,10 +469,12 @@ defm : HWWriteResPair; // Unsupported = 1 defm : HWWriteResPair; // Vector integer shifts. -defm : HWWriteResPair; -defm : HWWriteResPair; +defm : X86WriteRes; +defm : X86WriteRes; defm : X86WriteRes; defm : X86WriteRes; // Unsupported = 1 +defm : X86WriteRes; +defm : X86WriteRes; defm : X86WriteRes; defm : X86WriteRes; // Unsupported = 1 diff --git a/llvm/test/tools/llvm-mca/X86/Broadwell/resources-avx1.s b/llvm/test/tools/llvm-mca/X86/Broadwell/resources-avx1.s index c33cc79bd6c18..98b8619f2e04f 100644 --- a/llvm/test/tools/llvm-mca/X86/Broadwell/resources-avx1.s +++ b/llvm/test/tools/llvm-mca/X86/Broadwell/resources-avx1.s @@ -1564,30 +1564,30 @@ vzeroupper # CHECK-NEXT: 2 6 0.50 * vpsignw (%rax), %xmm1, %xmm2 # CHECK-NEXT: 1 1 1.00 vpslld $1, %xmm0, %xmm2 # CHECK-NEXT: 2 2 1.00 vpslld %xmm0, %xmm1, %xmm2 -# CHECK-NEXT: 3 7 1.00 * vpslld (%rax), %xmm1, %xmm2 +# CHECK-NEXT: 2 7 1.00 * vpslld (%rax), %xmm1, %xmm2 # CHECK-NEXT: 1 1 1.00 vpslldq $1, %xmm1, %xmm2 # CHECK-NEXT: 1 1 1.00 vpsllq $1, %xmm0, %xmm2 # CHECK-NEXT: 2 2 1.00 vpsllq %xmm0, %xmm1, %xmm2 -# CHECK-NEXT: 3 7 1.00 * vpsllq (%rax), %xmm1, %xmm2 +# CHECK-NEXT: 2 7 1.00 * vpsllq (%rax), %xmm1, %xmm2 # CHECK-NEXT: 1 1 1.00 vpsllw $1, %xmm0, %xmm2 # CHECK-NEXT: 2 2 1.00 vpsllw %xmm0, %xmm1, %xmm2 -# CHECK-NEXT: 3 7 1.00 * vpsllw (%rax), %xmm1, %xmm2 +# CHECK-NEXT: 2 7 1.00 * vpsllw (%rax), %xmm1, %xmm2 # CHECK-NEXT: 1 1 1.00 vpsrad $1, %xmm0, %xmm2 # CHECK-NEXT: 2 2 1.00 vpsrad %xmm0, %xmm1, %xmm2 -# CHECK-NEXT: 3 7 1.00 * vpsrad (%rax), %xmm1, %xmm2 +# CHECK-NEXT: 2 7 1.00 * vpsrad (%rax), %xmm1, %xmm2 # CHECK-NEXT: 1 1 1.00 vpsraw $1, %xmm0, %xmm2 # CHECK-NEXT: 2 2 1.00 vpsraw %xmm0, %xmm1, %xmm2 -# CHECK-NEXT: 3 7 1.00 * vpsraw (%rax), %xmm1, %xmm2 +# CHECK-NEXT: 2 7 1.00 * vpsraw (%rax), %xmm1, %xmm2 # CHECK-NEXT: 1 1 1.00 vpsrld $1, %xmm0, %xmm2 # CHECK-NEXT: 2 2 1.00 vpsrld %xmm0, %xmm1, %xmm2 -# CHECK-NEXT: 3 7 1.00 * vpsrld (%rax), %xmm1, %xmm2 +# CHECK-NEXT: 2 7 1.00 * vpsrld (%rax), %xmm1, %xmm2 # CHECK-NEXT: 1 1 1.00 vpsrldq $1, %xmm1, %xmm2 # CHECK-NEXT: 1 1 1.00 vpsrlq $1, %xmm0, %xmm2 # CHECK-NEXT: 2 2 1.00 vpsrlq %xmm0, %xmm1, %xmm2 -# CHECK-NEXT: 3 7 1.00 * vpsrlq (%rax), %xmm1, %xmm2 +# CHECK-NEXT: 2 7 1.00 * vpsrlq (%rax), %xmm1, %xmm2 # CHECK-NEXT: 1 1 1.00 vpsrlw $1, %xmm0, %xmm2 # CHECK-NEXT: 2 2 1.00 vpsrlw %xmm0, %xmm1, %xmm2 -# CHECK-NEXT: 3 7 1.00 * vpsrlw (%rax), %xmm1, %xmm2 +# CHECK-NEXT: 2 7 1.00 * vpsrlw (%rax), %xmm1, %xmm2 # CHECK-NEXT: 1 1 0.50 vpsubb %xmm0, %xmm1, %xmm2 # CHECK-NEXT: 2 6 0.50 * vpsubb (%rax), %xmm1, %xmm2 # CHECK-NEXT: 1 1 0.50 vpsubd %xmm0, %xmm1, %xmm2 @@ -1736,7 +1736,7 @@ vzeroupper # CHECK: Resource pressure per iteration: # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] -# CHECK-NEXT: - 257.00 215.25 235.25 176.17 176.17 38.00 432.25 2.25 12.67 +# CHECK-NEXT: - 257.00 215.25 235.25 176.17 176.17 38.00 424.25 2.25 12.67 # CHECK: Resource pressure by instruction: # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] Instructions: @@ -2274,30 +2274,30 @@ vzeroupper # CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - vpsignw (%rax), %xmm1, %xmm2 # CHECK-NEXT: - - 1.00 - - - - - - - vpslld $1, %xmm0, %xmm2 # CHECK-NEXT: - - 1.00 - - - - 1.00 - - vpslld %xmm0, %xmm1, %xmm2 -# CHECK-NEXT: - - 1.00 - 0.50 0.50 - 1.00 - - vpslld (%rax), %xmm1, %xmm2 +# CHECK-NEXT: - - 1.00 - 0.50 0.50 - - - - vpslld (%rax), %xmm1, %xmm2 # CHECK-NEXT: - - - - - - - 1.00 - - vpslldq $1, %xmm1, %xmm2 # CHECK-NEXT: - - 1.00 - - - - - - - vpsllq $1, %xmm0, %xmm2 # CHECK-NEXT: - - 1.00 - - - - 1.00 - - vpsllq %xmm0, %xmm1, %xmm2 -# CHECK-NEXT: - - 1.00 - 0.50 0.50 - 1.00 - - vpsllq (%rax), %xmm1, %xmm2 +# CHECK-NEXT: - - 1.00 - 0.50 0.50 - - - - vpsllq (%rax), %xmm1, %xmm2 # CHECK-NEXT: - - 1.00 - - - - - - - vpsllw $1, %xmm0, %xmm2 # CHECK-NEXT: - - 1.00 - - - - 1.00 - - vpsllw %xmm0, %xmm1, %xmm2 -# CHECK-NEXT: - - 1.00 - 0.50 0.50 - 1.00 - - vpsllw (%rax), %xmm1, %xmm2 +# CHECK-NEXT: - - 1.00 - 0.50 0.50 - - - - vpsllw (%rax), %xmm1, %xmm2 # CHECK-NEXT: - - 1.00 - - - - - - - vpsrad $1, %xmm0, %xmm2 # CHECK-NEXT: - - 1.00 - - - - 1.00 - - vpsrad %xmm0, %xmm1, %xmm2 -# CHECK-NEXT: - - 1.00 - 0.50 0.50 - 1.00 - - vpsrad (%rax), %xmm1, %xmm2 +# CHECK-NEXT: - - 1.00 - 0.50 0.50 - - - - vpsrad (%rax), %xmm1, %xmm2 # CHECK-NEXT: - - 1.00 - - - - - - - vpsraw $1, %xmm0, %xmm2 # CHECK-NEXT: - - 1.00 - - - - 1.00 - - vpsraw %xmm0, %xmm1, %xmm2 -# CHECK-NEXT: - - 1.00 - 0.50 0.50 - 1.00 - - vpsraw (%rax), %xmm1, %xmm2 +# CHECK-NEXT: - - 1.00 - 0.50 0.50 - - - - vpsraw (%rax), %xmm1, %xmm2 # CHECK-NEXT: - - 1.00 - - - - - - - vpsrld $1, %xmm0, %xmm2 # CHECK-NEXT: - - 1.00 - - - - 1.00 - - vpsrld %xmm0, %xmm1, %xmm2 -# CHECK-NEXT: - - 1.00 - 0.50 0.50 - 1.00 - - vpsrld (%rax), %xmm1, %xmm2 +# CHECK-NEXT: - - 1.00 - 0.50 0.50 - - - - vpsrld (%rax), %xmm1, %xmm2 # CHECK-NEXT: - - - - - - - 1.00 - - vpsrldq $1, %xmm1, %xmm2 # CHECK-NEXT: - - 1.00 - - - - - - - vpsrlq $1, %xmm0, %xmm2 # CHECK-NEXT: - - 1.00 - - - - 1.00 - - vpsrlq %xmm0, %xmm1, %xmm2 -# CHECK-NEXT: - - 1.00 - 0.50 0.50 - 1.00 - - vpsrlq (%rax), %xmm1, %xmm2 +# CHECK-NEXT: - - 1.00 - 0.50 0.50 - - - - vpsrlq (%rax), %xmm1, %xmm2 # CHECK-NEXT: - - 1.00 - - - - - - - vpsrlw $1, %xmm0, %xmm2 # CHECK-NEXT: - - 1.00 - - - - 1.00 - - vpsrlw %xmm0, %xmm1, %xmm2 -# CHECK-NEXT: - - 1.00 - 0.50 0.50 - 1.00 - - vpsrlw (%rax), %xmm1, %xmm2 +# CHECK-NEXT: - - 1.00 - 0.50 0.50 - - - - vpsrlw (%rax), %xmm1, %xmm2 # CHECK-NEXT: - - - 0.50 - - - 0.50 - - vpsubb %xmm0, %xmm1, %xmm2 # CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - vpsubb (%rax), %xmm1, %xmm2 # CHECK-NEXT: - - - 0.50 - - - 0.50 - - vpsubd %xmm0, %xmm1, %xmm2 diff --git a/llvm/test/tools/llvm-mca/X86/Broadwell/resources-sse2.s b/llvm/test/tools/llvm-mca/X86/Broadwell/resources-sse2.s index 5bed312b0fe1d..e76d90521afa9 100644 --- a/llvm/test/tools/llvm-mca/X86/Broadwell/resources-sse2.s +++ b/llvm/test/tools/llvm-mca/X86/Broadwell/resources-sse2.s @@ -596,30 +596,30 @@ xorpd (%rax), %xmm2 # CHECK-NEXT: 2 6 1.00 * pshuflw $1, (%rax), %xmm2 # CHECK-NEXT: 1 1 1.00 pslld $1, %xmm2 # CHECK-NEXT: 2 2 1.00 pslld %xmm0, %xmm2 -# CHECK-NEXT: 3 7 1.00 * pslld (%rax), %xmm2 +# CHECK-NEXT: 2 7 1.00 * pslld (%rax), %xmm2 # CHECK-NEXT: 1 1 1.00 pslldq $1, %xmm2 # CHECK-NEXT: 1 1 1.00 psllq $1, %xmm2 # CHECK-NEXT: 2 2 1.00 psllq %xmm0, %xmm2 -# CHECK-NEXT: 3 7 1.00 * psllq (%rax), %xmm2 +# CHECK-NEXT: 2 7 1.00 * psllq (%rax), %xmm2 # CHECK-NEXT: 1 1 1.00 psllw $1, %xmm2 # CHECK-NEXT: 2 2 1.00 psllw %xmm0, %xmm2 -# CHECK-NEXT: 3 7 1.00 * psllw (%rax), %xmm2 +# CHECK-NEXT: 2 7 1.00 * psllw (%rax), %xmm2 # CHECK-NEXT: 1 1 1.00 psrad $1, %xmm2 # CHECK-NEXT: 2 2 1.00 psrad %xmm0, %xmm2 -# CHECK-NEXT: 3 7 1.00 * psrad (%rax), %xmm2 +# CHECK-NEXT: 2 7 1.00 * psrad (%rax), %xmm2 # CHECK-NEXT: 1 1 1.00 psraw $1, %xmm2 # CHECK-NEXT: 2 2 1.00 psraw %xmm0, %xmm2 -# CHECK-NEXT: 3 7 1.00 * psraw (%rax), %xmm2 +# CHECK-NEXT: 2 7 1.00 * psraw (%rax), %xmm2 # CHECK-NEXT: 1 1 1.00 psrld $1, %xmm2 # CHECK-NEXT: 2 2 1.00 psrld %xmm0, %xmm2 -# CHECK-NEXT: 3 7 1.00 * psrld (%rax), %xmm2 +# CHECK-NEXT: 2 7 1.00 * psrld (%rax), %xmm2 # CHECK-NEXT: 1 1 1.00 psrldq $1, %xmm2 # CHECK-NEXT: 1 1 1.00 psrlq $1, %xmm2 # CHECK-NEXT: 2 2 1.00 psrlq %xmm0, %xmm2 -# CHECK-NEXT: 3 7 1.00 * psrlq (%rax), %xmm2 +# CHECK-NEXT: 2 7 1.00 * psrlq (%rax), %xmm2 # CHECK-NEXT: 1 1 1.00 psrlw $1, %xmm2 # CHECK-NEXT: 2 2 1.00 psrlw %xmm0, %xmm2 -# CHECK-NEXT: 3 7 1.00 * psrlw (%rax), %xmm2 +# CHECK-NEXT: 2 7 1.00 * psrlw (%rax), %xmm2 # CHECK-NEXT: 1 1 0.50 psubb %xmm0, %xmm2 # CHECK-NEXT: 2 6 0.50 * psubb (%rax), %xmm2 # CHECK-NEXT: 1 1 0.50 psubd %xmm0, %xmm2 @@ -689,7 +689,7 @@ xorpd (%rax), %xmm2 # CHECK: Resource pressure per iteration: # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] -# CHECK-NEXT: - 78.00 70.75 95.75 63.17 63.17 14.00 127.25 2.25 4.67 +# CHECK-NEXT: - 78.00 70.75 95.75 63.17 63.17 14.00 119.25 2.25 4.67 # CHECK: Resource pressure by instruction: # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] Instructions: @@ -882,30 +882,30 @@ xorpd (%rax), %xmm2 # CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - pshuflw $1, (%rax), %xmm2 # CHECK-NEXT: - - 1.00 - - - - - - - pslld $1, %xmm2 # CHECK-NEXT: - - 1.00 - - - - 1.00 - - pslld %xmm0, %xmm2 -# CHECK-NEXT: - - 1.00 - 0.50 0.50 - 1.00 - - pslld (%rax), %xmm2 +# CHECK-NEXT: - - 1.00 - 0.50 0.50 - - - - pslld (%rax), %xmm2 # CHECK-NEXT: - - - - - - - 1.00 - - pslldq $1, %xmm2 # CHECK-NEXT: - - 1.00 - - - - - - - psllq $1, %xmm2 # CHECK-NEXT: - - 1.00 - - - - 1.00 - - psllq %xmm0, %xmm2 -# CHECK-NEXT: - - 1.00 - 0.50 0.50 - 1.00 - - psllq (%rax), %xmm2 +# CHECK-NEXT: - - 1.00 - 0.50 0.50 - - - - psllq (%rax), %xmm2 # CHECK-NEXT: - - 1.00 - - - - - - - psllw $1, %xmm2 # CHECK-NEXT: - - 1.00 - - - - 1.00 - - psllw %xmm0, %xmm2 -# CHECK-NEXT: - - 1.00 - 0.50 0.50 - 1.00 - - psllw (%rax), %xmm2 +# CHECK-NEXT: - - 1.00 - 0.50 0.50 - - - - psllw (%rax), %xmm2 # CHECK-NEXT: - - 1.00 - - - - - - - psrad $1, %xmm2 # CHECK-NEXT: - - 1.00 - - - - 1.00 - - psrad %xmm0, %xmm2 -# CHECK-NEXT: - - 1.00 - 0.50 0.50 - 1.00 - - psrad (%rax), %xmm2 +# CHECK-NEXT: - - 1.00 - 0.50 0.50 - - - - psrad (%rax), %xmm2 # CHECK-NEXT: - - 1.00 - - - - - - - psraw $1, %xmm2 # CHECK-NEXT: - - 1.00 - - - - 1.00 - - psraw %xmm0, %xmm2 -# CHECK-NEXT: - - 1.00 - 0.50 0.50 - 1.00 - - psraw (%rax), %xmm2 +# CHECK-NEXT: - - 1.00 - 0.50 0.50 - - - - psraw (%rax), %xmm2 # CHECK-NEXT: - - 1.00 - - - - - - - psrld $1, %xmm2 # CHECK-NEXT: - - 1.00 - - - - 1.00 - - psrld %xmm0, %xmm2 -# CHECK-NEXT: - - 1.00 - 0.50 0.50 - 1.00 - - psrld (%rax), %xmm2 +# CHECK-NEXT: - - 1.00 - 0.50 0.50 - - - - psrld (%rax), %xmm2 # CHECK-NEXT: - - - - - - - 1.00 - - psrldq $1, %xmm2 # CHECK-NEXT: - - 1.00 - - - - - - - psrlq $1, %xmm2 # CHECK-NEXT: - - 1.00 - - - - 1.00 - - psrlq %xmm0, %xmm2 -# CHECK-NEXT: - - 1.00 - 0.50 0.50 - 1.00 - - psrlq (%rax), %xmm2 +# CHECK-NEXT: - - 1.00 - 0.50 0.50 - - - - psrlq (%rax), %xmm2 # CHECK-NEXT: - - 1.00 - - - - - - - psrlw $1, %xmm2 # CHECK-NEXT: - - 1.00 - - - - 1.00 - - psrlw %xmm0, %xmm2 -# CHECK-NEXT: - - 1.00 - 0.50 0.50 - 1.00 - - psrlw (%rax), %xmm2 +# CHECK-NEXT: - - 1.00 - 0.50 0.50 - - - - psrlw (%rax), %xmm2 # CHECK-NEXT: - - - 0.50 - - - 0.50 - - psubb %xmm0, %xmm2 # CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - psubb (%rax), %xmm2 # CHECK-NEXT: - - - 0.50 - - - 0.50 - - psubd %xmm0, %xmm2 diff --git a/llvm/test/tools/llvm-mca/X86/Haswell/resources-avx1.s b/llvm/test/tools/llvm-mca/X86/Haswell/resources-avx1.s index 3da547de54e36..376070d7f4e0b 100644 --- a/llvm/test/tools/llvm-mca/X86/Haswell/resources-avx1.s +++ b/llvm/test/tools/llvm-mca/X86/Haswell/resources-avx1.s @@ -1564,30 +1564,30 @@ vzeroupper # CHECK-NEXT: 2 7 0.50 * vpsignw (%rax), %xmm1, %xmm2 # CHECK-NEXT: 1 1 1.00 vpslld $1, %xmm0, %xmm2 # CHECK-NEXT: 2 2 1.00 vpslld %xmm0, %xmm1, %xmm2 -# CHECK-NEXT: 3 8 1.00 * vpslld (%rax), %xmm1, %xmm2 +# CHECK-NEXT: 2 8 1.00 * vpslld (%rax), %xmm1, %xmm2 # CHECK-NEXT: 1 1 1.00 vpslldq $1, %xmm1, %xmm2 # CHECK-NEXT: 1 1 1.00 vpsllq $1, %xmm0, %xmm2 # CHECK-NEXT: 2 2 1.00 vpsllq %xmm0, %xmm1, %xmm2 -# CHECK-NEXT: 3 8 1.00 * vpsllq (%rax), %xmm1, %xmm2 +# CHECK-NEXT: 2 8 1.00 * vpsllq (%rax), %xmm1, %xmm2 # CHECK-NEXT: 1 1 1.00 vpsllw $1, %xmm0, %xmm2 # CHECK-NEXT: 2 2 1.00 vpsllw %xmm0, %xmm1, %xmm2 -# CHECK-NEXT: 3 8 1.00 * vpsllw (%rax), %xmm1, %xmm2 +# CHECK-NEXT: 2 8 1.00 * vpsllw (%rax), %xmm1, %xmm2 # CHECK-NEXT: 1 1 1.00 vpsrad $1, %xmm0, %xmm2 # CHECK-NEXT: 2 2 1.00 vpsrad %xmm0, %xmm1, %xmm2 -# CHECK-NEXT: 3 8 1.00 * vpsrad (%rax), %xmm1, %xmm2 +# CHECK-NEXT: 2 8 1.00 * vpsrad (%rax), %xmm1, %xmm2 # CHECK-NEXT: 1 1 1.00 vpsraw $1, %xmm0, %xmm2 # CHECK-NEXT: 2 2 1.00 vpsraw %xmm0, %xmm1, %xmm2 -# CHECK-NEXT: 3 8 1.00 * vpsraw (%rax), %xmm1, %xmm2 +# CHECK-NEXT: 2 8 1.00 * vpsraw (%rax), %xmm1, %xmm2 # CHECK-NEXT: 1 1 1.00 vpsrld $1, %xmm0, %xmm2 # CHECK-NEXT: 2 2 1.00 vpsrld %xmm0, %xmm1, %xmm2 -# CHECK-NEXT: 3 8 1.00 * vpsrld (%rax), %xmm1, %xmm2 +# CHECK-NEXT: 2 8 1.00 * vpsrld (%rax), %xmm1, %xmm2 # CHECK-NEXT: 1 1 1.00 vpsrldq $1, %xmm1, %xmm2 # CHECK-NEXT: 1 1 1.00 vpsrlq $1, %xmm0, %xmm2 # CHECK-NEXT: 2 2 1.00 vpsrlq %xmm0, %xmm1, %xmm2 -# CHECK-NEXT: 3 8 1.00 * vpsrlq (%rax), %xmm1, %xmm2 +# CHECK-NEXT: 2 8 1.00 * vpsrlq (%rax), %xmm1, %xmm2 # CHECK-NEXT: 1 1 1.00 vpsrlw $1, %xmm0, %xmm2 # CHECK-NEXT: 2 2 1.00 vpsrlw %xmm0, %xmm1, %xmm2 -# CHECK-NEXT: 3 8 1.00 * vpsrlw (%rax), %xmm1, %xmm2 +# CHECK-NEXT: 2 8 1.00 * vpsrlw (%rax), %xmm1, %xmm2 # CHECK-NEXT: 1 1 0.50 vpsubb %xmm0, %xmm1, %xmm2 # CHECK-NEXT: 2 7 0.50 * vpsubb (%rax), %xmm1, %xmm2 # CHECK-NEXT: 1 1 0.50 vpsubd %xmm0, %xmm1, %xmm2 @@ -1736,7 +1736,7 @@ vzeroupper # CHECK: Resource pressure per iteration: # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] -# CHECK-NEXT: - 336.00 214.58 236.58 176.17 176.17 38.00 435.58 2.25 12.67 +# CHECK-NEXT: - 336.00 214.58 236.58 176.17 176.17 38.00 427.58 2.25 12.67 # CHECK: Resource pressure by instruction: # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] Instructions: @@ -2274,30 +2274,30 @@ vzeroupper # CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - vpsignw (%rax), %xmm1, %xmm2 # CHECK-NEXT: - - 1.00 - - - - - - - vpslld $1, %xmm0, %xmm2 # CHECK-NEXT: - - 1.00 - - - - 1.00 - - vpslld %xmm0, %xmm1, %xmm2 -# CHECK-NEXT: - - 1.00 - 0.50 0.50 - 1.00 - - vpslld (%rax), %xmm1, %xmm2 +# CHECK-NEXT: - - 1.00 - 0.50 0.50 - - - - vpslld (%rax), %xmm1, %xmm2 # CHECK-NEXT: - - - - - - - 1.00 - - vpslldq $1, %xmm1, %xmm2 # CHECK-NEXT: - - 1.00 - - - - - - - vpsllq $1, %xmm0, %xmm2 # CHECK-NEXT: - - 1.00 - - - - 1.00 - - vpsllq %xmm0, %xmm1, %xmm2 -# CHECK-NEXT: - - 1.00 - 0.50 0.50 - 1.00 - - vpsllq (%rax), %xmm1, %xmm2 +# CHECK-NEXT: - - 1.00 - 0.50 0.50 - - - - vpsllq (%rax), %xmm1, %xmm2 # CHECK-NEXT: - - 1.00 - - - - - - - vpsllw $1, %xmm0, %xmm2 # CHECK-NEXT: - - 1.00 - - - - 1.00 - - vpsllw %xmm0, %xmm1, %xmm2 -# CHECK-NEXT: - - 1.00 - 0.50 0.50 - 1.00 - - vpsllw (%rax), %xmm1, %xmm2 +# CHECK-NEXT: - - 1.00 - 0.50 0.50 - - - - vpsllw (%rax), %xmm1, %xmm2 # CHECK-NEXT: - - 1.00 - - - - - - - vpsrad $1, %xmm0, %xmm2 # CHECK-NEXT: - - 1.00 - - - - 1.00 - - vpsrad %xmm0, %xmm1, %xmm2 -# CHECK-NEXT: - - 1.00 - 0.50 0.50 - 1.00 - - vpsrad (%rax), %xmm1, %xmm2 +# CHECK-NEXT: - - 1.00 - 0.50 0.50 - - - - vpsrad (%rax), %xmm1, %xmm2 # CHECK-NEXT: - - 1.00 - - - - - - - vpsraw $1, %xmm0, %xmm2 # CHECK-NEXT: - - 1.00 - - - - 1.00 - - vpsraw %xmm0, %xmm1, %xmm2 -# CHECK-NEXT: - - 1.00 - 0.50 0.50 - 1.00 - - vpsraw (%rax), %xmm1, %xmm2 +# CHECK-NEXT: - - 1.00 - 0.50 0.50 - - - - vpsraw (%rax), %xmm1, %xmm2 # CHECK-NEXT: - - 1.00 - - - - - - - vpsrld $1, %xmm0, %xmm2 # CHECK-NEXT: - - 1.00 - - - - 1.00 - - vpsrld %xmm0, %xmm1, %xmm2 -# CHECK-NEXT: - - 1.00 - 0.50 0.50 - 1.00 - - vpsrld (%rax), %xmm1, %xmm2 +# CHECK-NEXT: - - 1.00 - 0.50 0.50 - - - - vpsrld (%rax), %xmm1, %xmm2 # CHECK-NEXT: - - - - - - - 1.00 - - vpsrldq $1, %xmm1, %xmm2 # CHECK-NEXT: - - 1.00 - - - - - - - vpsrlq $1, %xmm0, %xmm2 # CHECK-NEXT: - - 1.00 - - - - 1.00 - - vpsrlq %xmm0, %xmm1, %xmm2 -# CHECK-NEXT: - - 1.00 - 0.50 0.50 - 1.00 - - vpsrlq (%rax), %xmm1, %xmm2 +# CHECK-NEXT: - - 1.00 - 0.50 0.50 - - - - vpsrlq (%rax), %xmm1, %xmm2 # CHECK-NEXT: - - 1.00 - - - - - - - vpsrlw $1, %xmm0, %xmm2 # CHECK-NEXT: - - 1.00 - - - - 1.00 - - vpsrlw %xmm0, %xmm1, %xmm2 -# CHECK-NEXT: - - 1.00 - 0.50 0.50 - 1.00 - - vpsrlw (%rax), %xmm1, %xmm2 +# CHECK-NEXT: - - 1.00 - 0.50 0.50 - - - - vpsrlw (%rax), %xmm1, %xmm2 # CHECK-NEXT: - - - 0.50 - - - 0.50 - - vpsubb %xmm0, %xmm1, %xmm2 # CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - vpsubb (%rax), %xmm1, %xmm2 # CHECK-NEXT: - - - 0.50 - - - 0.50 - - vpsubd %xmm0, %xmm1, %xmm2 diff --git a/llvm/test/tools/llvm-mca/X86/Haswell/resources-sse2.s b/llvm/test/tools/llvm-mca/X86/Haswell/resources-sse2.s index 3813ef4707a80..3b4aeb37968fd 100644 --- a/llvm/test/tools/llvm-mca/X86/Haswell/resources-sse2.s +++ b/llvm/test/tools/llvm-mca/X86/Haswell/resources-sse2.s @@ -596,30 +596,30 @@ xorpd (%rax), %xmm2 # CHECK-NEXT: 2 7 1.00 * pshuflw $1, (%rax), %xmm2 # CHECK-NEXT: 1 1 1.00 pslld $1, %xmm2 # CHECK-NEXT: 2 2 1.00 pslld %xmm0, %xmm2 -# CHECK-NEXT: 3 8 1.00 * pslld (%rax), %xmm2 +# CHECK-NEXT: 2 8 1.00 * pslld (%rax), %xmm2 # CHECK-NEXT: 1 1 1.00 pslldq $1, %xmm2 # CHECK-NEXT: 1 1 1.00 psllq $1, %xmm2 # CHECK-NEXT: 2 2 1.00 psllq %xmm0, %xmm2 -# CHECK-NEXT: 3 8 1.00 * psllq (%rax), %xmm2 +# CHECK-NEXT: 2 8 1.00 * psllq (%rax), %xmm2 # CHECK-NEXT: 1 1 1.00 psllw $1, %xmm2 # CHECK-NEXT: 2 2 1.00 psllw %xmm0, %xmm2 -# CHECK-NEXT: 3 8 1.00 * psllw (%rax), %xmm2 +# CHECK-NEXT: 2 8 1.00 * psllw (%rax), %xmm2 # CHECK-NEXT: 1 1 1.00 psrad $1, %xmm2 # CHECK-NEXT: 2 2 1.00 psrad %xmm0, %xmm2 -# CHECK-NEXT: 3 8 1.00 * psrad (%rax), %xmm2 +# CHECK-NEXT: 2 8 1.00 * psrad (%rax), %xmm2 # CHECK-NEXT: 1 1 1.00 psraw $1, %xmm2 # CHECK-NEXT: 2 2 1.00 psraw %xmm0, %xmm2 -# CHECK-NEXT: 3 8 1.00 * psraw (%rax), %xmm2 +# CHECK-NEXT: 2 8 1.00 * psraw (%rax), %xmm2 # CHECK-NEXT: 1 1 1.00 psrld $1, %xmm2 # CHECK-NEXT: 2 2 1.00 psrld %xmm0, %xmm2 -# CHECK-NEXT: 3 8 1.00 * psrld (%rax), %xmm2 +# CHECK-NEXT: 2 8 1.00 * psrld (%rax), %xmm2 # CHECK-NEXT: 1 1 1.00 psrldq $1, %xmm2 # CHECK-NEXT: 1 1 1.00 psrlq $1, %xmm2 # CHECK-NEXT: 2 2 1.00 psrlq %xmm0, %xmm2 -# CHECK-NEXT: 3 8 1.00 * psrlq (%rax), %xmm2 +# CHECK-NEXT: 2 8 1.00 * psrlq (%rax), %xmm2 # CHECK-NEXT: 1 1 1.00 psrlw $1, %xmm2 # CHECK-NEXT: 2 2 1.00 psrlw %xmm0, %xmm2 -# CHECK-NEXT: 3 8 1.00 * psrlw (%rax), %xmm2 +# CHECK-NEXT: 2 8 1.00 * psrlw (%rax), %xmm2 # CHECK-NEXT: 1 1 0.50 psubb %xmm0, %xmm2 # CHECK-NEXT: 2 7 0.50 * psubb (%rax), %xmm2 # CHECK-NEXT: 1 1 0.50 psubd %xmm0, %xmm2 @@ -689,7 +689,7 @@ xorpd (%rax), %xmm2 # CHECK: Resource pressure per iteration: # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] -# CHECK-NEXT: - 112.00 70.75 95.75 63.17 63.17 14.00 127.25 2.25 4.67 +# CHECK-NEXT: - 112.00 70.75 95.75 63.17 63.17 14.00 119.25 2.25 4.67 # CHECK: Resource pressure by instruction: # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] Instructions: @@ -882,30 +882,30 @@ xorpd (%rax), %xmm2 # CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - pshuflw $1, (%rax), %xmm2 # CHECK-NEXT: - - 1.00 - - - - - - - pslld $1, %xmm2 # CHECK-NEXT: - - 1.00 - - - - 1.00 - - pslld %xmm0, %xmm2 -# CHECK-NEXT: - - 1.00 - 0.50 0.50 - 1.00 - - pslld (%rax), %xmm2 +# CHECK-NEXT: - - 1.00 - 0.50 0.50 - - - - pslld (%rax), %xmm2 # CHECK-NEXT: - - - - - - - 1.00 - - pslldq $1, %xmm2 # CHECK-NEXT: - - 1.00 - - - - - - - psllq $1, %xmm2 # CHECK-NEXT: - - 1.00 - - - - 1.00 - - psllq %xmm0, %xmm2 -# CHECK-NEXT: - - 1.00 - 0.50 0.50 - 1.00 - - psllq (%rax), %xmm2 +# CHECK-NEXT: - - 1.00 - 0.50 0.50 - - - - psllq (%rax), %xmm2 # CHECK-NEXT: - - 1.00 - - - - - - - psllw $1, %xmm2 # CHECK-NEXT: - - 1.00 - - - - 1.00 - - psllw %xmm0, %xmm2 -# CHECK-NEXT: - - 1.00 - 0.50 0.50 - 1.00 - - psllw (%rax), %xmm2 +# CHECK-NEXT: - - 1.00 - 0.50 0.50 - - - - psllw (%rax), %xmm2 # CHECK-NEXT: - - 1.00 - - - - - - - psrad $1, %xmm2 # CHECK-NEXT: - - 1.00 - - - - 1.00 - - psrad %xmm0, %xmm2 -# CHECK-NEXT: - - 1.00 - 0.50 0.50 - 1.00 - - psrad (%rax), %xmm2 +# CHECK-NEXT: - - 1.00 - 0.50 0.50 - - - - psrad (%rax), %xmm2 # CHECK-NEXT: - - 1.00 - - - - - - - psraw $1, %xmm2 # CHECK-NEXT: - - 1.00 - - - - 1.00 - - psraw %xmm0, %xmm2 -# CHECK-NEXT: - - 1.00 - 0.50 0.50 - 1.00 - - psraw (%rax), %xmm2 +# CHECK-NEXT: - - 1.00 - 0.50 0.50 - - - - psraw (%rax), %xmm2 # CHECK-NEXT: - - 1.00 - - - - - - - psrld $1, %xmm2 # CHECK-NEXT: - - 1.00 - - - - 1.00 - - psrld %xmm0, %xmm2 -# CHECK-NEXT: - - 1.00 - 0.50 0.50 - 1.00 - - psrld (%rax), %xmm2 +# CHECK-NEXT: - - 1.00 - 0.50 0.50 - - - - psrld (%rax), %xmm2 # CHECK-NEXT: - - - - - - - 1.00 - - psrldq $1, %xmm2 # CHECK-NEXT: - - 1.00 - - - - - - - psrlq $1, %xmm2 # CHECK-NEXT: - - 1.00 - - - - 1.00 - - psrlq %xmm0, %xmm2 -# CHECK-NEXT: - - 1.00 - 0.50 0.50 - 1.00 - - psrlq (%rax), %xmm2 +# CHECK-NEXT: - - 1.00 - 0.50 0.50 - - - - psrlq (%rax), %xmm2 # CHECK-NEXT: - - 1.00 - - - - - - - psrlw $1, %xmm2 # CHECK-NEXT: - - 1.00 - - - - 1.00 - - psrlw %xmm0, %xmm2 -# CHECK-NEXT: - - 1.00 - 0.50 0.50 - 1.00 - - psrlw (%rax), %xmm2 +# CHECK-NEXT: - - 1.00 - 0.50 0.50 - - - - psrlw (%rax), %xmm2 # CHECK-NEXT: - - - 0.50 - - - 0.50 - - psubb %xmm0, %xmm2 # CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - psubb (%rax), %xmm2 # CHECK-NEXT: - - - 0.50 - - - 0.50 - - psubd %xmm0, %xmm2