[llvm-commits] [llvm] r138516 - /llvm/trunk/lib/Target/X86/X86InstrSSE.td

Bruno Cardoso Lopes bruno.cardoso at gmail.com
Wed Aug 24 16:18:00 PDT 2011


Author: bruno
Date: Wed Aug 24 18:17:59 2011
New Revision: 138516

URL: http://llvm.org/viewvc/llvm-project?rev=138516&view=rev
Log:
Move MOVHLPS patterns close to MOVHLPS definition, and duplicate the
pattern for 128-bit AVX mode.

Modified:
    llvm/trunk/lib/Target/X86/X86InstrSSE.td

Modified: llvm/trunk/lib/Target/X86/X86InstrSSE.td
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/X86/X86InstrSSE.td?rev=138516&r1=138515&r2=138516&view=diff
==============================================================================
--- llvm/trunk/lib/Target/X86/X86InstrSSE.td (original)
+++ llvm/trunk/lib/Target/X86/X86InstrSSE.td Wed Aug 24 18:17:59 2011
@@ -514,6 +514,11 @@
     def : Pat<(v4i32 (movhlps_undef VR128:$src1, (undef))),
               (VMOVHLPSrr VR128:$src1, VR128:$src1)>;
   }
+
+  def : Pat<(v4f32 (X86Movhlps VR128:$src1, VR128:$src2)),
+            (VMOVHLPSrr VR128:$src1, VR128:$src2)>;
+  def : Pat<(v4i32 (X86Movhlps VR128:$src1, VR128:$src2)),
+            (VMOVHLPSrr VR128:$src1, VR128:$src2)>;
 }
 
 let Predicates = [HasSSE1] in {
@@ -557,6 +562,11 @@
     def : Pat<(v4i32 (movhlps_undef VR128:$src1, (undef))),
               (MOVHLPSrr VR128:$src1, VR128:$src1)>;
   }
+
+  def : Pat<(v4f32 (X86Movhlps VR128:$src1, VR128:$src2)),
+            (MOVHLPSrr VR128:$src1, VR128:$src2)>;
+  def : Pat<(v4i32 (X86Movhlps VR128:$src1, VR128:$src2)),
+            (MOVHLPSrr VR128:$src1, VR128:$src2)>;
 }
 
 //===----------------------------------------------------------------------===//
@@ -6011,12 +6021,6 @@
 // The AVX version of some but not all of them are described here, and more
 // should come in a near future.
 
-// Shuffle with MOVHLPS instruction
-def : Pat<(v4f32 (X86Movhlps VR128:$src1, VR128:$src2)),
-          (MOVHLPSrr VR128:$src1, VR128:$src2)>;
-def : Pat<(v4i32 (X86Movhlps VR128:$src1, VR128:$src2)),
-          (MOVHLPSrr VR128:$src1, VR128:$src2)>;
-
 // Shuffle with MOVDDUP instruction
 def : Pat<(X86Movddup (memopv2f64 addr:$src)),
           (VMOVDDUPrm addr:$src)>, Requires<[HasAVX]>;





More information about the llvm-commits mailing list