summaryrefslogtreecommitdiffstats
path: root/llvm/test/CodeGen/X86
diff options
context:
space:
mode:
authorSimon Pilgrim <llvm-dev@redking.me.uk>2018-09-23 17:40:24 +0000
committerSimon Pilgrim <llvm-dev@redking.me.uk>2018-09-23 17:40:24 +0000
commit19952add7cea53050ee9b80b99494ebc00acefda (patch)
tree3e28dc4d5236a38569952d582e5b1b6c28d120fe /llvm/test/CodeGen/X86
parent22d31c5e0fcb14a8343c2bc61602fb46c3dab84f (diff)
downloadbcm5719-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/CodeGen/X86')
-rw-r--r--llvm/test/CodeGen/X86/schedule-x86_64.ll192
1 files changed, 96 insertions, 96 deletions
diff --git a/llvm/test/CodeGen/X86/schedule-x86_64.ll b/llvm/test/CodeGen/X86/schedule-x86_64.ll
index 0a9eee2ad37..30289cd5661 100644
--- a/llvm/test/CodeGen/X86/schedule-x86_64.ll
+++ b/llvm/test/CodeGen/X86/schedule-x86_64.ll
@@ -9972,18 +9972,18 @@ define void @test_rcl_rcr_8(i8 %a0, i8 %a1, i8 *%a2) optsize {
; GENERIC-LABEL: test_rcl_rcr_8:
; GENERIC: # %bb.0:
; GENERIC-NEXT: #APP
-; GENERIC-NEXT: rclb %dil # sched: [1:0.50]
-; GENERIC-NEXT: rcrb %dil # sched: [1:0.50]
-; GENERIC-NEXT: rclb (%rdx) # sched: [6:1.00]
-; GENERIC-NEXT: rcrb (%rdx) # sched: [6:1.00]
-; GENERIC-NEXT: rclb $7, %dil # sched: [1:0.50]
-; GENERIC-NEXT: rcrb $7, %dil # sched: [1:0.50]
-; GENERIC-NEXT: rclb $7, (%rdx) # sched: [6:1.00]
-; GENERIC-NEXT: rcrb $7, (%rdx) # sched: [6:1.00]
-; GENERIC-NEXT: rclb %cl, %dil # sched: [1:0.50]
-; GENERIC-NEXT: rcrb %cl, %dil # sched: [1:0.50]
-; GENERIC-NEXT: rclb %cl, (%rdx) # sched: [6:1.00]
-; GENERIC-NEXT: rcrb %cl, (%rdx) # sched: [6:1.00]
+; GENERIC-NEXT: rclb %dil # sched: [2:1.50]
+; GENERIC-NEXT: rcrb %dil # sched: [2:1.50]
+; GENERIC-NEXT: rclb (%rdx) # sched: [11:3.50]
+; GENERIC-NEXT: rcrb (%rdx) # sched: [11:3.50]
+; GENERIC-NEXT: rclb $7, %dil # sched: [5:4.00]
+; GENERIC-NEXT: rcrb $7, %dil # sched: [5:4.00]
+; GENERIC-NEXT: rclb $7, (%rdx) # sched: [11:3.50]
+; GENERIC-NEXT: rcrb $7, (%rdx) # sched: [11:3.50]
+; GENERIC-NEXT: rclb %cl, %dil # sched: [5:4.00]
+; GENERIC-NEXT: rcrb %cl, %dil # sched: [5:4.00]
+; GENERIC-NEXT: rclb %cl, (%rdx) # sched: [11:3.50]
+; GENERIC-NEXT: rcrb %cl, (%rdx) # sched: [11:3.50]
; GENERIC-NEXT: #NO_APP
; GENERIC-NEXT: retq # sched: [1:1.00]
;
@@ -10026,18 +10026,18 @@ define void @test_rcl_rcr_8(i8 %a0, i8 %a1, i8 *%a2) optsize {
; SANDY-LABEL: test_rcl_rcr_8:
; SANDY: # %bb.0:
; SANDY-NEXT: #APP
-; SANDY-NEXT: rclb %dil # sched: [1:0.50]
-; SANDY-NEXT: rcrb %dil # sched: [1:0.50]
-; SANDY-NEXT: rclb (%rdx) # sched: [6:1.00]
-; SANDY-NEXT: rcrb (%rdx) # sched: [6:1.00]
-; SANDY-NEXT: rclb $7, %dil # sched: [1:0.50]
-; SANDY-NEXT: rcrb $7, %dil # sched: [1:0.50]
-; SANDY-NEXT: rclb $7, (%rdx) # sched: [6:1.00]
-; SANDY-NEXT: rcrb $7, (%rdx) # sched: [6:1.00]
-; SANDY-NEXT: rclb %cl, %dil # sched: [1:0.50]
-; SANDY-NEXT: rcrb %cl, %dil # sched: [1:0.50]
-; SANDY-NEXT: rclb %cl, (%rdx) # sched: [6:1.00]
-; SANDY-NEXT: rcrb %cl, (%rdx) # sched: [6:1.00]
+; SANDY-NEXT: rclb %dil # sched: [2:1.50]
+; SANDY-NEXT: rcrb %dil # sched: [2:1.50]
+; SANDY-NEXT: rclb (%rdx) # sched: [11:3.50]
+; SANDY-NEXT: rcrb (%rdx) # sched: [11:3.50]
+; SANDY-NEXT: rclb $7, %dil # sched: [5:4.00]
+; SANDY-NEXT: rcrb $7, %dil # sched: [5:4.00]
+; SANDY-NEXT: rclb $7, (%rdx) # sched: [11:3.50]
+; SANDY-NEXT: rcrb $7, (%rdx) # sched: [11:3.50]
+; SANDY-NEXT: rclb %cl, %dil # sched: [5:4.00]
+; SANDY-NEXT: rcrb %cl, %dil # sched: [5:4.00]
+; SANDY-NEXT: rclb %cl, (%rdx) # sched: [11:3.50]
+; SANDY-NEXT: rcrb %cl, (%rdx) # sched: [11:3.50]
; SANDY-NEXT: #NO_APP
; SANDY-NEXT: retq # sched: [1:1.00]
;
@@ -10155,18 +10155,18 @@ define void @test_rcl_rcr_16(i16 %a0, i16 %a1, i16 *%a2) optsize {
; GENERIC-LABEL: test_rcl_rcr_16:
; GENERIC: # %bb.0:
; GENERIC-NEXT: #APP
-; GENERIC-NEXT: rclw %di # sched: [1:0.50]
-; GENERIC-NEXT: rcrw %di # sched: [1:0.50]
-; GENERIC-NEXT: rclw (%rdx) # sched: [6:1.00]
-; GENERIC-NEXT: rcrw (%rdx) # sched: [6:1.00]
-; GENERIC-NEXT: rclw $7, %di # sched: [1:0.50]
-; GENERIC-NEXT: rcrw $7, %di # sched: [1:0.50]
-; GENERIC-NEXT: rclw $7, (%rdx) # sched: [6:1.00]
-; GENERIC-NEXT: rcrw $7, (%rdx) # sched: [6:1.00]
-; GENERIC-NEXT: rclw %cl, %di # sched: [1:0.50]
-; GENERIC-NEXT: rcrw %cl, %di # sched: [1:0.50]
-; GENERIC-NEXT: rclw %cl, (%rdx) # sched: [6:1.00]
-; GENERIC-NEXT: rcrw %cl, (%rdx) # sched: [6:1.00]
+; GENERIC-NEXT: rclw %di # sched: [2:1.50]
+; GENERIC-NEXT: rcrw %di # sched: [2:1.50]
+; GENERIC-NEXT: rclw (%rdx) # sched: [11:3.50]
+; GENERIC-NEXT: rcrw (%rdx) # sched: [11:3.50]
+; GENERIC-NEXT: rclw $7, %di # sched: [5:4.00]
+; GENERIC-NEXT: rcrw $7, %di # sched: [5:4.00]
+; GENERIC-NEXT: rclw $7, (%rdx) # sched: [11:3.50]
+; GENERIC-NEXT: rcrw $7, (%rdx) # sched: [11:3.50]
+; GENERIC-NEXT: rclw %cl, %di # sched: [5:4.00]
+; GENERIC-NEXT: rcrw %cl, %di # sched: [5:4.00]
+; GENERIC-NEXT: rclw %cl, (%rdx) # sched: [11:3.50]
+; GENERIC-NEXT: rcrw %cl, (%rdx) # sched: [11:3.50]
; GENERIC-NEXT: #NO_APP
; GENERIC-NEXT: retq # sched: [1:1.00]
;
@@ -10209,18 +10209,18 @@ define void @test_rcl_rcr_16(i16 %a0, i16 %a1, i16 *%a2) optsize {
; SANDY-LABEL: test_rcl_rcr_16:
; SANDY: # %bb.0:
; SANDY-NEXT: #APP
-; SANDY-NEXT: rclw %di # sched: [1:0.50]
-; SANDY-NEXT: rcrw %di # sched: [1:0.50]
-; SANDY-NEXT: rclw (%rdx) # sched: [6:1.00]
-; SANDY-NEXT: rcrw (%rdx) # sched: [6:1.00]
-; SANDY-NEXT: rclw $7, %di # sched: [1:0.50]
-; SANDY-NEXT: rcrw $7, %di # sched: [1:0.50]
-; SANDY-NEXT: rclw $7, (%rdx) # sched: [6:1.00]
-; SANDY-NEXT: rcrw $7, (%rdx) # sched: [6:1.00]
-; SANDY-NEXT: rclw %cl, %di # sched: [1:0.50]
-; SANDY-NEXT: rcrw %cl, %di # sched: [1:0.50]
-; SANDY-NEXT: rclw %cl, (%rdx) # sched: [6:1.00]
-; SANDY-NEXT: rcrw %cl, (%rdx) # sched: [6:1.00]
+; SANDY-NEXT: rclw %di # sched: [2:1.50]
+; SANDY-NEXT: rcrw %di # sched: [2:1.50]
+; SANDY-NEXT: rclw (%rdx) # sched: [11:3.50]
+; SANDY-NEXT: rcrw (%rdx) # sched: [11:3.50]
+; SANDY-NEXT: rclw $7, %di # sched: [5:4.00]
+; SANDY-NEXT: rcrw $7, %di # sched: [5:4.00]
+; SANDY-NEXT: rclw $7, (%rdx) # sched: [11:3.50]
+; SANDY-NEXT: rcrw $7, (%rdx) # sched: [11:3.50]
+; SANDY-NEXT: rclw %cl, %di # sched: [5:4.00]
+; SANDY-NEXT: rcrw %cl, %di # sched: [5:4.00]
+; SANDY-NEXT: rclw %cl, (%rdx) # sched: [11:3.50]
+; SANDY-NEXT: rcrw %cl, (%rdx) # sched: [11:3.50]
; SANDY-NEXT: #NO_APP
; SANDY-NEXT: retq # sched: [1:1.00]
;
@@ -10338,18 +10338,18 @@ define void @test_rcl_rcr_32(i32 %a0, i32 %a1, i32 *%a2) optsize {
; GENERIC-LABEL: test_rcl_rcr_32:
; GENERIC: # %bb.0:
; GENERIC-NEXT: #APP
-; GENERIC-NEXT: rcll %edi # sched: [1:0.50]
-; GENERIC-NEXT: rcrl %edi # sched: [1:0.50]
-; GENERIC-NEXT: rcll (%rdx) # sched: [6:1.00]
-; GENERIC-NEXT: rcrl (%rdx) # sched: [6:1.00]
-; GENERIC-NEXT: rcll $7, %edi # sched: [1:0.50]
-; GENERIC-NEXT: rcrl $7, %edi # sched: [1:0.50]
-; GENERIC-NEXT: rcll $7, (%rdx) # sched: [6:1.00]
-; GENERIC-NEXT: rcrl $7, (%rdx) # sched: [6:1.00]
-; GENERIC-NEXT: rcll %cl, %edi # sched: [1:0.50]
-; GENERIC-NEXT: rcrl %cl, %edi # sched: [1:0.50]
-; GENERIC-NEXT: rcll %cl, (%rdx) # sched: [6:1.00]
-; GENERIC-NEXT: rcrl %cl, (%rdx) # sched: [6:1.00]
+; GENERIC-NEXT: rcll %edi # sched: [2:1.50]
+; GENERIC-NEXT: rcrl %edi # sched: [2:1.50]
+; GENERIC-NEXT: rcll (%rdx) # sched: [11:3.50]
+; GENERIC-NEXT: rcrl (%rdx) # sched: [11:3.50]
+; GENERIC-NEXT: rcll $7, %edi # sched: [5:4.00]
+; GENERIC-NEXT: rcrl $7, %edi # sched: [5:4.00]
+; GENERIC-NEXT: rcll $7, (%rdx) # sched: [11:3.50]
+; GENERIC-NEXT: rcrl $7, (%rdx) # sched: [11:3.50]
+; GENERIC-NEXT: rcll %cl, %edi # sched: [5:4.00]
+; GENERIC-NEXT: rcrl %cl, %edi # sched: [5:4.00]
+; GENERIC-NEXT: rcll %cl, (%rdx) # sched: [11:3.50]
+; GENERIC-NEXT: rcrl %cl, (%rdx) # sched: [11:3.50]
; GENERIC-NEXT: #NO_APP
; GENERIC-NEXT: retq # sched: [1:1.00]
;
@@ -10392,18 +10392,18 @@ define void @test_rcl_rcr_32(i32 %a0, i32 %a1, i32 *%a2) optsize {
; SANDY-LABEL: test_rcl_rcr_32:
; SANDY: # %bb.0:
; SANDY-NEXT: #APP
-; SANDY-NEXT: rcll %edi # sched: [1:0.50]
-; SANDY-NEXT: rcrl %edi # sched: [1:0.50]
-; SANDY-NEXT: rcll (%rdx) # sched: [6:1.00]
-; SANDY-NEXT: rcrl (%rdx) # sched: [6:1.00]
-; SANDY-NEXT: rcll $7, %edi # sched: [1:0.50]
-; SANDY-NEXT: rcrl $7, %edi # sched: [1:0.50]
-; SANDY-NEXT: rcll $7, (%rdx) # sched: [6:1.00]
-; SANDY-NEXT: rcrl $7, (%rdx) # sched: [6:1.00]
-; SANDY-NEXT: rcll %cl, %edi # sched: [1:0.50]
-; SANDY-NEXT: rcrl %cl, %edi # sched: [1:0.50]
-; SANDY-NEXT: rcll %cl, (%rdx) # sched: [6:1.00]
-; SANDY-NEXT: rcrl %cl, (%rdx) # sched: [6:1.00]
+; SANDY-NEXT: rcll %edi # sched: [2:1.50]
+; SANDY-NEXT: rcrl %edi # sched: [2:1.50]
+; SANDY-NEXT: rcll (%rdx) # sched: [11:3.50]
+; SANDY-NEXT: rcrl (%rdx) # sched: [11:3.50]
+; SANDY-NEXT: rcll $7, %edi # sched: [5:4.00]
+; SANDY-NEXT: rcrl $7, %edi # sched: [5:4.00]
+; SANDY-NEXT: rcll $7, (%rdx) # sched: [11:3.50]
+; SANDY-NEXT: rcrl $7, (%rdx) # sched: [11:3.50]
+; SANDY-NEXT: rcll %cl, %edi # sched: [5:4.00]
+; SANDY-NEXT: rcrl %cl, %edi # sched: [5:4.00]
+; SANDY-NEXT: rcll %cl, (%rdx) # sched: [11:3.50]
+; SANDY-NEXT: rcrl %cl, (%rdx) # sched: [11:3.50]
; SANDY-NEXT: #NO_APP
; SANDY-NEXT: retq # sched: [1:1.00]
;
@@ -10521,18 +10521,18 @@ define void @test_rcl_rcr_64(i64 %a0, i64 %a1, i64 *%a2) optsize {
; GENERIC-LABEL: test_rcl_rcr_64:
; GENERIC: # %bb.0:
; GENERIC-NEXT: #APP
-; GENERIC-NEXT: rclq %rdi # sched: [1:0.50]
-; GENERIC-NEXT: rcrq %rdi # sched: [1:0.50]
-; GENERIC-NEXT: rclq (%rdx) # sched: [6:1.00]
-; GENERIC-NEXT: rcrq (%rdx) # sched: [6:1.00]
-; GENERIC-NEXT: rclq $7, %rdi # sched: [1:0.50]
-; GENERIC-NEXT: rcrq $7, %rdi # sched: [1:0.50]
-; GENERIC-NEXT: rclq $7, (%rdx) # sched: [6:1.00]
-; GENERIC-NEXT: rcrq $7, (%rdx) # sched: [6:1.00]
-; GENERIC-NEXT: rclq %cl, %rdi # sched: [1:0.50]
-; GENERIC-NEXT: rcrq %cl, %rdi # sched: [1:0.50]
-; GENERIC-NEXT: rclq %cl, (%rdx) # sched: [6:1.00]
-; GENERIC-NEXT: rcrq %cl, (%rdx) # sched: [6:1.00]
+; GENERIC-NEXT: rclq %rdi # sched: [2:1.50]
+; GENERIC-NEXT: rcrq %rdi # sched: [2:1.50]
+; GENERIC-NEXT: rclq (%rdx) # sched: [11:3.50]
+; GENERIC-NEXT: rcrq (%rdx) # sched: [11:3.50]
+; GENERIC-NEXT: rclq $7, %rdi # sched: [5:4.00]
+; GENERIC-NEXT: rcrq $7, %rdi # sched: [5:4.00]
+; GENERIC-NEXT: rclq $7, (%rdx) # sched: [11:3.50]
+; GENERIC-NEXT: rcrq $7, (%rdx) # sched: [11:3.50]
+; GENERIC-NEXT: rclq %cl, %rdi # sched: [5:4.00]
+; GENERIC-NEXT: rcrq %cl, %rdi # sched: [5:4.00]
+; GENERIC-NEXT: rclq %cl, (%rdx) # sched: [11:3.50]
+; GENERIC-NEXT: rcrq %cl, (%rdx) # sched: [11:3.50]
; GENERIC-NEXT: #NO_APP
; GENERIC-NEXT: retq # sched: [1:1.00]
;
@@ -10575,18 +10575,18 @@ define void @test_rcl_rcr_64(i64 %a0, i64 %a1, i64 *%a2) optsize {
; SANDY-LABEL: test_rcl_rcr_64:
; SANDY: # %bb.0:
; SANDY-NEXT: #APP
-; SANDY-NEXT: rclq %rdi # sched: [1:0.50]
-; SANDY-NEXT: rcrq %rdi # sched: [1:0.50]
-; SANDY-NEXT: rclq (%rdx) # sched: [6:1.00]
-; SANDY-NEXT: rcrq (%rdx) # sched: [6:1.00]
-; SANDY-NEXT: rclq $7, %rdi # sched: [1:0.50]
-; SANDY-NEXT: rcrq $7, %rdi # sched: [1:0.50]
-; SANDY-NEXT: rclq $7, (%rdx) # sched: [6:1.00]
-; SANDY-NEXT: rcrq $7, (%rdx) # sched: [6:1.00]
-; SANDY-NEXT: rclq %cl, %rdi # sched: [1:0.50]
-; SANDY-NEXT: rcrq %cl, %rdi # sched: [1:0.50]
-; SANDY-NEXT: rclq %cl, (%rdx) # sched: [6:1.00]
-; SANDY-NEXT: rcrq %cl, (%rdx) # sched: [6:1.00]
+; SANDY-NEXT: rclq %rdi # sched: [2:1.50]
+; SANDY-NEXT: rcrq %rdi # sched: [2:1.50]
+; SANDY-NEXT: rclq (%rdx) # sched: [11:3.50]
+; SANDY-NEXT: rcrq (%rdx) # sched: [11:3.50]
+; SANDY-NEXT: rclq $7, %rdi # sched: [5:4.00]
+; SANDY-NEXT: rcrq $7, %rdi # sched: [5:4.00]
+; SANDY-NEXT: rclq $7, (%rdx) # sched: [11:3.50]
+; SANDY-NEXT: rcrq $7, (%rdx) # sched: [11:3.50]
+; SANDY-NEXT: rclq %cl, %rdi # sched: [5:4.00]
+; SANDY-NEXT: rcrq %cl, %rdi # sched: [5:4.00]
+; SANDY-NEXT: rclq %cl, (%rdx) # sched: [11:3.50]
+; SANDY-NEXT: rcrq %cl, (%rdx) # sched: [11:3.50]
; SANDY-NEXT: #NO_APP
; SANDY-NEXT: retq # sched: [1:1.00]
;
OpenPOWER on IntegriCloud