diff options
| author | Simon Pilgrim <llvm-dev@redking.me.uk> | 2018-09-23 17:40:24 +0000 |
|---|---|---|
| committer | Simon Pilgrim <llvm-dev@redking.me.uk> | 2018-09-23 17:40:24 +0000 |
| commit | 19952add7cea53050ee9b80b99494ebc00acefda (patch) | |
| tree | 3e28dc4d5236a38569952d582e5b1b6c28d120fe /llvm/test/tools/llvm-mca/X86/Generic | |
| parent | 22d31c5e0fcb14a8343c2bc61602fb46c3dab84f (diff) | |
| download | bcm5719-llvm-19952add7cea53050ee9b80b99494ebc00acefda.tar.gz bcm5719-llvm-19952add7cea53050ee9b80b99494ebc00acefda.zip | |
[X86] Added missing RCL/RCR schedule overrides to the generic SNB model
The SandyBridge model was missing schedule values for the RCL/RCR values - instead using the (incredibly optimistic) WriteShift (now WriteRotate) defaults.
I've added overrides with more realistic (slow) values, based on a mixture of Agner/instlatx64 numbers and what later Intel models do as well.
This is necessary to allow WriteRotate to be updated to remove other rotate overrides.
It'd probably be a good idea to investigate a WriteRotateCarry class at some point but its not high priority given the unusualness of these instructions.
llvm-svn: 342842
Diffstat (limited to 'llvm/test/tools/llvm-mca/X86/Generic')
| -rw-r--r-- | llvm/test/tools/llvm-mca/X86/Generic/resources-x86_64.s | 194 |
1 files changed, 97 insertions, 97 deletions
diff --git a/llvm/test/tools/llvm-mca/X86/Generic/resources-x86_64.s b/llvm/test/tools/llvm-mca/X86/Generic/resources-x86_64.s index ed66bc6480d..2ab041c3de6 100644 --- a/llvm/test/tools/llvm-mca/X86/Generic/resources-x86_64.s +++ b/llvm/test/tools/llvm-mca/X86/Generic/resources-x86_64.s @@ -1235,54 +1235,54 @@ xorq (%rax), %rdi # CHECK-NEXT: 1 100 0.33 U outsw (%rsi), %dx # CHECK-NEXT: 1 100 0.33 U outsl (%rsi), %dx # CHECK-NEXT: 4 4 1.33 * * U pause -# CHECK-NEXT: 1 1 0.50 rclb %dil -# CHECK-NEXT: 1 1 0.50 rcrb %dil -# CHECK-NEXT: 3 6 1.00 * rclb (%rax) -# CHECK-NEXT: 3 6 1.00 * rcrb (%rax) -# CHECK-NEXT: 1 1 0.50 rclb $7, %dil -# CHECK-NEXT: 1 1 0.50 rcrb $7, %dil -# CHECK-NEXT: 3 6 1.00 * rclb $7, (%rax) -# CHECK-NEXT: 3 6 1.00 * rcrb $7, (%rax) -# CHECK-NEXT: 1 1 0.50 rclb %cl, %dil -# CHECK-NEXT: 1 1 0.50 rcrb %cl, %dil -# CHECK-NEXT: 3 6 1.00 * rclb %cl, (%rax) -# CHECK-NEXT: 3 6 1.00 * rcrb %cl, (%rax) -# CHECK-NEXT: 1 1 0.50 rclw %di -# CHECK-NEXT: 1 1 0.50 rcrw %di -# CHECK-NEXT: 3 6 1.00 * rclw (%rax) -# CHECK-NEXT: 3 6 1.00 * rcrw (%rax) -# CHECK-NEXT: 1 1 0.50 rclw $7, %di -# CHECK-NEXT: 1 1 0.50 rcrw $7, %di -# CHECK-NEXT: 3 6 1.00 * rclw $7, (%rax) -# CHECK-NEXT: 3 6 1.00 * rcrw $7, (%rax) -# CHECK-NEXT: 1 1 0.50 rclw %cl, %di -# CHECK-NEXT: 1 1 0.50 rcrw %cl, %di -# CHECK-NEXT: 3 6 1.00 * rclw %cl, (%rax) -# CHECK-NEXT: 3 6 1.00 * rcrw %cl, (%rax) -# CHECK-NEXT: 1 1 0.50 rcll %edi -# CHECK-NEXT: 1 1 0.50 rcrl %edi -# CHECK-NEXT: 3 6 1.00 * rcll (%rax) -# CHECK-NEXT: 3 6 1.00 * rcrl (%rax) -# CHECK-NEXT: 1 1 0.50 rcll $7, %edi -# CHECK-NEXT: 1 1 0.50 rcrl $7, %edi -# CHECK-NEXT: 3 6 1.00 * rcll $7, (%rax) -# CHECK-NEXT: 3 6 1.00 * rcrl $7, (%rax) -# CHECK-NEXT: 1 1 0.50 rcll %cl, %edi -# CHECK-NEXT: 1 1 0.50 rcrl %cl, %edi -# CHECK-NEXT: 3 6 1.00 * rcll %cl, (%rax) -# CHECK-NEXT: 3 6 1.00 * rcrl %cl, (%rax) -# CHECK-NEXT: 1 1 0.50 rclq %rdi -# CHECK-NEXT: 1 1 0.50 rcrq %rdi -# CHECK-NEXT: 3 6 1.00 * rclq (%rax) -# CHECK-NEXT: 3 6 1.00 * rcrq (%rax) -# CHECK-NEXT: 1 1 0.50 rclq $7, %rdi -# CHECK-NEXT: 1 1 0.50 rcrq $7, %rdi -# CHECK-NEXT: 3 6 1.00 * rclq $7, (%rax) -# CHECK-NEXT: 3 6 1.00 * rcrq $7, (%rax) -# CHECK-NEXT: 1 1 0.50 rclq %cl, %rdi -# CHECK-NEXT: 1 1 0.50 rcrq %cl, %rdi -# CHECK-NEXT: 3 6 1.00 * rclq %cl, (%rax) -# CHECK-NEXT: 3 6 1.00 * rcrq %cl, (%rax) +# CHECK-NEXT: 3 2 1.50 rclb %dil +# CHECK-NEXT: 3 2 1.50 rcrb %dil +# CHECK-NEXT: 11 11 3.50 * rclb (%rax) +# CHECK-NEXT: 11 11 3.50 * rcrb (%rax) +# CHECK-NEXT: 8 5 4.00 rclb $7, %dil +# CHECK-NEXT: 8 5 4.00 rcrb $7, %dil +# CHECK-NEXT: 11 11 3.50 * rclb $7, (%rax) +# CHECK-NEXT: 11 11 3.50 * rcrb $7, (%rax) +# CHECK-NEXT: 8 5 4.00 rclb %cl, %dil +# CHECK-NEXT: 8 5 4.00 rcrb %cl, %dil +# CHECK-NEXT: 11 11 3.50 * rclb %cl, (%rax) +# CHECK-NEXT: 11 11 3.50 * rcrb %cl, (%rax) +# CHECK-NEXT: 3 2 1.50 rclw %di +# CHECK-NEXT: 3 2 1.50 rcrw %di +# CHECK-NEXT: 11 11 3.50 * rclw (%rax) +# CHECK-NEXT: 11 11 3.50 * rcrw (%rax) +# CHECK-NEXT: 8 5 4.00 rclw $7, %di +# CHECK-NEXT: 8 5 4.00 rcrw $7, %di +# CHECK-NEXT: 11 11 3.50 * rclw $7, (%rax) +# CHECK-NEXT: 11 11 3.50 * rcrw $7, (%rax) +# CHECK-NEXT: 8 5 4.00 rclw %cl, %di +# CHECK-NEXT: 8 5 4.00 rcrw %cl, %di +# CHECK-NEXT: 11 11 3.50 * rclw %cl, (%rax) +# CHECK-NEXT: 11 11 3.50 * rcrw %cl, (%rax) +# CHECK-NEXT: 3 2 1.50 rcll %edi +# CHECK-NEXT: 3 2 1.50 rcrl %edi +# CHECK-NEXT: 11 11 3.50 * rcll (%rax) +# CHECK-NEXT: 11 11 3.50 * rcrl (%rax) +# CHECK-NEXT: 8 5 4.00 rcll $7, %edi +# CHECK-NEXT: 8 5 4.00 rcrl $7, %edi +# CHECK-NEXT: 11 11 3.50 * rcll $7, (%rax) +# CHECK-NEXT: 11 11 3.50 * rcrl $7, (%rax) +# CHECK-NEXT: 8 5 4.00 rcll %cl, %edi +# CHECK-NEXT: 8 5 4.00 rcrl %cl, %edi +# CHECK-NEXT: 11 11 3.50 * rcll %cl, (%rax) +# CHECK-NEXT: 11 11 3.50 * rcrl %cl, (%rax) +# CHECK-NEXT: 3 2 1.50 rclq %rdi +# CHECK-NEXT: 3 2 1.50 rcrq %rdi +# CHECK-NEXT: 11 11 3.50 * rclq (%rax) +# CHECK-NEXT: 11 11 3.50 * rcrq (%rax) +# CHECK-NEXT: 8 5 4.00 rclq $7, %rdi +# CHECK-NEXT: 8 5 4.00 rcrq $7, %rdi +# CHECK-NEXT: 11 11 3.50 * rclq $7, (%rax) +# CHECK-NEXT: 11 11 3.50 * rcrq $7, (%rax) +# CHECK-NEXT: 8 5 4.00 rclq %cl, %rdi +# CHECK-NEXT: 8 5 4.00 rcrq %cl, %rdi +# CHECK-NEXT: 11 11 3.50 * rclq %cl, (%rax) +# CHECK-NEXT: 11 11 3.50 * rcrq %cl, (%rax) # CHECK-NEXT: 2 2 1.00 rolb %dil # CHECK-NEXT: 2 2 1.00 rorb %dil # CHECK-NEXT: 5 8 1.00 * * rolb (%rax) @@ -1620,7 +1620,7 @@ xorq (%rax), %rdi # CHECK: Resource pressure per iteration: # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6.0] [6.1] -# CHECK-NEXT: 160.00 - 435.83 221.33 246.00 435.83 292.00 292.00 +# CHECK-NEXT: 160.00 - 571.83 221.33 222.00 571.83 316.00 316.00 # CHECK: Resource pressure by instruction: # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6.0] [6.1] Instructions: @@ -1998,54 +1998,54 @@ xorq (%rax), %rdi # CHECK-NEXT: - - 0.33 0.33 - 0.33 - - outsw (%rsi), %dx # CHECK-NEXT: - - 0.33 0.33 - 0.33 - - outsl (%rsi), %dx # CHECK-NEXT: - - 1.00 1.00 - 2.00 - - pause -# CHECK-NEXT: - - 0.50 - - 0.50 - - rclb %dil -# CHECK-NEXT: - - 0.50 - - 0.50 - - rcrb %dil -# CHECK-NEXT: - - 0.50 - 1.00 0.50 1.00 1.00 rclb (%rax) -# CHECK-NEXT: - - 0.50 - 1.00 0.50 1.00 1.00 rcrb (%rax) -# CHECK-NEXT: - - 0.50 - - 0.50 - - rclb $7, %dil -# CHECK-NEXT: - - 0.50 - - 0.50 - - rcrb $7, %dil -# CHECK-NEXT: - - 0.50 - 1.00 0.50 1.00 1.00 rclb $7, (%rax) -# CHECK-NEXT: - - 0.50 - 1.00 0.50 1.00 1.00 rcrb $7, (%rax) -# CHECK-NEXT: - - 0.50 - - 0.50 - - rclb %cl, %dil -# CHECK-NEXT: - - 0.50 - - 0.50 - - rcrb %cl, %dil -# CHECK-NEXT: - - 0.50 - 1.00 0.50 1.00 1.00 rclb %cl, (%rax) -# CHECK-NEXT: - - 0.50 - 1.00 0.50 1.00 1.00 rcrb %cl, (%rax) -# CHECK-NEXT: - - 0.50 - - 0.50 - - rclw %di -# CHECK-NEXT: - - 0.50 - - 0.50 - - rcrw %di -# CHECK-NEXT: - - 0.50 - 1.00 0.50 1.00 1.00 rclw (%rax) -# CHECK-NEXT: - - 0.50 - 1.00 0.50 1.00 1.00 rcrw (%rax) -# CHECK-NEXT: - - 0.50 - - 0.50 - - rclw $7, %di -# CHECK-NEXT: - - 0.50 - - 0.50 - - rcrw $7, %di -# CHECK-NEXT: - - 0.50 - 1.00 0.50 1.00 1.00 rclw $7, (%rax) -# CHECK-NEXT: - - 0.50 - 1.00 0.50 1.00 1.00 rcrw $7, (%rax) -# CHECK-NEXT: - - 0.50 - - 0.50 - - rclw %cl, %di -# CHECK-NEXT: - - 0.50 - - 0.50 - - rcrw %cl, %di -# CHECK-NEXT: - - 0.50 - 1.00 0.50 1.00 1.00 rclw %cl, (%rax) -# CHECK-NEXT: - - 0.50 - 1.00 0.50 1.00 1.00 rcrw %cl, (%rax) -# CHECK-NEXT: - - 0.50 - - 0.50 - - rcll %edi -# CHECK-NEXT: - - 0.50 - - 0.50 - - rcrl %edi -# CHECK-NEXT: - - 0.50 - 1.00 0.50 1.00 1.00 rcll (%rax) -# CHECK-NEXT: - - 0.50 - 1.00 0.50 1.00 1.00 rcrl (%rax) -# CHECK-NEXT: - - 0.50 - - 0.50 - - rcll $7, %edi -# CHECK-NEXT: - - 0.50 - - 0.50 - - rcrl $7, %edi -# CHECK-NEXT: - - 0.50 - 1.00 0.50 1.00 1.00 rcll $7, (%rax) -# CHECK-NEXT: - - 0.50 - 1.00 0.50 1.00 1.00 rcrl $7, (%rax) -# CHECK-NEXT: - - 0.50 - - 0.50 - - rcll %cl, %edi -# CHECK-NEXT: - - 0.50 - - 0.50 - - rcrl %cl, %edi -# CHECK-NEXT: - - 0.50 - 1.00 0.50 1.00 1.00 rcll %cl, (%rax) -# CHECK-NEXT: - - 0.50 - 1.00 0.50 1.00 1.00 rcrl %cl, (%rax) -# CHECK-NEXT: - - 0.50 - - 0.50 - - rclq %rdi -# CHECK-NEXT: - - 0.50 - - 0.50 - - rcrq %rdi -# CHECK-NEXT: - - 0.50 - 1.00 0.50 1.00 1.00 rclq (%rax) -# CHECK-NEXT: - - 0.50 - 1.00 0.50 1.00 1.00 rcrq (%rax) -# CHECK-NEXT: - - 0.50 - - 0.50 - - rclq $7, %rdi -# CHECK-NEXT: - - 0.50 - - 0.50 - - rcrq $7, %rdi -# CHECK-NEXT: - - 0.50 - 1.00 0.50 1.00 1.00 rclq $7, (%rax) -# CHECK-NEXT: - - 0.50 - 1.00 0.50 1.00 1.00 rcrq $7, (%rax) -# CHECK-NEXT: - - 0.50 - - 0.50 - - rclq %cl, %rdi -# CHECK-NEXT: - - 0.50 - - 0.50 - - rcrq %cl, %rdi -# CHECK-NEXT: - - 0.50 - 1.00 0.50 1.00 1.00 rclq %cl, (%rax) -# CHECK-NEXT: - - 0.50 - 1.00 0.50 1.00 1.00 rcrq %cl, (%rax) +# CHECK-NEXT: - - 1.50 - - 1.50 - - rclb %dil +# CHECK-NEXT: - - 1.50 - - 1.50 - - rcrb %dil +# CHECK-NEXT: - - 3.50 - - 3.50 2.00 2.00 rclb (%rax) +# CHECK-NEXT: - - 3.50 - - 3.50 2.00 2.00 rcrb (%rax) +# CHECK-NEXT: - - 4.00 - - 4.00 - - rclb $7, %dil +# CHECK-NEXT: - - 4.00 - - 4.00 - - rcrb $7, %dil +# CHECK-NEXT: - - 3.50 - - 3.50 2.00 2.00 rclb $7, (%rax) +# CHECK-NEXT: - - 3.50 - - 3.50 2.00 2.00 rcrb $7, (%rax) +# CHECK-NEXT: - - 4.00 - - 4.00 - - rclb %cl, %dil +# CHECK-NEXT: - - 4.00 - - 4.00 - - rcrb %cl, %dil +# CHECK-NEXT: - - 3.50 - - 3.50 2.00 2.00 rclb %cl, (%rax) +# CHECK-NEXT: - - 3.50 - - 3.50 2.00 2.00 rcrb %cl, (%rax) +# CHECK-NEXT: - - 1.50 - - 1.50 - - rclw %di +# CHECK-NEXT: - - 1.50 - - 1.50 - - rcrw %di +# CHECK-NEXT: - - 3.50 - - 3.50 2.00 2.00 rclw (%rax) +# CHECK-NEXT: - - 3.50 - - 3.50 2.00 2.00 rcrw (%rax) +# CHECK-NEXT: - - 4.00 - - 4.00 - - rclw $7, %di +# CHECK-NEXT: - - 4.00 - - 4.00 - - rcrw $7, %di +# CHECK-NEXT: - - 3.50 - - 3.50 2.00 2.00 rclw $7, (%rax) +# CHECK-NEXT: - - 3.50 - - 3.50 2.00 2.00 rcrw $7, (%rax) +# CHECK-NEXT: - - 4.00 - - 4.00 - - rclw %cl, %di +# CHECK-NEXT: - - 4.00 - - 4.00 - - rcrw %cl, %di +# CHECK-NEXT: - - 3.50 - - 3.50 2.00 2.00 rclw %cl, (%rax) +# CHECK-NEXT: - - 3.50 - - 3.50 2.00 2.00 rcrw %cl, (%rax) +# CHECK-NEXT: - - 1.50 - - 1.50 - - rcll %edi +# CHECK-NEXT: - - 1.50 - - 1.50 - - rcrl %edi +# CHECK-NEXT: - - 3.50 - - 3.50 2.00 2.00 rcll (%rax) +# CHECK-NEXT: - - 3.50 - - 3.50 2.00 2.00 rcrl (%rax) +# CHECK-NEXT: - - 4.00 - - 4.00 - - rcll $7, %edi +# CHECK-NEXT: - - 4.00 - - 4.00 - - rcrl $7, %edi +# CHECK-NEXT: - - 3.50 - - 3.50 2.00 2.00 rcll $7, (%rax) +# CHECK-NEXT: - - 3.50 - - 3.50 2.00 2.00 rcrl $7, (%rax) +# CHECK-NEXT: - - 4.00 - - 4.00 - - rcll %cl, %edi +# CHECK-NEXT: - - 4.00 - - 4.00 - - rcrl %cl, %edi +# CHECK-NEXT: - - 3.50 - - 3.50 2.00 2.00 rcll %cl, (%rax) +# CHECK-NEXT: - - 3.50 - - 3.50 2.00 2.00 rcrl %cl, (%rax) +# CHECK-NEXT: - - 1.50 - - 1.50 - - rclq %rdi +# CHECK-NEXT: - - 1.50 - - 1.50 - - rcrq %rdi +# CHECK-NEXT: - - 3.50 - - 3.50 2.00 2.00 rclq (%rax) +# CHECK-NEXT: - - 3.50 - - 3.50 2.00 2.00 rcrq (%rax) +# CHECK-NEXT: - - 4.00 - - 4.00 - - rclq $7, %rdi +# CHECK-NEXT: - - 4.00 - - 4.00 - - rcrq $7, %rdi +# CHECK-NEXT: - - 3.50 - - 3.50 2.00 2.00 rclq $7, (%rax) +# CHECK-NEXT: - - 3.50 - - 3.50 2.00 2.00 rcrq $7, (%rax) +# CHECK-NEXT: - - 4.00 - - 4.00 - - rclq %cl, %rdi +# CHECK-NEXT: - - 4.00 - - 4.00 - - rcrq %cl, %rdi +# CHECK-NEXT: - - 3.50 - - 3.50 2.00 2.00 rclq %cl, (%rax) +# CHECK-NEXT: - - 3.50 - - 3.50 2.00 2.00 rcrq %cl, (%rax) # CHECK-NEXT: - - 1.00 - - 1.00 - - rolb %dil # CHECK-NEXT: - - 1.00 - - 1.00 - - rorb %dil # CHECK-NEXT: - - 1.00 - 1.00 1.00 1.00 1.00 rolb (%rax) |

