OSDN Git Service

Add 128-bit AVX versions of movshdup/mosldup
authorBruno Cardoso Lopes <bruno.cardoso@gmail.com>
Tue, 26 Jul 2011 02:39:23 +0000 (02:39 +0000)
committerBruno Cardoso Lopes <bruno.cardoso@gmail.com>
Tue, 26 Jul 2011 02:39:23 +0000 (02:39 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@136048 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/X86/X86InstrSSE.td

index 95e80b9..6e46b3f 100644 (file)
@@ -3260,6 +3260,17 @@ let Predicates = [HasSSE3] in {
             (MOVSLDUPrm addr:$src)>;
 }
 
+let Predicates = [HasAVX] in {
+  def : Pat<(v4i32 (X86Movshdup VR128:$src)),
+            (VMOVSHDUPrr VR128:$src)>;
+  def : Pat<(v4i32 (X86Movshdup (bc_v4i32 (memopv2i64 addr:$src)))),
+            (VMOVSHDUPrm addr:$src)>;
+  def : Pat<(v4i32 (X86Movsldup VR128:$src)),
+            (VMOVSLDUPrr VR128:$src)>;
+  def : Pat<(v4i32 (X86Movsldup (bc_v4i32 (memopv2i64 addr:$src)))),
+            (VMOVSLDUPrm addr:$src)>;
+}
+
 //===---------------------------------------------------------------------===//
 // Replicate Double FP - MOVDDUP
 //