[llvm-commits] [llvm] r83812 - in /llvm/trunk: lib/Target/MSP430/MSP430InstrInfo.td test/CodeGen/MSP430/Inst16mm.ll test/CodeGen/MSP430/Inst8mm.ll

Anton Korobeynikov asl at math.spbu.ru
Sun Oct 11 16:03:54 PDT 2009


Author: asl
Date: Sun Oct 11 18:03:53 2009
New Revision: 83812

URL: http://llvm.org/viewvc/llvm-project?rev=83812&view=rev
Log:
Add missed mem-mem move patterns

Modified:
    llvm/trunk/lib/Target/MSP430/MSP430InstrInfo.td
    llvm/trunk/test/CodeGen/MSP430/Inst16mm.ll
    llvm/trunk/test/CodeGen/MSP430/Inst8mm.ll

Modified: llvm/trunk/lib/Target/MSP430/MSP430InstrInfo.td
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/MSP430/MSP430InstrInfo.td?rev=83812&r1=83811&r2=83812&view=diff

==============================================================================
--- llvm/trunk/lib/Target/MSP430/MSP430InstrInfo.td (original)
+++ llvm/trunk/lib/Target/MSP430/MSP430InstrInfo.td Sun Oct 11 18:03:53 2009
@@ -243,6 +243,13 @@
                 "mov.w\t{$src, $dst}",
                 [(store GR16:$src, addr:$dst)]>;
 
+def MOV8mm  : Pseudo<(outs), (ins memdst:$dst, memsrc:$src),
+                "mov.b\t{$src, $dst}",
+                [(store (i8 (load addr:$src)), addr:$dst)]>;
+def MOV16mm : Pseudo<(outs), (ins memdst:$dst, memsrc:$src),
+                "mov.w\t{$src, $dst}",
+                [(store (i16 (load addr:$src)), addr:$dst)]>;
+
 //===----------------------------------------------------------------------===//
 // Arithmetic Instructions
 

Modified: llvm/trunk/test/CodeGen/MSP430/Inst16mm.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/MSP430/Inst16mm.ll?rev=83812&r1=83811&r2=83812&view=diff

==============================================================================
--- llvm/trunk/test/CodeGen/MSP430/Inst16mm.ll (original)
+++ llvm/trunk/test/CodeGen/MSP430/Inst16mm.ll Sun Oct 11 18:03:53 2009
@@ -4,6 +4,14 @@
 @foo = common global i16 0, align 2
 @bar = common global i16 0, align 2
 
+define void @mov() nounwind {
+; CHECK: mov:
+; CHECK: mov.w	&bar, &foo
+        %1 = load i16* @bar
+        store i16 %1, i16* @foo
+        ret void
+}
+
 define void @add() nounwind {
 ; CHECK: add:
 ; CHECK: add.w	&bar, &foo

Modified: llvm/trunk/test/CodeGen/MSP430/Inst8mm.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/MSP430/Inst8mm.ll?rev=83812&r1=83811&r2=83812&view=diff

==============================================================================
--- llvm/trunk/test/CodeGen/MSP430/Inst8mm.ll (original)
+++ llvm/trunk/test/CodeGen/MSP430/Inst8mm.ll Sun Oct 11 18:03:53 2009
@@ -5,6 +5,14 @@
 @foo = common global i8 0, align 1
 @bar = common global i8 0, align 1
 
+define void @mov() nounwind {
+; CHECK: mov:
+; CHECK: mov.b	&bar, &foo
+        %1 = load i8* @bar
+        store i8 %1, i8* @foo
+        ret void
+}
+
 define void @add() nounwind {
 ; CHECK: add:
 ; CHECK: add.b	&bar, &foo





More information about the llvm-commits mailing list