[llvm] r316790 - [X86] Teach fastisel to use VLX VMOVNTDQA for v4f64 and 256-bit integers when available.

Craig Topper via llvm-commits llvm-commits at lists.llvm.org
Fri Oct 27 13:13:10 PDT 2017


Author: ctopper
Date: Fri Oct 27 13:13:10 2017
New Revision: 316790

URL: http://llvm.org/viewvc/llvm-project?rev=316790&view=rev
Log:
[X86] Teach fastisel to use VLX VMOVNTDQA for v4f64 and 256-bit integers when available.

This looks to have been missed from r280682.

Modified:
    llvm/trunk/lib/Target/X86/X86FastISel.cpp

Modified: llvm/trunk/lib/Target/X86/X86FastISel.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/X86/X86FastISel.cpp?rev=316790&r1=316789&r2=316790&view=diff
==============================================================================
--- llvm/trunk/lib/Target/X86/X86FastISel.cpp (original)
+++ llvm/trunk/lib/Target/X86/X86FastISel.cpp Fri Oct 27 13:13:10 2017
@@ -423,7 +423,7 @@ bool X86FastISel::X86FastEmitLoad(EVT VT
   case MVT::v4f64:
     assert(HasAVX);
     if (IsNonTemporal && Alignment >= 32 && HasAVX2)
-      Opc = X86::VMOVNTDQAYrm;
+      Opc = HasVLX ? X86::VMOVNTDQAZ256rm : X86::VMOVNTDQAYrm;
     else if (IsNonTemporal && Alignment >= 16)
       return false; // Force split for X86::VMOVNTDQArm
     else if (Alignment >= 32)
@@ -438,7 +438,7 @@ bool X86FastISel::X86FastEmitLoad(EVT VT
   case MVT::v32i8:
     assert(HasAVX);
     if (IsNonTemporal && Alignment >= 32 && HasAVX2)
-      Opc = X86::VMOVNTDQAYrm;
+      Opc = HasVLX ? X86::VMOVNTDQAZ256rm : X86::VMOVNTDQAYrm;
     else if (IsNonTemporal && Alignment >= 16)
       return false; // Force split for X86::VMOVNTDQArm
     else if (Alignment >= 32)




More information about the llvm-commits mailing list