[X86][SKL] Updated scheduling information for the SkylakeClient target
Updated the scheduling information for the SkylakeClient target with the following changes:
1. regrouped the instructions after adding load and store latencies.
2. regrouped the instructions after adding identified missing ports in several groups.
The changes were made after revisiting the latencies impact of all the load and store uOps.
Reviewers: zvi, RKSimon, craig.topper
Differential Revision: https://reviews.llvm.org/D38727
Change-Id: I778a308cc11e490e8fa5e27e2047412a1dca029f
llvm-svn: 315978
diff --git a/llvm/test/CodeGen/X86/sse42-schedule.ll b/llvm/test/CodeGen/X86/sse42-schedule.ll
index 7e6adf4..42f73a6 100644
--- a/llvm/test/CodeGen/X86/sse42-schedule.ll
+++ b/llvm/test/CodeGen/X86/sse42-schedule.ll
@@ -43,7 +43,7 @@
; SKYLAKE-NEXT: crc32b %sil, %edi # sched: [3:1.00]
; SKYLAKE-NEXT: crc32b (%rdx), %edi # sched: [8:1.00]
; SKYLAKE-NEXT: movl %edi, %eax # sched: [1:0.25]
-; SKYLAKE-NEXT: retq # sched: [2:1.00]
+; SKYLAKE-NEXT: retq # sched: [7:1.00]
;
; SKX-LABEL: crc32_32_8:
; SKX: # BB#0:
@@ -106,7 +106,7 @@
; SKYLAKE-NEXT: crc32w %si, %edi # sched: [3:1.00]
; SKYLAKE-NEXT: crc32w (%rdx), %edi # sched: [8:1.00]
; SKYLAKE-NEXT: movl %edi, %eax # sched: [1:0.25]
-; SKYLAKE-NEXT: retq # sched: [2:1.00]
+; SKYLAKE-NEXT: retq # sched: [7:1.00]
;
; SKX-LABEL: crc32_32_16:
; SKX: # BB#0:
@@ -169,7 +169,7 @@
; SKYLAKE-NEXT: crc32l %esi, %edi # sched: [3:1.00]
; SKYLAKE-NEXT: crc32l (%rdx), %edi # sched: [8:1.00]
; SKYLAKE-NEXT: movl %edi, %eax # sched: [1:0.25]
-; SKYLAKE-NEXT: retq # sched: [2:1.00]
+; SKYLAKE-NEXT: retq # sched: [7:1.00]
;
; SKX-LABEL: crc32_32_32:
; SKX: # BB#0:
@@ -232,7 +232,7 @@
; SKYLAKE-NEXT: crc32b %sil, %edi # sched: [3:1.00]
; SKYLAKE-NEXT: crc32b (%rdx), %edi # sched: [8:1.00]
; SKYLAKE-NEXT: movq %rdi, %rax # sched: [1:0.25]
-; SKYLAKE-NEXT: retq # sched: [2:1.00]
+; SKYLAKE-NEXT: retq # sched: [7:1.00]
;
; SKX-LABEL: crc32_64_8:
; SKX: # BB#0:
@@ -295,7 +295,7 @@
; SKYLAKE-NEXT: crc32q %rsi, %rdi # sched: [3:1.00]
; SKYLAKE-NEXT: crc32q (%rdx), %rdi # sched: [8:1.00]
; SKYLAKE-NEXT: movq %rdi, %rax # sched: [1:0.25]
-; SKYLAKE-NEXT: retq # sched: [2:1.00]
+; SKYLAKE-NEXT: retq # sched: [7:1.00]
;
; SKX-LABEL: crc32_64_64:
; SKX: # BB#0:
@@ -385,10 +385,10 @@
; SKYLAKE-NEXT: movl %ecx, %esi # sched: [1:0.25]
; SKYLAKE-NEXT: movl $7, %eax # sched: [1:0.25]
; SKYLAKE-NEXT: movl $7, %edx # sched: [1:0.25]
-; SKYLAKE-NEXT: vpcmpestri $7, (%rdi), %xmm0 # sched: [18:4.00]
+; SKYLAKE-NEXT: vpcmpestri $7, (%rdi), %xmm0 # sched: [24:4.00]
; SKYLAKE-NEXT: # kill: %ECX<def> %ECX<kill> %RCX<def>
; SKYLAKE-NEXT: leal (%rcx,%rsi), %eax # sched: [1:0.50]
-; SKYLAKE-NEXT: retq # sched: [2:1.00]
+; SKYLAKE-NEXT: retq # sched: [7:1.00]
;
; SKX-LABEL: test_pcmpestri:
; SKX: # BB#0:
@@ -484,8 +484,8 @@
; SKYLAKE-NEXT: vpcmpestrm $7, %xmm1, %xmm0 # sched: [19:4.00]
; SKYLAKE-NEXT: movl $7, %eax # sched: [1:0.25]
; SKYLAKE-NEXT: movl $7, %edx # sched: [1:0.25]
-; SKYLAKE-NEXT: vpcmpestrm $7, (%rdi), %xmm0 # sched: [19:4.00]
-; SKYLAKE-NEXT: retq # sched: [2:1.00]
+; SKYLAKE-NEXT: vpcmpestrm $7, (%rdi), %xmm0 # sched: [25:4.00]
+; SKYLAKE-NEXT: retq # sched: [7:1.00]
;
; SKX-LABEL: test_pcmpestrm:
; SKX: # BB#0:
@@ -564,10 +564,10 @@
; SKYLAKE: # BB#0:
; SKYLAKE-NEXT: vpcmpistri $7, %xmm1, %xmm0 # sched: [10:3.00]
; SKYLAKE-NEXT: movl %ecx, %eax # sched: [1:0.25]
-; SKYLAKE-NEXT: vpcmpistri $7, (%rdi), %xmm0 # sched: [10:3.00]
+; SKYLAKE-NEXT: vpcmpistri $7, (%rdi), %xmm0 # sched: [16:3.00]
; SKYLAKE-NEXT: # kill: %ECX<def> %ECX<kill> %RCX<def>
; SKYLAKE-NEXT: leal (%rcx,%rax), %eax # sched: [1:0.50]
-; SKYLAKE-NEXT: retq # sched: [2:1.00]
+; SKYLAKE-NEXT: retq # sched: [7:1.00]
;
; SKX-LABEL: test_pcmpistri:
; SKX: # BB#0:
@@ -631,8 +631,8 @@
; SKYLAKE-LABEL: test_pcmpistrm:
; SKYLAKE: # BB#0:
; SKYLAKE-NEXT: vpcmpistrm $7, %xmm1, %xmm0 # sched: [10:3.00]
-; SKYLAKE-NEXT: vpcmpistrm $7, (%rdi), %xmm0 # sched: [10:3.00]
-; SKYLAKE-NEXT: retq # sched: [2:1.00]
+; SKYLAKE-NEXT: vpcmpistrm $7, (%rdi), %xmm0 # sched: [16:3.00]
+; SKYLAKE-NEXT: retq # sched: [7:1.00]
;
; SKX-LABEL: test_pcmpistrm:
; SKX: # BB#0:
@@ -686,8 +686,8 @@
; SKYLAKE-LABEL: test_pcmpgtq:
; SKYLAKE: # BB#0:
; SKYLAKE-NEXT: vpcmpgtq %xmm1, %xmm0, %xmm0 # sched: [3:1.00]
-; SKYLAKE-NEXT: vpcmpgtq (%rdi), %xmm0, %xmm0 # sched: [3:1.00]
-; SKYLAKE-NEXT: retq # sched: [2:1.00]
+; SKYLAKE-NEXT: vpcmpgtq (%rdi), %xmm0, %xmm0 # sched: [9:1.00]
+; SKYLAKE-NEXT: retq # sched: [7:1.00]
;
; SKX-LABEL: test_pcmpgtq:
; SKX: # BB#0:
@@ -744,8 +744,8 @@
; SKYLAKE-LABEL: test_pclmulqdq:
; SKYLAKE: # BB#0:
; SKYLAKE-NEXT: vpclmulqdq $0, %xmm1, %xmm0, %xmm0 # sched: [6:1.00]
-; SKYLAKE-NEXT: vpclmulqdq $0, (%rdi), %xmm0, %xmm0 # sched: [6:1.00]
-; SKYLAKE-NEXT: retq # sched: [2:1.00]
+; SKYLAKE-NEXT: vpclmulqdq $0, (%rdi), %xmm0, %xmm0 # sched: [12:1.00]
+; SKYLAKE-NEXT: retq # sched: [7:1.00]
;
; SKX-LABEL: test_pclmulqdq:
; SKX: # BB#0: