[llvm] r327937 - [X86] Fix the SNB scheduler for BLENDVB.

Craig Topper via llvm-commits llvm-commits at lists.llvm.org
Mon Mar 19 18:30:21 PDT 2018


Author: ctopper
Date: Mon Mar 19 18:30:21 2018
New Revision: 327937

URL: http://llvm.org/viewvc/llvm-project?rev=327937&view=rev
Log:
[X86] Fix the SNB scheduler for BLENDVB.

PBLENDVBrr0 was with the memory version of VBLENDVB and PBLENDVBrm0 was missing.

Modified:
    llvm/trunk/lib/Target/X86/X86SchedSandyBridge.td
    llvm/trunk/test/CodeGen/X86/sse41-schedule.ll

Modified: llvm/trunk/lib/Target/X86/X86SchedSandyBridge.td
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/X86/X86SchedSandyBridge.td?rev=327937&r1=327936&r2=327937&view=diff
==============================================================================
--- llvm/trunk/lib/Target/X86/X86SchedSandyBridge.td (original)
+++ llvm/trunk/lib/Target/X86/X86SchedSandyBridge.td Mon Mar 19 18:30:21 2018
@@ -698,6 +698,7 @@ def SBWriteResGroup10 : SchedWriteRes<[S
   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<[S
   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]> {

Modified: llvm/trunk/test/CodeGen/X86/sse41-schedule.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/sse41-schedule.ll?rev=327937&r1=327936&r2=327937&view=diff
==============================================================================
--- llvm/trunk/test/CodeGen/X86/sse41-schedule.ll (original)
+++ llvm/trunk/test/CodeGen/X86/sse41-schedule.ll Mon Mar 19 18:30:21 2018
@@ -709,8 +709,8 @@ define <16 x i8> @test_pblendvb(<16 x i8
 ; 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]
 ;




More information about the llvm-commits mailing list