summaryrefslogtreecommitdiffstats
path: root/llvm/test/CodeGen
diff options
context:
space:
mode:
authorCraig Topper <craig.topper@intel.com>2018-01-25 06:57:42 +0000
committerCraig Topper <craig.topper@intel.com>2018-01-25 06:57:42 +0000
commitb369cdbaadb9ed3bc92d51f4361233d065ecdd4b (patch)
tree57471bf92541f339ade3f8bcb63d13146951d3df /llvm/test/CodeGen
parent795b17f4fb47a6f963ad861a4a18d8d4e11701a5 (diff)
downloadbcm5719-llvm-b369cdbaadb9ed3bc92d51f4361233d065ecdd4b.tar.gz
bcm5719-llvm-b369cdbaadb9ed3bc92d51f4361233d065ecdd4b.zip
[X86] Expand IMUL/MUL instregexs in Intel scheduler models. Add load latency to some of them in SkylakeClient model.
The regular expressions and the imul names caused some instructions to be matched by multiple regexs creating unpredictable results. This changes them all to use explicit instrs instead. While doing this I also found that some instructions in Skylake were missing load latency so I fixed that too. llvm-svn: 323406
Diffstat (limited to 'llvm/test/CodeGen')
-rw-r--r--llvm/test/CodeGen/X86/schedule-x86_64.ll58
1 files changed, 29 insertions, 29 deletions
diff --git a/llvm/test/CodeGen/X86/schedule-x86_64.ll b/llvm/test/CodeGen/X86/schedule-x86_64.ll
index 38874dd6d1a..dda4d7b8f2e 100644
--- a/llvm/test/CodeGen/X86/schedule-x86_64.ll
+++ b/llvm/test/CodeGen/X86/schedule-x86_64.ll
@@ -5707,13 +5707,13 @@ define void @test_imul_16(i16 %a0, i16* %a1) optsize {
; BROADWELL-NEXT: imulw %di # sched: [4:1.00]
; BROADWELL-NEXT: imulw (%rsi) # sched: [8:1.00]
; BROADWELL-NEXT: imulw %di, %di # sched: [3:1.00]
-; BROADWELL-NEXT: imulw (%rsi), %di # sched: [4:1.00]
+; BROADWELL-NEXT: imulw (%rsi), %di # sched: [8:1.00]
; BROADWELL-NEXT: imulw $511, %di, %di # imm = 0x1FF
; BROADWELL-NEXT: # sched: [3:1.00]
; BROADWELL-NEXT: imulw $511, (%rsi), %di # imm = 0x1FF
-; BROADWELL-NEXT: # sched: [4:1.00]
+; BROADWELL-NEXT: # sched: [8:1.00]
; BROADWELL-NEXT: imulw $7, %di, %di # sched: [3:1.00]
-; BROADWELL-NEXT: imulw $7, (%rsi), %di # sched: [4:1.00]
+; BROADWELL-NEXT: imulw $7, (%rsi), %di # sched: [8:1.00]
; BROADWELL-NEXT: #NO_APP
; BROADWELL-NEXT: retq # sched: [7:1.00]
;
@@ -5721,15 +5721,15 @@ define void @test_imul_16(i16 %a0, i16* %a1) optsize {
; SKYLAKE: # %bb.0:
; SKYLAKE-NEXT: #APP
; SKYLAKE-NEXT: imulw %di # sched: [4:1.00]
-; SKYLAKE-NEXT: imulw (%rsi) # sched: [3:1.00]
+; SKYLAKE-NEXT: imulw (%rsi) # sched: [8:1.00]
; SKYLAKE-NEXT: imulw %di, %di # sched: [3:1.00]
-; SKYLAKE-NEXT: imulw (%rsi), %di # sched: [4:1.00]
+; SKYLAKE-NEXT: imulw (%rsi), %di # sched: [8:1.00]
; SKYLAKE-NEXT: imulw $511, %di, %di # imm = 0x1FF
; SKYLAKE-NEXT: # sched: [3:1.00]
; SKYLAKE-NEXT: imulw $511, (%rsi), %di # imm = 0x1FF
-; SKYLAKE-NEXT: # sched: [4:1.00]
+; SKYLAKE-NEXT: # sched: [8:1.00]
; SKYLAKE-NEXT: imulw $7, %di, %di # sched: [3:1.00]
-; SKYLAKE-NEXT: imulw $7, (%rsi), %di # sched: [4:1.00]
+; SKYLAKE-NEXT: imulw $7, (%rsi), %di # sched: [8:1.00]
; SKYLAKE-NEXT: #NO_APP
; SKYLAKE-NEXT: retq # sched: [7:1.00]
;
@@ -5739,13 +5739,13 @@ define void @test_imul_16(i16 %a0, i16* %a1) optsize {
; SKX-NEXT: imulw %di # sched: [4:1.00]
; SKX-NEXT: imulw (%rsi) # sched: [8:1.00]
; SKX-NEXT: imulw %di, %di # sched: [3:1.00]
-; SKX-NEXT: imulw (%rsi), %di # sched: [4:1.00]
+; SKX-NEXT: imulw (%rsi), %di # sched: [8:1.00]
; SKX-NEXT: imulw $511, %di, %di # imm = 0x1FF
; SKX-NEXT: # sched: [3:1.00]
; SKX-NEXT: imulw $511, (%rsi), %di # imm = 0x1FF
-; SKX-NEXT: # sched: [4:1.00]
+; SKX-NEXT: # sched: [8:1.00]
; SKX-NEXT: imulw $7, %di, %di # sched: [3:1.00]
-; SKX-NEXT: imulw $7, (%rsi), %di # sched: [4:1.00]
+; SKX-NEXT: imulw $7, (%rsi), %di # sched: [8:1.00]
; SKX-NEXT: #NO_APP
; SKX-NEXT: retq # sched: [7:1.00]
;
@@ -5870,13 +5870,13 @@ define void @test_imul_32(i32 %a0, i32* %a1) optsize {
; BROADWELL-NEXT: imull %edi # sched: [4:1.00]
; BROADWELL-NEXT: imull (%rsi) # sched: [8:1.00]
; BROADWELL-NEXT: imull %edi, %edi # sched: [3:1.00]
-; BROADWELL-NEXT: imull (%rsi), %edi # sched: [4:1.00]
+; BROADWELL-NEXT: imull (%rsi), %edi # sched: [8:1.00]
; BROADWELL-NEXT: imull $665536, %edi, %edi # imm = 0xA27C0
; BROADWELL-NEXT: # sched: [3:1.00]
; BROADWELL-NEXT: imull $665536, (%rsi), %edi # imm = 0xA27C0
-; BROADWELL-NEXT: # sched: [4:1.00]
+; BROADWELL-NEXT: # sched: [8:1.00]
; BROADWELL-NEXT: imull $7, %edi, %edi # sched: [3:1.00]
-; BROADWELL-NEXT: imull $7, (%rsi), %edi # sched: [4:1.00]
+; BROADWELL-NEXT: imull $7, (%rsi), %edi # sched: [8:1.00]
; BROADWELL-NEXT: #NO_APP
; BROADWELL-NEXT: retq # sched: [7:1.00]
;
@@ -5884,15 +5884,15 @@ define void @test_imul_32(i32 %a0, i32* %a1) optsize {
; SKYLAKE: # %bb.0:
; SKYLAKE-NEXT: #APP
; SKYLAKE-NEXT: imull %edi # sched: [5:1.00]
-; SKYLAKE-NEXT: imull (%rsi) # sched: [3:1.00]
+; SKYLAKE-NEXT: imull (%rsi) # sched: [8:1.00]
; SKYLAKE-NEXT: imull %edi, %edi # sched: [3:1.00]
-; SKYLAKE-NEXT: imull (%rsi), %edi # sched: [5:1.00]
+; SKYLAKE-NEXT: imull (%rsi), %edi # sched: [8:1.00]
; SKYLAKE-NEXT: imull $665536, %edi, %edi # imm = 0xA27C0
; SKYLAKE-NEXT: # sched: [3:1.00]
; SKYLAKE-NEXT: imull $665536, (%rsi), %edi # imm = 0xA27C0
-; SKYLAKE-NEXT: # sched: [5:1.00]
+; SKYLAKE-NEXT: # sched: [8:1.00]
; SKYLAKE-NEXT: imull $7, %edi, %edi # sched: [3:1.00]
-; SKYLAKE-NEXT: imull $7, (%rsi), %edi # sched: [5:1.00]
+; SKYLAKE-NEXT: imull $7, (%rsi), %edi # sched: [8:1.00]
; SKYLAKE-NEXT: #NO_APP
; SKYLAKE-NEXT: retq # sched: [7:1.00]
;
@@ -5902,13 +5902,13 @@ define void @test_imul_32(i32 %a0, i32* %a1) optsize {
; SKX-NEXT: imull %edi # sched: [4:1.00]
; SKX-NEXT: imull (%rsi) # sched: [8:1.00]
; SKX-NEXT: imull %edi, %edi # sched: [3:1.00]
-; SKX-NEXT: imull (%rsi), %edi # sched: [4:1.00]
+; SKX-NEXT: imull (%rsi), %edi # sched: [8:1.00]
; SKX-NEXT: imull $665536, %edi, %edi # imm = 0xA27C0
; SKX-NEXT: # sched: [3:1.00]
; SKX-NEXT: imull $665536, (%rsi), %edi # imm = 0xA27C0
-; SKX-NEXT: # sched: [4:1.00]
+; SKX-NEXT: # sched: [8:1.00]
; SKX-NEXT: imull $7, %edi, %edi # sched: [3:1.00]
-; SKX-NEXT: imull $7, (%rsi), %edi # sched: [4:1.00]
+; SKX-NEXT: imull $7, (%rsi), %edi # sched: [8:1.00]
; SKX-NEXT: #NO_APP
; SKX-NEXT: retq # sched: [7:1.00]
;
@@ -6033,13 +6033,13 @@ define void @test_imul_64(i64 %a0, i64* %a1) optsize {
; BROADWELL-NEXT: imulq %rdi # sched: [4:1.00]
; BROADWELL-NEXT: imulq (%rsi) # sched: [8:1.00]
; BROADWELL-NEXT: imulq %rdi, %rdi # sched: [3:1.00]
-; BROADWELL-NEXT: imulq (%rsi), %rdi # sched: [4:1.00]
+; BROADWELL-NEXT: imulq (%rsi), %rdi # sched: [8:1.00]
; BROADWELL-NEXT: imulq $665536, %rdi, %rdi # imm = 0xA27C0
; BROADWELL-NEXT: # sched: [3:1.00]
; BROADWELL-NEXT: imulq $665536, (%rsi), %rdi # imm = 0xA27C0
-; BROADWELL-NEXT: # sched: [4:1.00]
+; BROADWELL-NEXT: # sched: [8:1.00]
; BROADWELL-NEXT: imulq $7, %rdi, %rdi # sched: [3:1.00]
-; BROADWELL-NEXT: imulq $7, (%rsi), %rdi # sched: [4:1.00]
+; BROADWELL-NEXT: imulq $7, (%rsi), %rdi # sched: [8:1.00]
; BROADWELL-NEXT: #NO_APP
; BROADWELL-NEXT: retq # sched: [7:1.00]
;
@@ -6049,13 +6049,13 @@ define void @test_imul_64(i64 %a0, i64* %a1) optsize {
; SKYLAKE-NEXT: imulq %rdi # sched: [4:1.00]
; SKYLAKE-NEXT: imulq (%rsi) # sched: [8:1.00]
; SKYLAKE-NEXT: imulq %rdi, %rdi # sched: [3:1.00]
-; SKYLAKE-NEXT: imulq (%rsi), %rdi # sched: [4:1.00]
+; SKYLAKE-NEXT: imulq (%rsi), %rdi # sched: [8:1.00]
; SKYLAKE-NEXT: imulq $665536, %rdi, %rdi # imm = 0xA27C0
; SKYLAKE-NEXT: # sched: [3:1.00]
; SKYLAKE-NEXT: imulq $665536, (%rsi), %rdi # imm = 0xA27C0
-; SKYLAKE-NEXT: # sched: [4:1.00]
+; SKYLAKE-NEXT: # sched: [8:1.00]
; SKYLAKE-NEXT: imulq $7, %rdi, %rdi # sched: [3:1.00]
-; SKYLAKE-NEXT: imulq $7, (%rsi), %rdi # sched: [4:1.00]
+; SKYLAKE-NEXT: imulq $7, (%rsi), %rdi # sched: [8:1.00]
; SKYLAKE-NEXT: #NO_APP
; SKYLAKE-NEXT: retq # sched: [7:1.00]
;
@@ -6065,13 +6065,13 @@ define void @test_imul_64(i64 %a0, i64* %a1) optsize {
; SKX-NEXT: imulq %rdi # sched: [4:1.00]
; SKX-NEXT: imulq (%rsi) # sched: [8:1.00]
; SKX-NEXT: imulq %rdi, %rdi # sched: [3:1.00]
-; SKX-NEXT: imulq (%rsi), %rdi # sched: [4:1.00]
+; SKX-NEXT: imulq (%rsi), %rdi # sched: [8:1.00]
; SKX-NEXT: imulq $665536, %rdi, %rdi # imm = 0xA27C0
; SKX-NEXT: # sched: [3:1.00]
; SKX-NEXT: imulq $665536, (%rsi), %rdi # imm = 0xA27C0
-; SKX-NEXT: # sched: [4:1.00]
+; SKX-NEXT: # sched: [8:1.00]
; SKX-NEXT: imulq $7, %rdi, %rdi # sched: [3:1.00]
-; SKX-NEXT: imulq $7, (%rsi), %rdi # sched: [4:1.00]
+; SKX-NEXT: imulq $7, (%rsi), %rdi # sched: [8:1.00]
; SKX-NEXT: #NO_APP
; SKX-NEXT: retq # sched: [7:1.00]
;
OpenPOWER on IntegriCloud