summaryrefslogtreecommitdiffstats
path: root/llvm
diff options
context:
space:
mode:
authorCraig Topper <craig.topper@intel.com>2018-03-20 01:30:21 +0000
committerCraig Topper <craig.topper@intel.com>2018-03-20 01:30:21 +0000
commit2330d6cd550203d6ebc262e87b4a736e70ffad74 (patch)
treedad51eafedb21b03d8cc8400b44ba23ef5d03067 /llvm
parenta9e74a9165cef68f3c77dd4013b848c31d85a8f9 (diff)
downloadbcm5719-llvm-2330d6cd550203d6ebc262e87b4a736e70ffad74.tar.gz
bcm5719-llvm-2330d6cd550203d6ebc262e87b4a736e70ffad74.zip
[X86] Fix the SNB scheduler for BLENDVB.
PBLENDVBrr0 was with the memory version of VBLENDVB and PBLENDVBrm0 was missing. llvm-svn: 327937
Diffstat (limited to 'llvm')
-rw-r--r--llvm/lib/Target/X86/X86SchedSandyBridge.td3
-rw-r--r--llvm/test/CodeGen/X86/sse41-schedule.ll4
2 files changed, 4 insertions, 3 deletions
diff --git a/llvm/lib/Target/X86/X86SchedSandyBridge.td b/llvm/lib/Target/X86/X86SchedSandyBridge.td
index 1e12fba1cff..fedadb128e3 100644
--- a/llvm/lib/Target/X86/X86SchedSandyBridge.td
+++ b/llvm/lib/Target/X86/X86SchedSandyBridge.td
@@ -698,6 +698,7 @@ def SBWriteResGroup10 : SchedWriteRes<[SBPort15]> {
let NumMicroOps = 2;
let ResourceCycles = [2];
}
+def: InstRW<[SBWriteResGroup10], (instregex "PBLENDVBrr0")>;
def: InstRW<[SBWriteResGroup10], (instregex "VPBLENDVBrr")>;
def SBWriteResGroup11 : SchedWriteRes<[SBPort015]> {
@@ -1917,7 +1918,7 @@ def SBWriteResGroup76 : SchedWriteRes<[SBPort23,SBPort15]> {
let NumMicroOps = 3;
let ResourceCycles = [1,2];
}
-def: InstRW<[SBWriteResGroup76], (instregex "PBLENDVBrr0")>;
+def: InstRW<[SBWriteResGroup76], (instregex "PBLENDVBrm0")>;
def: InstRW<[SBWriteResGroup76], (instregex "VPBLENDVBrm")>;
def SBWriteResGroup77 : SchedWriteRes<[SBPort0,SBPort1,SBPort23]> {
diff --git a/llvm/test/CodeGen/X86/sse41-schedule.ll b/llvm/test/CodeGen/X86/sse41-schedule.ll
index 17188884983..42a17b3d4b6 100644
--- a/llvm/test/CodeGen/X86/sse41-schedule.ll
+++ b/llvm/test/CodeGen/X86/sse41-schedule.ll
@@ -709,8 +709,8 @@ define <16 x i8> @test_pblendvb(<16 x i8> %a0, <16 x i8> %a1, <16 x i8> %a2, <16
; GENERIC: # %bb.0:
; GENERIC-NEXT: movdqa %xmm0, %xmm3 # sched: [1:0.33]
; GENERIC-NEXT: movaps %xmm2, %xmm0 # sched: [1:1.00]
-; GENERIC-NEXT: pblendvb %xmm0, %xmm1, %xmm3 # sched: [8:1.00]
-; GENERIC-NEXT: pblendvb %xmm0, (%rdi), %xmm3 # sched: [6:1.00]
+; GENERIC-NEXT: pblendvb %xmm0, %xmm1, %xmm3 # sched: [2:1.00]
+; GENERIC-NEXT: pblendvb %xmm0, (%rdi), %xmm3 # sched: [8:1.00]
; GENERIC-NEXT: movdqa %xmm3, %xmm0 # sched: [1:0.33]
; GENERIC-NEXT: retq # sched: [1:1.00]
;
OpenPOWER on IntegriCloud