From 0f87f66942603cc5e037cab498c94d4f453180a1 Mon Sep 17 00:00:00 2001 From: Simon Pilgrim Date: Tue, 2 Oct 2018 15:13:18 +0000 Subject: [PATCH] [X86][Btver2] Fix BLENDV and AESDEC schedules Match AMD Fam16h SOG + llvm-exegesis tests llvm-svn: 343597 --- lib/Target/X86/X86ScheduleBtVer2.td | 8 ++-- .../tools/llvm-mca/X86/BtVer2/resources-aes.s | 18 ++++----- .../llvm-mca/X86/BtVer2/resources-avx1.s | 38 +++++++++---------- .../llvm-mca/X86/BtVer2/resources-sse41.s | 14 +++---- 4 files changed, 39 insertions(+), 39 deletions(-) diff --git a/lib/Target/X86/X86ScheduleBtVer2.td b/lib/Target/X86/X86ScheduleBtVer2.td index 05f4172f086..3d73e38efb6 100644 --- a/lib/Target/X86/X86ScheduleBtVer2.td +++ b/lib/Target/X86/X86ScheduleBtVer2.td @@ -389,8 +389,8 @@ defm : X86WriteResPairUnsupported; defm : JWriteResFpuPair; defm : JWriteResYMMPair; defm : X86WriteResPairUnsupported; -defm : JWriteResFpuPair; -defm : JWriteResYMMPair; +defm : JWriteResFpuPair; +defm : JWriteResYMMPair; defm : X86WriteResPairUnsupported; defm : JWriteResFpuPair; defm : X86WriteResPairUnsupported; @@ -506,7 +506,7 @@ defm : X86WriteResPairUnsupported; defm : JWriteResFpuPair; defm : X86WriteResPairUnsupported; defm : X86WriteResPairUnsupported; -defm : JWriteResFpuPair; +defm : JWriteResFpuPair; defm : X86WriteResPairUnsupported; defm : X86WriteResPairUnsupported; defm : JWriteResFpuPair; @@ -552,7 +552,7 @@ def : WriteRes { let Latency = 3; } defm : JWriteResFpuPair; defm : JWriteResFpuPair; -defm : JWriteResFpuPair; +defm : JWriteResFpuPair; //////////////////////////////////////////////////////////////////////////////// // Horizontal add/sub instructions. diff --git a/test/tools/llvm-mca/X86/BtVer2/resources-aes.s b/test/tools/llvm-mca/X86/BtVer2/resources-aes.s index a1d467cd008..1a0f96f2943 100644 --- a/test/tools/llvm-mca/X86/BtVer2/resources-aes.s +++ b/test/tools/llvm-mca/X86/BtVer2/resources-aes.s @@ -59,18 +59,18 @@ aeskeygenassist $22, (%rax), %xmm2 # CHECK: Resource pressure per iteration: # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] -# CHECK-NEXT: - - - - - 12.00 - 6.00 - - - - - 12.00 +# CHECK-NEXT: - - - - - 16.00 4.00 6.00 - - - 4.00 4.00 12.00 # CHECK: Resource pressure by instruction: # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] Instructions: -# CHECK-NEXT: - - - - - 1.00 - - - - - - - 1.00 aesdec %xmm0, %xmm2 -# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - - - 1.00 aesdec (%rax), %xmm2 -# CHECK-NEXT: - - - - - 1.00 - - - - - - - 1.00 aesdeclast %xmm0, %xmm2 -# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - - - 1.00 aesdeclast (%rax), %xmm2 -# CHECK-NEXT: - - - - - 1.00 - - - - - - - 1.00 aesenc %xmm0, %xmm2 -# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - - - 1.00 aesenc (%rax), %xmm2 -# CHECK-NEXT: - - - - - 1.00 - - - - - - - 1.00 aesenclast %xmm0, %xmm2 -# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - - - 1.00 aesenclast (%rax), %xmm2 +# CHECK-NEXT: - - - - - 1.50 0.50 - - - - 0.50 0.50 1.00 aesdec %xmm0, %xmm2 +# CHECK-NEXT: - - - - - 1.50 0.50 1.00 - - - 0.50 0.50 1.00 aesdec (%rax), %xmm2 +# CHECK-NEXT: - - - - - 1.50 0.50 - - - - 0.50 0.50 1.00 aesdeclast %xmm0, %xmm2 +# CHECK-NEXT: - - - - - 1.50 0.50 1.00 - - - 0.50 0.50 1.00 aesdeclast (%rax), %xmm2 +# CHECK-NEXT: - - - - - 1.50 0.50 - - - - 0.50 0.50 1.00 aesenc %xmm0, %xmm2 +# CHECK-NEXT: - - - - - 1.50 0.50 1.00 - - - 0.50 0.50 1.00 aesenc (%rax), %xmm2 +# CHECK-NEXT: - - - - - 1.50 0.50 - - - - 0.50 0.50 1.00 aesenclast %xmm0, %xmm2 +# CHECK-NEXT: - - - - - 1.50 0.50 1.00 - - - 0.50 0.50 1.00 aesenclast (%rax), %xmm2 # CHECK-NEXT: - - - - - 1.00 - - - - - - - 1.00 aesimc %xmm0, %xmm2 # CHECK-NEXT: - - - - - 1.00 - 1.00 - - - - - 1.00 aesimc (%rax), %xmm2 # CHECK-NEXT: - - - - - 1.00 - - - - - - - 1.00 aeskeygenassist $22, %xmm0, %xmm2 diff --git a/test/tools/llvm-mca/X86/BtVer2/resources-avx1.s b/test/tools/llvm-mca/X86/BtVer2/resources-avx1.s index 0bdca968304..3db3470e0c4 100644 --- a/test/tools/llvm-mca/X86/BtVer2/resources-avx1.s +++ b/test/tools/llvm-mca/X86/BtVer2/resources-avx1.s @@ -1740,7 +1740,7 @@ vzeroupper # CHECK: Resource pressure per iteration: # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] -# CHECK-NEXT: 56.00 - - 365.00 915.00 426.50 440.50 394.00 - 51.00 132.00 131.50 155.50 38.00 +# CHECK-NEXT: 56.00 - - 365.00 915.00 447.50 461.50 394.00 - 51.00 132.00 135.50 159.50 38.00 # CHECK: Resource pressure by instruction: # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] Instructions: @@ -1764,14 +1764,14 @@ vzeroupper # CHECK-NEXT: - - - 1.00 - 1.00 - 1.00 - - - - - - vaddsubps (%rax), %xmm1, %xmm2 # CHECK-NEXT: - - - 2.00 - 2.00 - - - - - - - - vaddsubps %ymm0, %ymm1, %ymm2 # CHECK-NEXT: - - - 2.00 - 2.00 - 2.00 - - - - - - vaddsubps (%rax), %ymm1, %ymm2 -# CHECK-NEXT: - - - - - 1.00 - - - - - - - 1.00 vaesdec %xmm0, %xmm1, %xmm2 -# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - - - 1.00 vaesdec (%rax), %xmm1, %xmm2 -# CHECK-NEXT: - - - - - 1.00 - - - - - - - 1.00 vaesdeclast %xmm0, %xmm1, %xmm2 -# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - - - 1.00 vaesdeclast (%rax), %xmm1, %xmm2 -# CHECK-NEXT: - - - - - 1.00 - - - - - - - 1.00 vaesenc %xmm0, %xmm1, %xmm2 -# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - - - 1.00 vaesenc (%rax), %xmm1, %xmm2 -# CHECK-NEXT: - - - - - 1.00 - - - - - - - 1.00 vaesenclast %xmm0, %xmm1, %xmm2 -# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - - - 1.00 vaesenclast (%rax), %xmm1, %xmm2 +# CHECK-NEXT: - - - - - 1.50 0.50 - - - - 0.50 0.50 1.00 vaesdec %xmm0, %xmm1, %xmm2 +# CHECK-NEXT: - - - - - 1.50 0.50 1.00 - - - 0.50 0.50 1.00 vaesdec (%rax), %xmm1, %xmm2 +# CHECK-NEXT: - - - - - 1.50 0.50 - - - - 0.50 0.50 1.00 vaesdeclast %xmm0, %xmm1, %xmm2 +# CHECK-NEXT: - - - - - 1.50 0.50 1.00 - - - 0.50 0.50 1.00 vaesdeclast (%rax), %xmm1, %xmm2 +# CHECK-NEXT: - - - - - 1.50 0.50 - - - - 0.50 0.50 1.00 vaesenc %xmm0, %xmm1, %xmm2 +# CHECK-NEXT: - - - - - 1.50 0.50 1.00 - - - 0.50 0.50 1.00 vaesenc (%rax), %xmm1, %xmm2 +# CHECK-NEXT: - - - - - 1.50 0.50 - - - - 0.50 0.50 1.00 vaesenclast %xmm0, %xmm1, %xmm2 +# CHECK-NEXT: - - - - - 1.50 0.50 1.00 - - - 0.50 0.50 1.00 vaesenclast (%rax), %xmm1, %xmm2 # CHECK-NEXT: - - - - - 1.00 - - - - - - - 1.00 vaesimc %xmm0, %xmm2 # CHECK-NEXT: - - - - - 1.00 - 1.00 - - - - - 1.00 vaesimc (%rax), %xmm2 # CHECK-NEXT: - - - - - 1.00 - - - - - - - 1.00 vaeskeygenassist $22, %xmm0, %xmm2 @@ -1800,14 +1800,14 @@ vzeroupper # CHECK-NEXT: - - - 0.50 0.50 0.50 0.50 1.00 - - - - - - vblendps $11, (%rax), %xmm1, %xmm2 # CHECK-NEXT: - - - 1.00 1.00 1.00 1.00 - - - - - - - vblendps $11, %ymm0, %ymm1, %ymm2 # CHECK-NEXT: - - - 1.00 1.00 1.00 1.00 2.00 - - - - - - vblendps $11, (%rax), %ymm1, %ymm2 -# CHECK-NEXT: - - - 2.00 2.00 0.50 0.50 - - - - - - - vblendvpd %xmm3, %xmm0, %xmm1, %xmm2 -# CHECK-NEXT: - - - 2.00 2.00 0.50 0.50 1.00 - - - - - - vblendvpd %xmm3, (%rax), %xmm1, %xmm2 -# CHECK-NEXT: - - - 3.00 3.00 1.00 1.00 - - - - - - - vblendvpd %ymm3, %ymm0, %ymm1, %ymm2 -# CHECK-NEXT: - - - 3.00 3.00 1.00 1.00 2.00 - - - - - - vblendvpd %ymm3, (%rax), %ymm1, %ymm2 -# CHECK-NEXT: - - - 2.00 2.00 0.50 0.50 - - - - - - - vblendvps %xmm3, %xmm0, %xmm1, %xmm2 -# CHECK-NEXT: - - - 2.00 2.00 0.50 0.50 1.00 - - - - - - vblendvps %xmm3, (%rax), %xmm1, %xmm2 -# CHECK-NEXT: - - - 3.00 3.00 1.00 1.00 - - - - - - - vblendvps %ymm3, %ymm0, %ymm1, %ymm2 -# CHECK-NEXT: - - - 3.00 3.00 1.00 1.00 2.00 - - - - - - vblendvps %ymm3, (%rax), %ymm1, %ymm2 +# CHECK-NEXT: - - - 2.00 2.00 2.00 2.00 - - - - - - - vblendvpd %xmm3, %xmm0, %xmm1, %xmm2 +# CHECK-NEXT: - - - 2.00 2.00 2.00 2.00 1.00 - - - - - - vblendvpd %xmm3, (%rax), %xmm1, %xmm2 +# CHECK-NEXT: - - - 3.00 3.00 3.00 3.00 - - - - - - - vblendvpd %ymm3, %ymm0, %ymm1, %ymm2 +# CHECK-NEXT: - - - 3.00 3.00 3.00 3.00 2.00 - - - - - - vblendvpd %ymm3, (%rax), %ymm1, %ymm2 +# CHECK-NEXT: - - - 2.00 2.00 2.00 2.00 - - - - - - - vblendvps %xmm3, %xmm0, %xmm1, %xmm2 +# CHECK-NEXT: - - - 2.00 2.00 2.00 2.00 1.00 - - - - - - vblendvps %xmm3, (%rax), %xmm1, %xmm2 +# CHECK-NEXT: - - - 3.00 3.00 3.00 3.00 - - - - - - - vblendvps %ymm3, %ymm0, %ymm1, %ymm2 +# CHECK-NEXT: - - - 3.00 3.00 3.00 3.00 2.00 - - - - - - vblendvps %ymm3, (%rax), %ymm1, %ymm2 # CHECK-NEXT: - - - 2.00 2.00 1.00 1.00 1.00 - - - - - - vbroadcastf128 (%rax), %ymm2 # CHECK-NEXT: - - - 2.00 2.00 1.00 1.00 1.00 - - - - - - vbroadcastsd (%rax), %ymm2 # CHECK-NEXT: - - - 0.50 0.50 0.50 0.50 1.00 - - - - - - vbroadcastss (%rax), %xmm2 @@ -2113,8 +2113,8 @@ vzeroupper # CHECK-NEXT: - - - - - 0.50 0.50 1.00 - - - 0.50 0.50 - vpavgb (%rax), %xmm1, %xmm2 # CHECK-NEXT: - - - - - 0.50 0.50 - - - - 0.50 0.50 - vpavgw %xmm0, %xmm1, %xmm2 # CHECK-NEXT: - - - - - 0.50 0.50 1.00 - - - 0.50 0.50 - vpavgw (%rax), %xmm1, %xmm2 -# CHECK-NEXT: - - - - - 0.50 0.50 - - - - 2.00 2.00 - vpblendvb %xmm3, %xmm0, %xmm1, %xmm2 -# CHECK-NEXT: - - - - - 0.50 0.50 1.00 - - - 2.00 2.00 - vpblendvb %xmm3, (%rax), %xmm1, %xmm2 +# CHECK-NEXT: - - - - - 2.00 2.00 - - - - 2.00 2.00 - vpblendvb %xmm3, %xmm0, %xmm1, %xmm2 +# CHECK-NEXT: - - - - - 2.00 2.00 1.00 - - - 2.00 2.00 - vpblendvb %xmm3, (%rax), %xmm1, %xmm2 # CHECK-NEXT: - - - - - 0.50 0.50 - - - - 0.50 0.50 - vpblendw $11, %xmm0, %xmm1, %xmm2 # CHECK-NEXT: - - - - - 0.50 0.50 1.00 - - - 0.50 0.50 - vpblendw $11, (%rax), %xmm1, %xmm2 # CHECK-NEXT: - - - - - 1.00 - - - - - - - 1.00 vpclmulqdq $11, %xmm0, %xmm1, %xmm2 diff --git a/test/tools/llvm-mca/X86/BtVer2/resources-sse41.s b/test/tools/llvm-mca/X86/BtVer2/resources-sse41.s index 87634c1be10..7f10f1c67bc 100644 --- a/test/tools/llvm-mca/X86/BtVer2/resources-sse41.s +++ b/test/tools/llvm-mca/X86/BtVer2/resources-sse41.s @@ -270,7 +270,7 @@ roundss $1, (%rax), %xmm2 # CHECK: Resource pressure per iteration: # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] -# CHECK-NEXT: 6.00 - - 29.00 23.00 48.50 51.50 44.00 - 5.00 13.00 32.50 32.50 10.00 +# CHECK-NEXT: 6.00 - - 29.00 23.00 57.50 60.50 44.00 - 5.00 13.00 32.50 32.50 10.00 # CHECK: Resource pressure by instruction: # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] Instructions: @@ -278,10 +278,10 @@ roundss $1, (%rax), %xmm2 # CHECK-NEXT: - - - 0.50 0.50 0.50 0.50 1.00 - - - - - - blendpd $11, (%rax), %xmm2 # CHECK-NEXT: - - - 0.50 0.50 0.50 0.50 - - - - - - - blendps $11, %xmm0, %xmm2 # CHECK-NEXT: - - - 0.50 0.50 0.50 0.50 1.00 - - - - - - blendps $11, (%rax), %xmm2 -# CHECK-NEXT: - - - 2.00 2.00 0.50 0.50 - - - - - - - blendvpd %xmm0, %xmm0, %xmm2 -# CHECK-NEXT: - - - 2.00 2.00 0.50 0.50 1.00 - - - - - - blendvpd %xmm0, (%rax), %xmm2 -# CHECK-NEXT: - - - 2.00 2.00 0.50 0.50 - - - - - - - blendvps %xmm0, %xmm0, %xmm2 -# CHECK-NEXT: - - - 2.00 2.00 0.50 0.50 1.00 - - - - - - blendvps %xmm0, (%rax), %xmm2 +# CHECK-NEXT: - - - 2.00 2.00 2.00 2.00 - - - - - - - blendvpd %xmm0, %xmm0, %xmm2 +# CHECK-NEXT: - - - 2.00 2.00 2.00 2.00 1.00 - - - - - - blendvpd %xmm0, (%rax), %xmm2 +# CHECK-NEXT: - - - 2.00 2.00 2.00 2.00 - - - - - - - blendvps %xmm0, %xmm0, %xmm2 +# CHECK-NEXT: - - - 2.00 2.00 2.00 2.00 1.00 - - - - - - blendvps %xmm0, (%rax), %xmm2 # CHECK-NEXT: - - - 3.00 3.00 - 1.00 - - - - - - - dppd $22, %xmm0, %xmm2 # CHECK-NEXT: - - - 3.00 3.00 - 1.00 1.00 - - - - - - dppd $22, (%rax), %xmm2 # CHECK-NEXT: - - - 3.00 3.00 - 1.00 - - - - - - - dpps $22, %xmm0, %xmm2 @@ -295,8 +295,8 @@ roundss $1, (%rax), %xmm2 # CHECK-NEXT: - - - - - 1.00 - 1.00 - - - - - 2.00 mpsadbw $1, (%rax), %xmm2 # CHECK-NEXT: - - - - - 0.50 0.50 - - - - 0.50 0.50 - packusdw %xmm0, %xmm2 # CHECK-NEXT: - - - - - 0.50 0.50 1.00 - - - 0.50 0.50 - packusdw (%rax), %xmm2 -# CHECK-NEXT: - - - - - 0.50 0.50 - - - - 2.00 2.00 - pblendvb %xmm0, %xmm0, %xmm2 -# CHECK-NEXT: - - - - - 0.50 0.50 1.00 - - - 2.00 2.00 - pblendvb %xmm0, (%rax), %xmm2 +# CHECK-NEXT: - - - - - 2.00 2.00 - - - - 2.00 2.00 - pblendvb %xmm0, %xmm0, %xmm2 +# CHECK-NEXT: - - - - - 2.00 2.00 1.00 - - - 2.00 2.00 - pblendvb %xmm0, (%rax), %xmm2 # CHECK-NEXT: - - - - - 0.50 0.50 - - - - 0.50 0.50 - pblendw $11, %xmm0, %xmm2 # CHECK-NEXT: - - - - - 0.50 0.50 1.00 - - - 0.50 0.50 - pblendw $11, (%rax), %xmm2 # CHECK-NEXT: - - - - - 0.50 0.50 - - - - 0.50 0.50 - pcmpeqq %xmm0, %xmm2