From: Simon Pilgrim Date: Tue, 22 Jan 2019 14:54:24 +0000 (+0000) Subject: [llvm-mca][X86] Add missing vperm2i128 tests X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=fddfd5d303ac533125665457f9a377665b5948d8;p=llvm [llvm-mca][X86] Add missing vperm2i128 tests git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@351828 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/test/tools/llvm-mca/X86/Broadwell/resources-avx2.s b/test/tools/llvm-mca/X86/Broadwell/resources-avx2.s index 7dc3b714741..6286511acd0 100644 --- a/test/tools/llvm-mca/X86/Broadwell/resources-avx2.s +++ b/test/tools/llvm-mca/X86/Broadwell/resources-avx2.s @@ -149,6 +149,9 @@ vpcmpgtq (%rax), %ymm1, %ymm2 vpcmpgtw %ymm0, %ymm1, %ymm2 vpcmpgtw (%rax), %ymm1, %ymm2 +vperm2i128 $1, %ymm0, %ymm1, %ymm2 +vperm2i128 $1, (%rax), %ymm1, %ymm2 + vpermd %ymm0, %ymm1, %ymm2 vpermd (%rax), %ymm1, %ymm2 @@ -555,6 +558,8 @@ vpxor (%rax), %ymm1, %ymm2 # CHECK-NEXT: 2 11 1.00 * vpcmpgtq (%rax), %ymm1, %ymm2 # CHECK-NEXT: 1 1 0.50 vpcmpgtw %ymm0, %ymm1, %ymm2 # CHECK-NEXT: 2 7 0.50 * vpcmpgtw (%rax), %ymm1, %ymm2 +# CHECK-NEXT: 1 3 1.00 vperm2i128 $1, %ymm0, %ymm1, %ymm2 +# CHECK-NEXT: 2 9 1.00 * vperm2i128 $1, (%rax), %ymm1, %ymm2 # CHECK-NEXT: 1 3 1.00 vpermd %ymm0, %ymm1, %ymm2 # CHECK-NEXT: 2 9 1.00 * vpermd (%rax), %ymm1, %ymm2 # CHECK-NEXT: 1 3 1.00 vpermpd $1, %ymm0, %ymm2 @@ -771,7 +776,7 @@ vpxor (%rax), %ymm1, %ymm2 # CHECK: Resource pressure per iteration: # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] -# CHECK-NEXT: - - 94.67 58.67 85.17 85.17 13.00 235.67 2.00 1.67 +# CHECK-NEXT: - - 94.67 58.67 85.67 85.67 13.00 237.67 2.00 1.67 # CHECK: Resource pressure by instruction: # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] Instructions: @@ -873,6 +878,8 @@ vpxor (%rax), %ymm1, %ymm2 # CHECK-NEXT: - - 1.00 - 0.50 0.50 - - - - vpcmpgtq (%rax), %ymm1, %ymm2 # CHECK-NEXT: - - - 0.50 - - - 0.50 - - vpcmpgtw %ymm0, %ymm1, %ymm2 # CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - vpcmpgtw (%rax), %ymm1, %ymm2 +# CHECK-NEXT: - - - - - - - 1.00 - - vperm2i128 $1, %ymm0, %ymm1, %ymm2 +# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vperm2i128 $1, (%rax), %ymm1, %ymm2 # CHECK-NEXT: - - - - - - - 1.00 - - vpermd %ymm0, %ymm1, %ymm2 # CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpermd (%rax), %ymm1, %ymm2 # CHECK-NEXT: - - - - - - - 1.00 - - vpermpd $1, %ymm0, %ymm2 diff --git a/test/tools/llvm-mca/X86/Generic/resources-avx2.s b/test/tools/llvm-mca/X86/Generic/resources-avx2.s index f01f9290913..301292d3f2f 100644 --- a/test/tools/llvm-mca/X86/Generic/resources-avx2.s +++ b/test/tools/llvm-mca/X86/Generic/resources-avx2.s @@ -149,6 +149,9 @@ vpcmpgtq (%rax), %ymm1, %ymm2 vpcmpgtw %ymm0, %ymm1, %ymm2 vpcmpgtw (%rax), %ymm1, %ymm2 +vperm2i128 $1, %ymm0, %ymm1, %ymm2 +vperm2i128 $1, (%rax), %ymm1, %ymm2 + vpermd %ymm0, %ymm1, %ymm2 vpermd (%rax), %ymm1, %ymm2 @@ -555,6 +558,8 @@ vpxor (%rax), %ymm1, %ymm2 # CHECK-NEXT: 2 8 0.50 * vpcmpgtq (%rax), %ymm1, %ymm2 # CHECK-NEXT: 1 1 0.50 vpcmpgtw %ymm0, %ymm1, %ymm2 # CHECK-NEXT: 2 8 0.50 * vpcmpgtw (%rax), %ymm1, %ymm2 +# CHECK-NEXT: 1 1 1.00 vperm2i128 $1, %ymm0, %ymm1, %ymm2 +# CHECK-NEXT: 2 8 1.00 * vperm2i128 $1, (%rax), %ymm1, %ymm2 # CHECK-NEXT: 1 1 1.00 vpermd %ymm0, %ymm1, %ymm2 # CHECK-NEXT: 2 8 1.00 * vpermd (%rax), %ymm1, %ymm2 # CHECK-NEXT: 1 1 1.00 vpermpd $1, %ymm0, %ymm2 @@ -769,7 +774,7 @@ vpxor (%rax), %ymm1, %ymm2 # CHECK: Resource pressure per iteration: # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6.0] [6.1] -# CHECK-NEXT: - - 75.67 88.67 5.00 166.67 78.00 78.00 +# CHECK-NEXT: - - 75.67 88.67 5.00 168.67 78.50 78.50 # CHECK: Resource pressure by instruction: # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6.0] [6.1] Instructions: @@ -871,6 +876,8 @@ vpxor (%rax), %ymm1, %ymm2 # CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpcmpgtq (%rax), %ymm1, %ymm2 # CHECK-NEXT: - - - 0.50 - 0.50 - - vpcmpgtw %ymm0, %ymm1, %ymm2 # CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpcmpgtw (%rax), %ymm1, %ymm2 +# CHECK-NEXT: - - - - - 1.00 - - vperm2i128 $1, %ymm0, %ymm1, %ymm2 +# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vperm2i128 $1, (%rax), %ymm1, %ymm2 # CHECK-NEXT: - - - - - 1.00 - - vpermd %ymm0, %ymm1, %ymm2 # CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpermd (%rax), %ymm1, %ymm2 # CHECK-NEXT: - - - - - 1.00 - - vpermpd $1, %ymm0, %ymm2 diff --git a/test/tools/llvm-mca/X86/Haswell/resources-avx2.s b/test/tools/llvm-mca/X86/Haswell/resources-avx2.s index 7f76dba9320..b7223d31c87 100644 --- a/test/tools/llvm-mca/X86/Haswell/resources-avx2.s +++ b/test/tools/llvm-mca/X86/Haswell/resources-avx2.s @@ -149,6 +149,9 @@ vpcmpgtq (%rax), %ymm1, %ymm2 vpcmpgtw %ymm0, %ymm1, %ymm2 vpcmpgtw (%rax), %ymm1, %ymm2 +vperm2i128 $1, %ymm0, %ymm1, %ymm2 +vperm2i128 $1, (%rax), %ymm1, %ymm2 + vpermd %ymm0, %ymm1, %ymm2 vpermd (%rax), %ymm1, %ymm2 @@ -555,6 +558,8 @@ vpxor (%rax), %ymm1, %ymm2 # CHECK-NEXT: 2 12 1.00 * vpcmpgtq (%rax), %ymm1, %ymm2 # CHECK-NEXT: 1 1 0.50 vpcmpgtw %ymm0, %ymm1, %ymm2 # CHECK-NEXT: 2 8 0.50 * vpcmpgtw (%rax), %ymm1, %ymm2 +# CHECK-NEXT: 1 3 1.00 vperm2i128 $1, %ymm0, %ymm1, %ymm2 +# CHECK-NEXT: 2 10 1.00 * vperm2i128 $1, (%rax), %ymm1, %ymm2 # CHECK-NEXT: 1 3 1.00 vpermd %ymm0, %ymm1, %ymm2 # CHECK-NEXT: 2 10 1.00 * vpermd (%rax), %ymm1, %ymm2 # CHECK-NEXT: 1 3 1.00 vpermpd $1, %ymm0, %ymm2 @@ -771,7 +776,7 @@ vpxor (%rax), %ymm1, %ymm2 # CHECK: Resource pressure per iteration: # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] -# CHECK-NEXT: - - 202.67 89.67 97.17 97.17 5.00 280.67 28.00 1.67 +# CHECK-NEXT: - - 202.67 89.67 97.67 97.67 5.00 282.67 28.00 1.67 # CHECK: Resource pressure by instruction: # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] Instructions: @@ -873,6 +878,8 @@ vpxor (%rax), %ymm1, %ymm2 # CHECK-NEXT: - - 1.00 - 0.50 0.50 - - - - vpcmpgtq (%rax), %ymm1, %ymm2 # CHECK-NEXT: - - - 0.50 - - - 0.50 - - vpcmpgtw %ymm0, %ymm1, %ymm2 # CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - vpcmpgtw (%rax), %ymm1, %ymm2 +# CHECK-NEXT: - - - - - - - 1.00 - - vperm2i128 $1, %ymm0, %ymm1, %ymm2 +# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vperm2i128 $1, (%rax), %ymm1, %ymm2 # CHECK-NEXT: - - - - - - - 1.00 - - vpermd %ymm0, %ymm1, %ymm2 # CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpermd (%rax), %ymm1, %ymm2 # CHECK-NEXT: - - - - - - - 1.00 - - vpermpd $1, %ymm0, %ymm2 diff --git a/test/tools/llvm-mca/X86/SkylakeClient/resources-avx2.s b/test/tools/llvm-mca/X86/SkylakeClient/resources-avx2.s index 6804bcc13e4..26b5ef97dc0 100644 --- a/test/tools/llvm-mca/X86/SkylakeClient/resources-avx2.s +++ b/test/tools/llvm-mca/X86/SkylakeClient/resources-avx2.s @@ -149,6 +149,9 @@ vpcmpgtq (%rax), %ymm1, %ymm2 vpcmpgtw %ymm0, %ymm1, %ymm2 vpcmpgtw (%rax), %ymm1, %ymm2 +vperm2i128 $1, %ymm0, %ymm1, %ymm2 +vperm2i128 $1, (%rax), %ymm1, %ymm2 + vpermd %ymm0, %ymm1, %ymm2 vpermd (%rax), %ymm1, %ymm2 @@ -555,6 +558,8 @@ vpxor (%rax), %ymm1, %ymm2 # CHECK-NEXT: 2 10 1.00 * vpcmpgtq (%rax), %ymm1, %ymm2 # CHECK-NEXT: 1 1 0.50 vpcmpgtw %ymm0, %ymm1, %ymm2 # CHECK-NEXT: 2 8 0.50 * vpcmpgtw (%rax), %ymm1, %ymm2 +# CHECK-NEXT: 1 3 1.00 vperm2i128 $1, %ymm0, %ymm1, %ymm2 +# CHECK-NEXT: 2 10 1.00 * vperm2i128 $1, (%rax), %ymm1, %ymm2 # CHECK-NEXT: 1 3 1.00 vpermd %ymm0, %ymm1, %ymm2 # CHECK-NEXT: 2 10 1.00 * vpermd (%rax), %ymm1, %ymm2 # CHECK-NEXT: 1 3 1.00 vpermpd $1, %ymm0, %ymm2 @@ -771,7 +776,7 @@ vpxor (%rax), %ymm1, %ymm2 # CHECK: Resource pressure per iteration: # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] -# CHECK-NEXT: - - 110.33 89.33 85.17 85.17 1.00 162.33 - 1.67 +# CHECK-NEXT: - - 110.33 89.33 85.67 85.67 1.00 164.33 - 1.67 # CHECK: Resource pressure by instruction: # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] Instructions: @@ -873,6 +878,8 @@ vpxor (%rax), %ymm1, %ymm2 # CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpcmpgtq (%rax), %ymm1, %ymm2 # CHECK-NEXT: - - 0.50 0.50 - - - - - - vpcmpgtw %ymm0, %ymm1, %ymm2 # CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - vpcmpgtw (%rax), %ymm1, %ymm2 +# CHECK-NEXT: - - - - - - - 1.00 - - vperm2i128 $1, %ymm0, %ymm1, %ymm2 +# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vperm2i128 $1, (%rax), %ymm1, %ymm2 # CHECK-NEXT: - - - - - - - 1.00 - - vpermd %ymm0, %ymm1, %ymm2 # CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpermd (%rax), %ymm1, %ymm2 # CHECK-NEXT: - - - - - - - 1.00 - - vpermpd $1, %ymm0, %ymm2 diff --git a/test/tools/llvm-mca/X86/SkylakeServer/resources-avx2.s b/test/tools/llvm-mca/X86/SkylakeServer/resources-avx2.s index 7842bcac9db..823ed8e7e09 100644 --- a/test/tools/llvm-mca/X86/SkylakeServer/resources-avx2.s +++ b/test/tools/llvm-mca/X86/SkylakeServer/resources-avx2.s @@ -149,6 +149,9 @@ vpcmpgtq (%rax), %ymm1, %ymm2 vpcmpgtw %ymm0, %ymm1, %ymm2 vpcmpgtw (%rax), %ymm1, %ymm2 +vperm2i128 $1, %ymm0, %ymm1, %ymm2 +vperm2i128 $1, (%rax), %ymm1, %ymm2 + vpermd %ymm0, %ymm1, %ymm2 vpermd (%rax), %ymm1, %ymm2 @@ -555,6 +558,8 @@ vpxor (%rax), %ymm1, %ymm2 # CHECK-NEXT: 2 10 1.00 * vpcmpgtq (%rax), %ymm1, %ymm2 # CHECK-NEXT: 1 1 0.50 vpcmpgtw %ymm0, %ymm1, %ymm2 # CHECK-NEXT: 2 8 0.50 * vpcmpgtw (%rax), %ymm1, %ymm2 +# CHECK-NEXT: 1 3 1.00 vperm2i128 $1, %ymm0, %ymm1, %ymm2 +# CHECK-NEXT: 2 10 1.00 * vperm2i128 $1, (%rax), %ymm1, %ymm2 # CHECK-NEXT: 1 3 1.00 vpermd %ymm0, %ymm1, %ymm2 # CHECK-NEXT: 2 10 1.00 * vpermd (%rax), %ymm1, %ymm2 # CHECK-NEXT: 1 3 1.00 vpermpd $1, %ymm0, %ymm2 @@ -771,7 +776,7 @@ vpxor (%rax), %ymm1, %ymm2 # CHECK: Resource pressure per iteration: # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] -# CHECK-NEXT: - - 110.33 89.33 85.17 85.17 1.00 162.33 - 1.67 +# CHECK-NEXT: - - 110.33 89.33 85.67 85.67 1.00 164.33 - 1.67 # CHECK: Resource pressure by instruction: # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] Instructions: @@ -873,6 +878,8 @@ vpxor (%rax), %ymm1, %ymm2 # CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpcmpgtq (%rax), %ymm1, %ymm2 # CHECK-NEXT: - - 0.50 0.50 - - - - - - vpcmpgtw %ymm0, %ymm1, %ymm2 # CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - vpcmpgtw (%rax), %ymm1, %ymm2 +# CHECK-NEXT: - - - - - - - 1.00 - - vperm2i128 $1, %ymm0, %ymm1, %ymm2 +# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vperm2i128 $1, (%rax), %ymm1, %ymm2 # CHECK-NEXT: - - - - - - - 1.00 - - vpermd %ymm0, %ymm1, %ymm2 # CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpermd (%rax), %ymm1, %ymm2 # CHECK-NEXT: - - - - - - - 1.00 - - vpermpd $1, %ymm0, %ymm2 diff --git a/test/tools/llvm-mca/X86/Znver1/resources-avx2.s b/test/tools/llvm-mca/X86/Znver1/resources-avx2.s index 230244b2a52..79eb2a44fcf 100644 --- a/test/tools/llvm-mca/X86/Znver1/resources-avx2.s +++ b/test/tools/llvm-mca/X86/Znver1/resources-avx2.s @@ -149,6 +149,9 @@ vpcmpgtq (%rax), %ymm1, %ymm2 vpcmpgtw %ymm0, %ymm1, %ymm2 vpcmpgtw (%rax), %ymm1, %ymm2 +vperm2i128 $1, %ymm0, %ymm1, %ymm2 +vperm2i128 $1, (%rax), %ymm1, %ymm2 + vpermd %ymm0, %ymm1, %ymm2 vpermd (%rax), %ymm1, %ymm2 @@ -555,6 +558,8 @@ vpxor (%rax), %ymm1, %ymm2 # CHECK-NEXT: 2 8 1.00 * vpcmpgtq (%rax), %ymm1, %ymm2 # CHECK-NEXT: 1 1 0.25 vpcmpgtw %ymm0, %ymm1, %ymm2 # CHECK-NEXT: 1 8 0.50 * vpcmpgtw (%rax), %ymm1, %ymm2 +# CHECK-NEXT: 1 2 0.25 vperm2i128 $1, %ymm0, %ymm1, %ymm2 +# CHECK-NEXT: 1 9 0.50 * vperm2i128 $1, (%rax), %ymm1, %ymm2 # CHECK-NEXT: 1 2 0.25 vpermd %ymm0, %ymm1, %ymm2 # CHECK-NEXT: 1 9 0.50 * vpermd (%rax), %ymm1, %ymm2 # CHECK-NEXT: 1 100 0.25 vpermpd $1, %ymm0, %ymm2 @@ -773,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: 63.50 63.50 - - - - - 72.67 75.17 84.50 42.67 - +# CHECK-NEXT: 64.00 64.00 - - - - - 73.17 75.67 85.00 43.17 - # CHECK: Resource pressure by instruction: # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] Instructions: @@ -875,6 +880,8 @@ vpxor (%rax), %ymm1, %ymm2 # CHECK-NEXT: 0.50 0.50 - - - - - 1.00 - - 1.00 - vpcmpgtq (%rax), %ymm1, %ymm2 # CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - vpcmpgtw %ymm0, %ymm1, %ymm2 # CHECK-NEXT: 0.50 0.50 - - - - - 0.25 0.25 0.25 0.25 - vpcmpgtw (%rax), %ymm1, %ymm2 +# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - vperm2i128 $1, %ymm0, %ymm1, %ymm2 +# CHECK-NEXT: 0.50 0.50 - - - - - 0.25 0.25 0.25 0.25 - vperm2i128 $1, (%rax), %ymm1, %ymm2 # CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - vpermd %ymm0, %ymm1, %ymm2 # CHECK-NEXT: 0.50 0.50 - - - - - 0.25 0.25 0.25 0.25 - vpermd (%rax), %ymm1, %ymm2 # CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - vpermpd $1, %ymm0, %ymm2