diff options
author | Craig Topper <craig.topper@intel.com> | 2018-03-20 01:30:21 +0000 |
---|---|---|
committer | Craig Topper <craig.topper@intel.com> | 2018-03-20 01:30:21 +0000 |
commit | 2330d6cd550203d6ebc262e87b4a736e70ffad74 (patch) | |
tree | dad51eafedb21b03d8cc8400b44ba23ef5d03067 /llvm | |
parent | a9e74a9165cef68f3c77dd4013b848c31d85a8f9 (diff) | |
download | bcm5719-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.td | 3 | ||||
-rw-r--r-- | llvm/test/CodeGen/X86/sse41-schedule.ll | 4 |
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] ; |